diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-08-15 09:42:45 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-08-15 09:42:45 +0000 |
commit | a7d248330fcfbd8c3ebaf13088d9d312895b7dc4 (patch) | |
tree | 80f31bbd8304e814a65ee0ccba040f985b051686 /nss/getent.c | |
parent | 06ee3df6a87f61a5e3e8c4cf1d892b197352f96d (diff) | |
download | glibc-a7d248330fcfbd8c3ebaf13088d9d312895b7dc4.tar glibc-a7d248330fcfbd8c3ebaf13088d9d312895b7dc4.tar.gz glibc-a7d248330fcfbd8c3ebaf13088d9d312895b7dc4.tar.bz2 glibc-a7d248330fcfbd8c3ebaf13088d9d312895b7dc4.zip |
Update.
2004-08-15 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c: Allow queries for getaddrinfo with AF_INET and
AF_INET6.
Diffstat (limited to 'nss/getent.c')
-rw-r--r-- | nss/getent.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/nss/getent.c b/nss/getent.c index 4be9535b9d..0f93e5121c 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) |