aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/posix/getaddrinfo.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2012-08-22 11:41:40 -0600
committerJeff Law <law@redhat.com>2012-08-22 11:41:40 -0600
commit8479f23aa1d5e5477a37f46823856bdafaedfa46 (patch)
treee4512a6e8ce06db0e40b6ff0caea8af51aa54e0e /sysdeps/posix/getaddrinfo.c
parent48da0b21630bb237b40086726f6ecd5bb2e2d988 (diff)
downloadglibc-8479f23aa1d5e5477a37f46823856bdafaedfa46.zip
glibc-8479f23aa1d5e5477a37f46823856bdafaedfa46.tar.gz
glibc-8479f23aa1d5e5477a37f46823856bdafaedfa46.tar.bz2
* sysdeps/posix/getaddrinfo.c (gaih_inet): Only use gethostbyname4_r
if the family is PF_UNSPEC.
Diffstat (limited to 'sysdeps/posix/getaddrinfo.c')
-rw-r--r--sysdeps/posix/getaddrinfo.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 81e928a..05883bd 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -832,8 +832,13 @@ gaih_inet (const char *name, const struct gaih_service *service,
while (!no_more)
{
no_data = 0;
- nss_gethostbyname4_r fct4
- = __nss_lookup_function (nip, "gethostbyname4_r");
+ nss_gethostbyname4_r fct4 = NULL;
+
+ /* gethostbyname4_r sends out parallel A and AAAA queries and
+ is thus only suitable for PF_UNSPEC. */
+ if (req->ai_family == PF_UNSPEC)
+ fct4 = __nss_lookup_function (nip, "gethostbyname4_r");
+
if (fct4 != NULL)
{
int herrno;