summaryrefslogtreecommitdiff
path: root/librt
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2015-12-22 10:47:56 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-12-22 10:47:56 +0100
commit6b4bcce3cbb89442f96e2e47a507b5983f27a191 (patch)
tree2be29a17ee6854fcbb45586d3605a3fd78ac8bea /librt
parent6994bbf289dc098d38b27521da3a7431e17736db (diff)
resolv: fix gethostbyname2_r to match gethostbyname_r, fixing bugs with AAAA lookups
The latter half of gethostbyname2_r (doing AAAA queries) is rather dramatically different from the corresponding portion of gethostbyname_r (doing A queries). This leads to problems like calls to getaddrinfo only returning one IPv6 address, even when multiple exist. Seems to be entirely a case of divergent evolution -- a half-decade of fixes for the IPv4 code but no love for IPv6. Until now. ;) DNS behaviour for IPv6 is really no different than for IPv4 -- beyond the difference in address sizes, there's no need for the functions to be so different. Consequently, this patch really is almost just a cut-and-paste of gethostbyname_r, with the appropriate substitutions of in6_addr, AF_INET6, etc; while holding on to the few extra bits that actually belong in there (eg #ifdef __UCLIBC_HAS_IPV6__). Signed-off-by: Wes Campaigne <westacular@gmail.com>
Diffstat (limited to 'librt')
0 files changed, 0 insertions, 0 deletions