diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2014-09-27 07:13:20 -0300 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2014-11-07 07:18:53 -0200 |
commit | 7875573cbe52eabe78f1cab91c8a046d0bd5ed5a (patch) | |
tree | 12bb64786ab07513e651e9c3a3dba1803c97aa81 | |
parent | 393207b6a74aeed6227d88174b8b37e4ee095260 (diff) | |
download | glibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.zip glibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.tar.gz glibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.tar.bz2 |
drop address family conversions from /etc/hosts parser
for ChangeLog
* nss/nss_files/files-hosts.c (LINE_PARSER): Drop all address
family conversions.
-rw-r--r-- | nss/nss_files/files-hosts.c | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c index 639345a..c1f22c6 100644 --- a/nss/nss_files/files-hosts.c +++ b/nss/nss_files/files-hosts.c @@ -43,9 +43,6 @@ struct hostent_data char *h_addr_ptrs[2]; /* Points to that and null terminator. */ }; -#define IN_IS_ADDR_LOOPBACK(addr) \ - (((const char *)(addr))[0] == IN_LOOPBACKNET) - #define TRAILING_LIST_MEMBER h_aliases #define TRAILING_LIST_SEPARATOR_P isspace #include "files-parse.c" @@ -60,29 +57,12 @@ LINE_PARSER if (inet_pton (af == AF_UNSPEC ? AF_INET : af, addr, entdata->host_addr) > 0) af = af == AF_UNSPEC ? AF_INET : af; + else if (af == AF_UNSPEC + && inet_pton (AF_INET6, addr, entdata->host_addr) > 0) + af = AF_INET6; else - { - if (af == AF_INET6 && (flags & AI_V4MAPPED) != 0 - && inet_pton (AF_INET, addr, entdata->host_addr) > 0 - && !IN_IS_ADDR_LOOPBACK (entdata->host_addr)) - map_v4v6_address ((char *) entdata->host_addr, - (char *) entdata->host_addr); - else if (af == AF_INET - && inet_pton (AF_INET6, addr, entdata->host_addr) > 0) - { - if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) - memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ); - else - /* Illegal address: ignore line. */ - return 0; - } - else if (af == AF_UNSPEC - && inet_pton (AF_INET6, addr, entdata->host_addr) > 0) - af = AF_INET6; - else - /* Illegal address: ignore line. */ - return 0; - } + /* Illegal address: ignore line. */ + return 0; /* We always return entries of the requested form. */ result->h_addrtype = af; |