localhost not recognised in getaddrinfo(3) in FreeBSD 9.0-STABLE
unga888 at yahoo.com
Tue May 1 14:48:20 UTC 2012
> From: Matthew Seaman <matthew at FreeBSD.org>
> To: Unga <unga888 at yahoo.com>
> Cc: "freebsd-questions at freebsd.org" <freebsd-questions at FreeBSD.org>
> Sent: Tuesday, May 1, 2012 11:02 AM
> Subject: Re: localhost not recognised in getaddrinfo(3) in FreeBSD 9.0-STABLE
> On 01/05/2012 11:08, Unga wrote:
>> Following code fragment works in FreeBSD 8.1-RELEASE, but not in FreeBSD
>> error = getaddrinfo("localhost", port, &hints, &res0);
>> if (error)
>> fprintf(stderr,"getaddrinfo failed - %s\n",
>> It complains: getaddrinfo failed - hostname nor servname provided, or not
>> Any idea why?
> So, what is the variable 'port' initialized to? It should be a const
> char* with the name of a network service found in /etc/services or else
> the string representation of a port number in decimal.
#define MYPORT 4321
snprintf(port, sizeof(port), "%d", MYPORT);
error = getaddrinfo("localhost", port, &hints, &res0);
Pls note, using 127.0.0.1 instead of localhost works. But I prefer to use localhost.
> Failing that, this is almost certainly a configuration snafu on your
> 9.0-STABLE box.
> Does this machine have an entry for localhost in /etc/hosts ? Can it
> resolve localhost via the DNS? Or through any other means such as NIS or
> What does:
> % getent hosts localhost
$ getent hosts localhost
127.0.0.1 localhost localhost.my.domain ftp.sam511.lan
> If that fails, sanity check /etc/nsswitch.conf and /etc/resolv.conf
hosts: files dns
More information about the freebsd-questions