[PATCH] make getaddrinfo hint AI_ADDRCONFIG work
Ricard Wanderlof
ricard.wanderlof at axis.com
Thu Feb 21 08:09:23 PST 2008
On Thu, 21 Feb 2008, sjhill at real.realitydiluted.com wrote:
>> The problem turned out to be in getaddrinfo(). When hints.ai_flags has
>> the AI_ADDRCONFIG bit set in a call to getaddrinfo, IPv4 and IPv6
>> addresses should only be returned if the system as at least one address
>> of the appropriate type configured. However, this turned out not to be
>> the case, and both types of addresses were returned in any case, causing
>> IPv6 DNS traffic even if no interface had an IPv6 address configured.
>>
>> The following patch fixes the problem, while still touching the existing
>> code as little as possible. It has been tested and works and I would like
>> to commit it, but comments would be valued.
>>
> How does glibc handle this?
The latest (2.7) glibc (which is much newer than what uClibc is based on)
has a similar way of introducing additional checks in various parts of the
code. However, it relies on getifaddrs() to determine the existance of an
interface instead of checking the /proc filesystem.
Which as you are implying might be a better way to do it.
/Ricard
--
Ricard Wolf Wanderlöf ricardw(at)axis.com
Axis Communications AB, Lund, Sweden www.axis.com
Phone +46 46 272 2016 Fax +46 46 13 61 30
More information about the uClibc
mailing list