From: Ulrich Drepper Date: Sat, 18 Sep 2004 23:57:46 +0000 (+0000) Subject: Update. X-Git-Tag: upstream/2.30~17496 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d72433621f75bce7281adb7060459f6918287926;p=external%2Fglibc.git Update. * sysdeps/posix/getaddrinfo.c (gaih_inet): Do not use gethostbyname3_r if we are not looking for the canonical name. --- diff --git a/ChangeLog b/ChangeLog index 919639a..d3e8f72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-09-18 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (gaih_inet): Do not use + gethostbyname3_r if we are not looking for the canonical name. + * resolv/res_mkquery.c (res_nmkquery): Randomize request ID every time. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index f9d0bf4..b3f9f4f 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -775,8 +775,13 @@ gaih_inet (const char *name, const struct gaih_service *service, while (!no_more) { - nss_gethostbyname3_r fct - = __nss_lookup_function (nip, "gethostbyname3_r"); + nss_gethostbyname3_r fct = NULL; + if (req->ai_flags & AI_CANONNAME) + /* No need to use this function if we do not look for + the canonical name. The function does not exist in + all NSS modules and therefore the lookup would + often fail. */ + fct = __nss_lookup_function (nip, "gethostbyname3_r"); if (fct == NULL) /* We are cheating here. The gethostbyname2_r function does not have the same interface as gethostbyname3_r but the