diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-10-19 21:11:32 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-10-19 21:11:32 +0000 |
commit | 653aeda54916d28b010c1bb2240c962b9d01b6ad (patch) | |
tree | 1f640d1462609dc8b18781ab0f5c47f55f257bbd /nss | |
parent | a019191bbab9ac595ed1c792fd4bc0e1cadd7411 (diff) | |
download | glibc-653aeda54916d28b010c1bb2240c962b9d01b6ad.tar.gz glibc-653aeda54916d28b010c1bb2240c962b9d01b6ad.tar.xz glibc-653aeda54916d28b010c1bb2240c962b9d01b6ad.zip |
Update.
2004-10-19 Ulrich Drepper <drepper@redhat.com> * nss/getent.c (hosts_keys): Let inet_pton decide whether the string is an address or not.
Diffstat (limited to 'nss')
-rw-r--r-- | nss/getent.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/nss/getent.c b/nss/getent.c index f9f0a6e22a..c0a273241f 100644 --- a/nss/getent.c +++ b/nss/getent.c @@ -276,19 +276,12 @@ hosts_keys (int number, char *key[]) for (i = 0; i < number; ++i) { struct hostent *host = NULL; + char addr[IN6ADDRSZ]; - if (strchr (key[i], ':') != NULL) - { - char addr[IN6ADDRSZ]; - if (inet_pton (AF_INET6, key[i], &addr)) - host = gethostbyaddr (addr, sizeof (addr), AF_INET6); - } - else if (isdigit (key[i][0])) - { - char addr[INADDRSZ]; - if (inet_pton (AF_INET, key[i], &addr)) - host = gethostbyaddr (addr, sizeof (addr), AF_INET); - } + if (inet_pton (AF_INET6, key[i], &addr) > 0) + host = gethostbyaddr (addr, sizeof (addr), AF_INET6); + else if (inet_pton (AF_INET, key[i], &addr) > 0) + host = gethostbyaddr (addr, sizeof (addr), AF_INET); else if ((host = gethostbyname2 (key[i], AF_INET6)) == NULL) host = gethostbyname2 (key[i], AF_INET); |