OT: What Might Break getbostbyname() ?
Dan Nelson
dnelson at allantgroup.com
Thu Jan 17 06:49:30 UTC 2013
In the last episode (Jan 16), Tim Daneliuk said:
> This is not really a FreeBSD problem ... in fact, it's happening on a
> Solaris 10 machine. But because the TCP stack and its userland interface
> came from BSD, I am hoping some kind soul might have an insight into
> what's going on ...
Solaris hasn't used a BSD TCP stack for many many years afaik..
> The machine in question does DNS lookups fine via dig or nslookup. I
> believe these connect directly to the DNS server(s) specified in
> /etc/resolv.conf.
>
> However, any program that uses gethostbyname() - like ping - fails and
> says it cannot resolve the name.
>
> I'm looking for hints here on why or how gethostbyname() and/or the
> network stack could get clobbered so as to not be able to talk to the DNS
> servers which I know are reachable via dig and nslookup.
First, check /etc/nsswitch.conf and verify that "dns" is listed on the
"hosts:" line. Next, try disabling nscd ("svcadm disable
name-service-cache") , and then running "truss ping www.google.com" (make
sure to reenable nscd when you're done debugging). You should see syscalls
to open /etc/resolv.conf, read the contents, and then open a socket to the
nameserver listed in that file.
--
Dan Nelson
dnelson at allantgroup.com
More information about the freebsd-questions
mailing list