]> sourceware.org Git - glibc.git/commitdiff
Minor optimization of getaddrinfo after recent patch
authorUlrich Drepper <drepper@gmail.com>
Tue, 21 Jun 2011 17:06:42 +0000 (13:06 -0400)
committerUlrich Drepper <drepper@gmail.com>
Tue, 21 Jun 2011 17:06:42 +0000 (13:06 -0400)
ChangeLog
sysdeps/posix/getaddrinfo.c

index 270559ee3627cbf3902ea80de109593a1c7bcb72..19807a9150ac65c79dcb12c7adcf5045a6fb5c8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-06-21  Ulrich Drepper  <drepper@gmail.com>
 
+       * 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  <davem@davemloft.net>
index 469abe22decccb924204246bc474d1b59decafde..d68ac839a5fcdf1f0582732f7fe9317b5d5472b5 100644 (file)
@@ -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);
                        }
                    }
This page took 0.04508 seconds and 5 git commands to generate.