POSIX.1-2001 and 2008 say that if the hints argument of getaddrinfo() is NULL, then
the behavior shall be as if it referred to a structure
containing the value zero for the ai_flags, ai_socktype,
and ai_protocol fields, and AF_UNSPEC for the ai_family
However, glibc defines ai_flags as AI_V4MAPPED | AI_ADDRCONFIG for this case. Is
this deviation from POSIX.1 intentional? Should it be fixed?
(In reply to comment #0)
> Should it be fixed?
No. Like several other things in the getaddrinfo spec this is non-optimal at
best. The defaults used in glibc are much better.
Subject: Re: getaddrinfo() hints==NULL (ai_flags) deviates
On Mon, Aug 31, 2009 at 2:14 PM, drepper at redhat dot
> ------- Additional Comments From drepper at redhat dot com 2009-08-31 12:14 -------
> (In reply to comment #0)
>> Should it be fixed?
> No. Like several other things in the getaddrinfo spec this is non-optimal at
> best. The defaults used in glibc are much better.
Thanks. I'll update the man page to make it clear that this choice is
Can some details be added as to why the glibc defaults are better than the POSIX standard.
The default only applies if hints==NULL. If the POSIX defaults are non-optimal, then users of
other systems (e.g. Solaris) would find it useful to know that different settings are preferred.
On Solaris 10, setting hints to NULL results in POSIX defined behaviour.
Are the reasons behind glibc's defaults unique to glibc or are they related to network effects
which would apply to any OS or C resolver library. If the settings are valid everywhere then
getaddrinfo() users would benefit from using them on non-glibc platforms.