pdnsd Error in udp send: Invalid argument
matt_mills at btopenworld.com
Tue Nov 23 15:48:42 PST 2004
Andrey Slusar wrote:
> Mon, 22 Nov 2004 15:18:35 +0000, Matt Mills wrote:
>> The maintainer of the pdnsd port is apparently ports at oven.org. I
>> sent an email to this address with details of the problem and
>> solution, but just got a delivery failure notice.
>> Where do I go from here to get this solved?
> See the PR ports/73296 - this is a update to version 1.2. This bug is
> reproduced on the version 1.2?
Yes, the bug is still existent in v1.2.
Just for clarity, the reply I had from the author of pdnsd which
confirmed a workaround can be found below.
Based on the information you have given me, I have traced the source of
the error message to the sendmsg() call in the function
udp_answer_thread() in the file dns_answer.c. It seems to me that
something in the kernel is complaining about the way the "struct msghdr
*msg" argument is set up. My guess is that the kernel doesn't like the
control message given via the msg_control field of the struct msghdr.
To test this, I suggest that you recompile pdnsd after running configure
with the --disable-src-addr-disc option. This will set the msg_control
field to NULL, so if this really was the problematic part of the data
structure, the sendmsg() call should be able to work normally.
Of course with the --disable-src-addr-disc, UDP source address discovery
will be disabled. I don't know how important this is to you.
The control message necessary for UDP source address discovery is very
platform dependent and rather obscure. Unfortunately, I don't have any
experience with FreeBSD systems, so we will need input from someone with
the necessary expertise to get this fixed properly.
Shall I commit a PR, or does anyone have further insights?
More information about the freebsd-ports