From: Ulrich Drepper Date: Tue, 21 Jun 2011 17:06:42 +0000 (-0400) Subject: Minor optimization of getaddrinfo after recent patch X-Git-Tag: glibc-2.15~522 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=c5e3c2ae59cc8c5d3ad5e1adfd099c726baad862;p=glibc.git Minor optimization of getaddrinfo after recent patch --- diff --git a/ChangeLog b/ChangeLog index 270559ee36..19807a9150 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-06-21 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (gaih_inet): After the last change the + branch using gethostbyname2 is only for AF_INET. Optimize accordingly. + * inet/getnetgrent_r.c: Use DL_CALL_FCT in several places. 2011-06-20 David S. Miller diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 469abe22de..d68ac839a5 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -565,7 +565,6 @@ gaih_inet (const char *name, const struct gaih_service *service, IPv6 scope ids. */ if (req->ai_family == AF_INET) { - int family = req->ai_family; size_t tmpbuflen = 512; assert (tmpbuf == NULL); tmpbuf = alloca_account (tmpbuflen, alloca_used); @@ -576,7 +575,7 @@ gaih_inet (const char *name, const struct gaih_service *service, while (1) { - rc = __gethostbyname2_r (name, family, &th, tmpbuf, + rc = __gethostbyname2_r (name, AF_INET, &th, tmpbuf, tmpbuflen, &h, &herrno); if (rc != ERANGE || herrno != NETDB_INTERNAL) break; @@ -638,18 +637,9 @@ gaih_inet (const char *name, const struct gaih_service *service, (*pat)->scopeid = 0; } (*pat)->next = NULL; - (*pat)->family = req->ai_family; - if (family == req->ai_family) - memcpy ((*pat)->addr, h->h_addr_list[i], - h->h_length); - else - { - uint32_t *addr = (uint32_t *) (*pat)->addr; - addr[3] = *(uint32_t *) h->h_addr_list[i]; - addr[2] = htonl (0xffff); - addr[1] = 0; - addr[0] = 0; - } + (*pat)->family = AF_INET; + memcpy ((*pat)->addr, h->h_addr_list[i], + h->h_length); pat = &((*pat)->next); } }