This commit is contained in:
33
getaddrinfo-ipv6-sanity.diff
Normal file
33
getaddrinfo-ipv6-sanity.diff
Normal file
@@ -0,0 +1,33 @@
|
||||
References: bnc#361697
|
||||
|
||||
Index: sysdeps/posix/getaddrinfo.c
|
||||
===================================================================
|
||||
--- sysdeps/posix/getaddrinfo.c.orig
|
||||
+++ sysdeps/posix/getaddrinfo.c
|
||||
@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas
|
||||
static int
|
||||
gaih_inet (const char *name, const struct gaih_service *service,
|
||||
const struct addrinfo *req, struct addrinfo **pai,
|
||||
- unsigned int *naddrs)
|
||||
+ unsigned int *naddrs, bool usable_ipv6)
|
||||
{
|
||||
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
||||
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
||||
@@ -762,7 +762,7 @@ gaih_inet (const char *name, const struc
|
||||
if (fct != NULL)
|
||||
{
|
||||
if (req->ai_family == AF_INET6
|
||||
- || req->ai_family == AF_UNSPEC)
|
||||
+ || (req->ai_family == AF_UNSPEC && usable_ipv6))
|
||||
{
|
||||
gethosts (AF_INET6, struct in6_addr);
|
||||
no_inet6_data = no_data;
|
||||
@@ -2151,7 +2151,7 @@ getaddrinfo (const char *name, const cha
|
||||
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|
||||
|| hints->ai_family == AF_INET6)
|
||||
{
|
||||
- last_i = gaih_inet (name, pservice, hints, end, &naddrs);
|
||||
+ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6);
|
||||
if (last_i != 0)
|
||||
{
|
||||
freeaddrinfo (p);
|
Reference in New Issue
Block a user