From a7d248330fcfbd8c3ebaf13088d9d312895b7dc4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 15 Aug 2004 09:42:45 +0000 Subject: [PATCH] Update. 2004-08-15 Ulrich Drepper * nss/getent.c: Allow queries for getaddrinfo with AF_INET and AF_INET6. --- ChangeLog | 5 +++++ nss/getent.c | 26 +++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c91863b..ac3c7e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-08-15 Ulrich Drepper + + * nss/getent.c: Allow queries for getaddrinfo with AF_INET and + AF_INET6. + 2004-08-14 Ulrich Drepper * po/de.po: Update from translation team. diff --git a/nss/getent.c b/nss/getent.c index 4be9535..0f93e51 100644 --- a/nss/getent.c +++ b/nss/getent.c @@ -295,7 +295,7 @@ hosts_keys (int number, char *key[]) /* This is for hosts, but using getaddrinfo */ static int -ahosts_keys (int number, char *key[]) +ahosts_keys_int (int af, int xflags, int number, char *key[]) { int result = 0; int i; @@ -312,8 +312,8 @@ ahosts_keys (int number, char *key[]) struct addrinfo hint; memset (&hint, '\0', sizeof (hint)); - hint.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG | AI_CANONNAME; - hint.ai_family = AF_UNSPEC; + hint.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG | AI_CANONNAME | xflags; + hint.ai_family = af; for (i = 0; i < number; ++i) { @@ -360,6 +360,24 @@ ahosts_keys (int number, char *key[]) return result; } +static int +ahosts_keys (int number, char *key[]) +{ + return ahosts_keys_int (AF_UNSPEC, 0, number, key); +} + +static int +ahostsv4_keys (int number, char *key[]) +{ + return ahosts_keys_int (AF_INET, 0, number, key); +} + +static int +ahostsv6_keys (int number, char *key[]) +{ + return ahosts_keys_int (AF_INET6, AI_V4MAPPED, number, key); +} + /* This is for netgroup */ static int netgroup_keys (int number, char *key[]) @@ -715,6 +733,8 @@ struct { #define D(name) { #name, name ## _keys }, D(ahosts) +D(ahostsv4) +D(ahostsv6) D(aliases) D(ethers) D(group) -- 2.7.4