On 09/10/2022 06:12, Mark Dietzer wrote:
Disregard that  previous reply, for some reason it spuriously worked (maybe 
keepalived temporarily lost my /32 addresses on the interface I am using).
Either way, something is broken.

My full setup, in case it matters, is that I have interfaces with a /16 (the main IP) and 
multiple /32 (keepalived VRRP failover IPs) and dnsmasq will pick up the /32s and then 
for a record, say "0.0.0.123", return the full original interface IP (because 
of course it is a /32 IP it latches onto, which has no subnet bits).

I assumed (and still assume) this check is supposed to exclude such IPs? Or am 
I completely wrong here?


I think you are on the right track, and you even described the correct fix in your first mail

"My assumption is the intention here was to check for /32 (so 0xFFFFFFFF)?"

but then checked for zero in your patch.

Changing


 if (netmask.s_addr == 0xffff)


to

 if (netmask.s_addr == 0xffffffff)

Should fix things. I'll apply that patch.


Cheers,

Simon.


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to