Subject: gethostbyaddr(3) fails when DNS PTR record has a wildcard
To: None <netbsd-help@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: netbsd-help
Date: 03/01/2007 11:32:50
I saw this DNS entry:
10.7.18.64.in-addr.arpa. 22018 IN PTR *.s8a1.psmtp.com.
Which resolves with dig and host and nslookup, for example:
$ host 64.18.7.10
10.7.18.64.in-addr.arpa domain name pointer *.s8a1.psmtp.com.
But gethostbyaddr(3) fails for that and h_errno is "3" which is:
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
Or:
NO_RECOVERY Some unexpected server failure was encountered. This is
a non-recoverable error.
And hstrerror(h_errno) has "Unknown server error".
ktrace shows:
19145 1 gethost CALL recvfrom(3,0x805b000,0x10000,0,0xbfbfdd70,0xbfbfde3c)
19145 1 gethost GIO fd 3 read 71 bytes
"\M^[\M-Y\M^A\M^@\0\^A\0\^A\0\0\0\0\^B10\^A7\^B18\^B64\ain-addr\^Darpa\
\0\0\f\0\^A\M-@\f\0\f\0\^A\0\0@\M-:\0\^R\^A*\^Ds8a1\^Epsmtp\^Ccom\0"
This is NetBSD 3.99.24.
I am trying to look through /usr/src/lib/libc/net/gethnamaddr.c to see why
this is happening. Any clues?
But has anyone else seen this type of PTR value? Is it okay? Is
gethostbyaddr(3) broken? (Or maybe I am using it wrong.)
By the way, I was testing this with my pkgsrc/net/gethost tool.
Jeremy C. Reed