[Dnsmasq-discuss] v2.34 on Openbsd 4.0 (fix)

Jeb Campbell jebc at c4solutions.net
Fri Oct 20 15:00:55 BST 2006


Simon Kelley wrote:
> I've done a bit of poking around in the OpenBSD CVSweb.
> 
> It looks like 4.0 has, at long last, got around to implementing the
> IP_RECVIF socket option. At least IP_RECVIF now exists in the headers.
> Assuming that you re-compile on a 4.0 machine, that means that the code
> will attempt to use IP_RECVIF to read the interface on which incoming
> packets arrive. (On older releases, it used a disgusting hack, and just
> assumed that it was the single allowed interface.)
> 
> If the header declaration is there, but not the kernel support, then
> dnsmasq will try and fail to find the interface, and silently ditch the
> packet.
> 
> As a hypothesis, this fits the known facts. The ktrace results would
> help confirm it.

Thank you so much for your help!  I just can't say it enough that
dnsmasq is one of the most useful programs out there (I shudder thinking
of bind configs...).

I had to put ktrace back in the kernel and I can install and test tonight.

I'll let you know how it goes.

As I can test the binary faster/safer than a remote update, I might try
disabling IP_RECVIF and see if that fixes it.

UPDATE -- that did it!  At the end of src/dnsmasq.h I added "#undef
IP_RECVIF" and it works great!  Of course I should probably wrap that
with a #ifdef OpenBSD ...

Do you still want me to ktrace?

One last thing -- as a temp fix last night, I recompiled dnsmasq to read
ISC lease files and it works great, but the source says that this will
go away soon -- is it just not maintainable?

-- 
Jeb Campbell
jebc at c4solutions.net



More information about the Dnsmasq-discuss mailing list