aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/files.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-04-02 13:04:19 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-04-02 13:04:19 +0000
commit2e4c3c4cc3c2f6bdd3bfbafe9980f46b24971009 (patch)
treee7e729631b8b8150cb25349534ae16c2d7f12562 /networking/udhcp/files.c
parent0edbdd8ac8c0add7902d73a7ef921abba9f5752a (diff)
downloadbusybox-w32-2e4c3c4cc3c2f6bdd3bfbafe9980f46b24971009.tar.gz
busybox-w32-2e4c3c4cc3c2f6bdd3bfbafe9980f46b24971009.tar.bz2
busybox-w32-2e4c3c4cc3c2f6bdd3bfbafe9980f46b24971009.zip
udhcpc: add -o "do not request options by default" switch
(by L. Gabriel Somlo <somlo AT cmu.edu>) function old new delta udhcpc_main 2513 2554 +41 static.udhcpc_longopts 226 247 +21 add_param_req_option 119 132 +13 packed_usage 23952 23964 +12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 87/0) Total: 87 bytes
Diffstat (limited to 'networking/udhcp/files.c')
-rw-r--r--networking/udhcp/files.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c
index 6a93bd0e2..043a95bb0 100644
--- a/networking/udhcp/files.c
+++ b/networking/udhcp/files.c
@@ -396,6 +396,7 @@ void write_leases(void)
396 close(fp); 396 close(fp);
397 397
398 if (server_config.notify_file) { 398 if (server_config.notify_file) {
399// TODO: vfork-based child creation
399 char *cmd = xasprintf("%s %s", server_config.notify_file, server_config.lease_file); 400 char *cmd = xasprintf("%s %s", server_config.notify_file, server_config.lease_file);
400 system(cmd); 401 system(cmd);
401 free(cmd); 402 free(cmd);
@@ -406,7 +407,7 @@ void write_leases(void)
406void read_leases(const char *file) 407void read_leases(const char *file)
407{ 408{
408 int fp; 409 int fp;
409 unsigned int i = 0; 410 unsigned i;
410 struct dhcpOfferedAddr lease; 411 struct dhcpOfferedAddr lease;
411 412
412 fp = open_or_warn(file, O_RDONLY); 413 fp = open_or_warn(file, O_RDONLY);
@@ -414,6 +415,7 @@ void read_leases(const char *file)
414 return; 415 return;
415 } 416 }
416 417
418 i = 0;
417 while (i < server_config.max_leases 419 while (i < server_config.max_leases
418 && full_read(fp, &lease, sizeof(lease)) == sizeof(lease) 420 && full_read(fp, &lease, sizeof(lease)) == sizeof(lease)
419 ) { 421 ) {
@@ -422,7 +424,7 @@ void read_leases(const char *file)
422 if (y >= server_config.start_ip && y <= server_config.end_ip) { 424 if (y >= server_config.start_ip && y <= server_config.end_ip) {
423 lease.expires = ntohl(lease.expires); 425 lease.expires = ntohl(lease.expires);
424 if (!server_config.remaining) 426 if (!server_config.remaining)
425 lease.expires -= time(0); 427 lease.expires -= time(NULL);
426 if (!(add_lease(lease.chaddr, lease.yiaddr, lease.expires))) { 428 if (!(add_lease(lease.chaddr, lease.yiaddr, lease.expires))) {
427 bb_error_msg("too many leases while loading %s", file); 429 bb_error_msg("too many leases while loading %s", file);
428 break; 430 break;