diff options
| author | Ron Yorston <rmy@pobox.com> | 2014-12-14 14:20:56 +0000 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2014-12-14 14:20:56 +0000 |
| commit | 6d6d18d45c145899fce3a39553771cf0af671f30 (patch) | |
| tree | 1936d18cbf61b9e0989464aad0a11c52cbeff7b7 /networking/udhcp/files.c | |
| parent | 0c204dc07b718244c360e0b84df66ce0a012e14f (diff) | |
| parent | acb8be721768b54075a51d1859d390904a0f1f6c (diff) | |
| download | busybox-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.c | 14 |
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, |
