diff options
Diffstat (limited to 'networking/udhcp/leases.c')
-rw-r--r-- | networking/udhcp/leases.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/networking/udhcp/leases.c b/networking/udhcp/leases.c index 844bb60b1..6642e396d 100644 --- a/networking/udhcp/leases.c +++ b/networking/udhcp/leases.c | |||
@@ -17,7 +17,9 @@ static struct dyn_lease *oldest_expired_lease(void) | |||
17 | /* Unexpired leases have g_leases[i].expires >= current time | 17 | /* Unexpired leases have g_leases[i].expires >= current time |
18 | * and therefore can't ever match */ | 18 | * and therefore can't ever match */ |
19 | for (i = 0; i < server_config.max_leases; i++) { | 19 | for (i = 0; i < server_config.max_leases; i++) { |
20 | if (g_leases[i].expires < oldest_time) { | 20 | if (g_leases[i].expires == 0 /* empty entry */ |
21 | || g_leases[i].expires < oldest_time | ||
22 | ) { | ||
21 | oldest_time = g_leases[i].expires; | 23 | oldest_time = g_leases[i].expires; |
22 | oldest_lease = &g_leases[i]; | 24 | oldest_lease = &g_leases[i]; |
23 | } | 25 | } |
@@ -131,7 +133,7 @@ static int nobody_responds_to_arp(uint32_t nip, const uint8_t *safe_mac, unsigne | |||
131 | return r; | 133 | return r; |
132 | 134 | ||
133 | temp.s_addr = nip; | 135 | temp.s_addr = nip; |
134 | bb_info_msg("%s belongs to someone, reserving it for %u seconds", | 136 | bb_error_msg("%s belongs to someone, reserving it for %u seconds", |
135 | inet_ntoa(temp), (unsigned)server_config.conflict_time); | 137 | inet_ntoa(temp), (unsigned)server_config.conflict_time); |
136 | add_lease(NULL, nip, server_config.conflict_time, NULL, 0); | 138 | add_lease(NULL, nip, server_config.conflict_time, NULL, 0); |
137 | return 0; | 139 | return 0; |