aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/dhcpd.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-05-21 07:05:06 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-05-21 07:05:06 +0000
commit6de8994440165e2f30c50d2d7c1f332d9cd649bd (patch)
treed1e2794c09b2b73e93e64c84444cb52806498494 /networking/udhcp/dhcpd.c
parent19903f0d447116baef455eddc14458b1dfd1c834 (diff)
downloadbusybox-w32-6de8994440165e2f30c50d2d7c1f332d9cd649bd.tar.gz
busybox-w32-6de8994440165e2f30c50d2d7c1f332d9cd649bd.tar.bz2
busybox-w32-6de8994440165e2f30c50d2d7c1f332d9cd649bd.zip
udhcpc: regularize the names of receiving functions,
pause on "serious failure to receive". Some misc fixes are also folded in here.
Diffstat (limited to 'networking/udhcp/dhcpd.c')
-rw-r--r--networking/udhcp/dhcpd.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index 263719657..a6264ad2f 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -145,7 +145,7 @@ int udhcpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
145 default: continue; /* signal or error (probably EINTR) */ 145 default: continue; /* signal or error (probably EINTR) */
146 } 146 }
147 147
148 bytes = udhcp_recv_packet(&packet, server_socket); /* this waits for a packet - idle */ 148 bytes = udhcp_recv_kernel_packet(&packet, server_socket); /* this waits for a packet - idle */
149 if (bytes < 0) { 149 if (bytes < 0) {
150 if (bytes == -1 && errno != EINTR) { 150 if (bytes == -1 && errno != EINTR) {
151 DEBUG("error on read, %s, reopening socket", strerror(errno)); 151 DEBUG("error on read, %s, reopening socket", strerror(errno));
@@ -180,7 +180,7 @@ int udhcpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
180 case DHCPDISCOVER: 180 case DHCPDISCOVER:
181 DEBUG("Received DISCOVER"); 181 DEBUG("Received DISCOVER");
182 182
183 if (sendOffer(&packet) < 0) { 183 if (send_offer(&packet) < 0) {
184 bb_error_msg("send OFFER failed"); 184 bb_error_msg("send OFFER failed");
185 } 185 }
186 break; 186 break;
@@ -200,20 +200,19 @@ int udhcpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
200 if (server_id_align == server_config.server && requested 200 if (server_id_align == server_config.server && requested
201 && requested_align == lease->yiaddr 201 && requested_align == lease->yiaddr
202 ) { 202 ) {
203 sendACK(&packet, lease->yiaddr); 203 send_ACK(&packet, lease->yiaddr);
204 } 204 }
205 } else if (requested) { 205 } else if (requested) {
206 /* INIT-REBOOT State */ 206 /* INIT-REBOOT State */
207 if (lease->yiaddr == requested_align) 207 if (lease->yiaddr == requested_align)
208 sendACK(&packet, lease->yiaddr); 208 send_ACK(&packet, lease->yiaddr);
209 else 209 else
210 sendNAK(&packet); 210 send_NAK(&packet);
211 } else if (lease->yiaddr == packet.ciaddr) { 211 } else if (lease->yiaddr == packet.ciaddr) {
212 /* RENEWING or REBINDING State */ 212 /* RENEWING or REBINDING State */
213 sendACK(&packet, lease->yiaddr); 213 send_ACK(&packet, lease->yiaddr);
214 } else { 214 } else { /* don't know what to do!!!! */
215 /* don't know what to do!!!! */ 215 send_NAK(&packet);
216 sendNAK(&packet);
217 } 216 }
218 217
219 /* what to do if we have no record of the client */ 218 /* what to do if we have no record of the client */
@@ -229,13 +228,13 @@ int udhcpd_main(int argc ATTRIBUTE_UNUSED, char **argv)
229 memset(lease->chaddr, 0, 16); 228 memset(lease->chaddr, 0, 16);
230 /* make some contention for this address */ 229 /* make some contention for this address */
231 } else 230 } else
232 sendNAK(&packet); 231 send_NAK(&packet);
233 } else { 232 } else {
234 uint32_t r = ntohl(requested_align); 233 uint32_t r = ntohl(requested_align);
235 if (r < server_config.start_ip 234 if (r < server_config.start_ip
236 || r > server_config.end_ip 235 || r > server_config.end_ip
237 ) { 236 ) {
238 sendNAK(&packet); 237 send_NAK(&packet);
239 } 238 }
240 /* else remain silent */ 239 /* else remain silent */
241 } 240 }