aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/files.c
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2014-12-14 14:20:56 +0000
committerRon Yorston <rmy@pobox.com>2014-12-14 14:20:56 +0000
commit6d6d18d45c145899fce3a39553771cf0af671f30 (patch)
tree1936d18cbf61b9e0989464aad0a11c52cbeff7b7 /networking/udhcp/files.c
parent0c204dc07b718244c360e0b84df66ce0a012e14f (diff)
parentacb8be721768b54075a51d1859d390904a0f1f6c (diff)
downloadbusybox-w32-6d6d18d45c145899fce3a39553771cf0af671f30.tar.gz
busybox-w32-6d6d18d45c145899fce3a39553771cf0af671f30.tar.bz2
busybox-w32-6d6d18d45c145899fce3a39553771cf0af671f30.zip
Merge branch 'busybox' into merge
Conflicts: archival/libarchive/open_transformer.c libbb/lineedit.c miscutils/man.c
Diffstat (limited to 'networking/udhcp/files.c')
-rw-r--r--networking/udhcp/files.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c
index 6840f3c25..1c8808c0f 100644
--- a/networking/udhcp/files.c
+++ b/networking/udhcp/files.c
@@ -189,12 +189,24 @@ void FAST_FUNC read_leases(const char *file)
189 goto ret; 189 goto ret;
190 190
191 while (full_read(fd, &lease, sizeof(lease)) == sizeof(lease)) { 191 while (full_read(fd, &lease, sizeof(lease)) == sizeof(lease)) {
192//FIXME: what if it matches some static lease?
193 uint32_t y = ntohl(lease.lease_nip); 192 uint32_t y = ntohl(lease.lease_nip);
194 if (y >= server_config.start_ip && y <= server_config.end_ip) { 193 if (y >= server_config.start_ip && y <= server_config.end_ip) {
195 signed_leasetime_t expires = ntohl(lease.expires) - (signed_leasetime_t)time_passed; 194 signed_leasetime_t expires = ntohl(lease.expires) - (signed_leasetime_t)time_passed;
195 uint32_t static_nip;
196
196 if (expires <= 0) 197 if (expires <= 0)
197 continue; 198 continue;
199
200 /* Check if there is a different static lease for this IP or MAC */
201 static_nip = get_static_nip_by_mac(server_config.static_leases, lease.lease_mac);
202 if (static_nip) {
203 /* NB: we do not add lease even if static_nip == lease.lease_nip.
204 */
205 continue;
206 }
207 if (is_nip_reserved(server_config.static_leases, lease.lease_nip))
208 continue;
209
198 /* NB: add_lease takes "relative time", IOW, 210 /* NB: add_lease takes "relative time", IOW,
199 * lease duration, not lease deadline. */ 211 * lease duration, not lease deadline. */
200 if (add_lease(lease.lease_mac, lease.lease_nip, 212 if (add_lease(lease.lease_mac, lease.lease_nip,