mirror of
http://thekelleys.org.uk/git/dnsmasq.git
synced 2026-11-13 17:00:49 +00:00
Alter DHCP address selection after DECLINE in consec-addr mode.
Avoid offering the same address after a recieving a DECLINE message to stop an infinite protocol loop. This has long been done in default address allocation mode: this adds similar behaviour when allocaing addresses consecutively.
This commit is contained in:
2 files changed
+22
-2
No files matched your search
+13
@@ -754,6 +754,19 @@ int address_allocate(struct dhcp_context *context,
|
||||
if (addr.s_addr == d->router.s_addr)
|
||||
break;
|
||||
|
||||
/* in consec-ip mode, skip addresses equal to
|
||||
the number of addresses rejected by clients. This
|
||||
should avoid the same client being offered the same
|
||||
address after it has rjected it. */
|
||||
if (option_bool(OPT_CONSEC_ADDR))
|
||||
{
|
||||
if (c->addr_epoch)
|
||||
{
|
||||
c->addr_epoch--;
|
||||
d = context; /* d non-NULL skips the address. */
|
||||
}
|
||||
}
|
||||
|
||||
/* Addresses which end in .255 and .0 are broken in Windows even when using
|
||||
supernetting. ie dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0
|
||||
then 192.168.0.255 is a valid IP address, but not for Windows as it's
|
||||
|
||||
Reference in new issue
Block a user