On 31.12.2017 10:32, Denys Vlasenko wrote:
On Fri, Dec 15, 2017 at 1:41 PM, Jiri Prchal <jiri.prc...@aksignal.cz> wrote:
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.

This is how it is intended to work.
Could be, may be I'm absolutely wrong. But when should function "nobody_responds_to_arp" bee called, when ip is leased or not? And does it make sense to reserve ip for not responding mac?

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 <jiri.prc...@aksignal.cz>
---
  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
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to