aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/files.c
diff options
context:
space:
mode:
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;