From b0d8b23d61009f2681b930c66be595df193b0f55 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 6 Sep 2004 08:15:50 +0000 Subject: (gaih_inet): Fix problem with AF_UNSPEC lookup with AI_CANONNAME of name which has only IPv6 addresses. --- sysdeps/posix/getaddrinfo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sysdeps/posix') diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 3ffa329f73..17331e54bc 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -88,6 +88,7 @@ static const struct gaih_servtuple nullserv; struct gaih_addrtuple { struct gaih_addrtuple *next; + char *name; int family; uint32_t addr[4]; uint32_t scopeid; @@ -321,6 +322,7 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp, } \ uint32_t *addr = (*pat)->addr; \ (*pat)->next = NULL; \ + (*pat)->name = i == 0 ? strdupa (h->h_name) : NULL; \ if (_family == AF_INET && req->ai_family == AF_INET6) \ { \ (*pat)->family = AF_INET6; \ @@ -658,7 +660,7 @@ gaih_inet (const char *name, const struct gaih_service *service, char *buf = alloca (max_fqdn_len); char *s; - if (DL_CALL_FCT (cfct, (h->h_name ?: name, buf, + if (DL_CALL_FCT (cfct, (at->name ?: name, buf, max_fqdn_len, &s, &rc, &herrno)) == NSS_STATUS_SUCCESS) -- cgit 1.4.1