From afd7b703335c65d616b6198c1aa407cfbba5edea Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 19 Aug 2004 21:39:39 +0000 Subject: Update. * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use getcanonname_r function if AI_CANONNAME flag is not set in request. --- sysdeps/posix/getaddrinfo.c | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 2d89b4ad5f..132fdcc620 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -644,27 +644,30 @@ gaih_inet (const char *name, const struct gaih_service *service, if (inet6_status == NSS_STATUS_SUCCESS || status == NSS_STATUS_SUCCESS) { - /* If we need the canonical name, get it from the same - service as the result. */ - nss_getcanonname_r cfct; - int herrno; - - cfct = __nss_lookup_function (nip, "getcanonname_r"); - if (cfct != NULL) + if ((req->ai_flags & AI_CANONNAME) != 0) { - const size_t max_fqdn_len = 256; - char *buf = alloca (max_fqdn_len); - char *s; - - if (DL_CALL_FCT (cfct, (h->h_name ?: name, buf, - max_fqdn_len, &s, &rc, - &herrno)) - == NSS_STATUS_SUCCESS) - canon = s; - else - /* Set to name now to avoid using - gethostbyaddr. */ - canon = name; + /* If we need the canonical name, get it + from the same service as the result. */ + nss_getcanonname_r cfct; + int herrno; + + cfct = __nss_lookup_function (nip, "getcanonname_r"); + if (cfct != NULL) + { + const size_t max_fqdn_len = 256; + char *buf = alloca (max_fqdn_len); + char *s; + + if (DL_CALL_FCT (cfct, (h->h_name ?: name, buf, + max_fqdn_len, &s, &rc, + &herrno)) + == NSS_STATUS_SUCCESS) + canon = s; + else + /* Set to name now to avoid using + gethostbyaddr. */ + canon = name; + } } break; -- cgit v1.2.3