If there is lease for MAC which is no longer connected and only one IP in pool, it doesn't lease to new one mac until expires the old one. I think for this situation is there function "nobody_responds_to_arp", but it is not called if "lease" is true. In patch I switched the logic and that function is called if is lease.
Signed-off-by: Jiri Prchal <[email protected]> --- networking/udhcp/dhcpd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c index 238542b..5eb0682 100644 --- a/networking/udhcp/dhcpd.c +++ b/networking/udhcp/dhcpd.c @@ -292,7 +292,7 @@ static uint32_t find_free_or_expired_nip(const uint8_t *safe_mac, unsigned arppi goto next_addr; lease = find_lease_by_nip(nip); - if (!lease) { + if (lease) { //TODO: DHCP servers do not always sit on the same subnet as clients: should *ping*, not arp-ping! if (nobody_responds_to_arp(nip, safe_mac, arpping_ms)) return nip; -- 2.7.4 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
