[ntp:questions] Pool returns IPv6 address to IPv4 query

Danny Mayer mayer at ntp.org
Tue Nov 19 18:38:58 UTC 2013


On 11/19/2013 12:33 PM, Rick Jones wrote:
> Danny Mayer <mayer at ntp.org> wrote:
>> That must have been a short discussion. getaddrinfo() has nothing to
>> do with the IP stack. getaddrinfo()'s job is to get information from
>> the nameservers you specify in resolv.conf or wherever else the OS
>> has that information. Its job is NOT to make decisions about what it
>> should ask for. That's the programmer's job when setting up the API
>> call as to what addresses to ask for.
> 
> I suspect it all boils down to the behaviour when one sets
> AI_ADDRCONFIG in the getaddrinfo() call.  When that is set, ostensibly
> getaddrinfo() is supposed to filter-out any reponses that are of a
> type that cannot be used by the application.  The decision made was if
> there were no non-loopback-interface IPv6 addresses configured, AAAA
> records would not be returned from the getaddrinfo() call.  Similarly
> for A recorecords if there were no IPv4 addresses configured on the
> system.

That's not the what you need to do if you only want IPv4. You need to
set ai_family to AF_INET in the hints structure before making the call.
IF you specify -4 on the ntpd command line, that's what we do when
fetching IP addresses from the name server. There's no magic here, it
just works.

Danny




More information about the questions mailing list