diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-07-01 03:41:30 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-07-01 03:41:30 -0700 |
commit | 2fd0cd8b5257e7ae0c0df0651ee62a6ef7c37cc2 (patch) | |
tree | 26f7bb61593ddaca9ca8e3668a63dacc9ccf433b | |
parent | 5cd1f906c34256abdccc92052fbbde51fd70a565 (diff) | |
download | glibc-2fd0cd8b5257e7ae0c0df0651ee62a6ef7c37cc2.zip glibc-2fd0cd8b5257e7ae0c0df0651ee62a6ef7c37cc2.tar.gz glibc-2fd0cd8b5257e7ae0c0df0651ee62a6ef7c37cc2.tar.bz2 |
Fix NIS and NIS+ getnetbyaddr backends.
The addresses were interpreted as class-based network addresses.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nis/nss_nis/nis-network.c | 2 | ||||
-rw-r--r-- | nis/nss_nisplus/nisplus-network.c | 2 |
3 files changed, 7 insertions, 2 deletions
@@ -1,5 +1,10 @@ 2009-07-01 Ulrich Drepper <drepper@redhat.com> + * nis/nss_nis/nis-network.c (_nss_nis_getnetbyaddr_r): Don't use + inet_makeaddr. This worked only with class-based networks. + * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r): + Likewise. + * nss/nss_files/files-network.c (netbyaddr): If type is AF_UNSPEC, recognize all types. * nss/getent.c (networks_keys): Pass AF_UNSPEC instead of AF_UNIX diff --git a/nis/nss_nis/nis-network.c b/nis/nss_nis/nis-network.c index 9b02302..22a898b 100644 --- a/nis/nss_nis/nis-network.c +++ b/nis/nss_nis/nis-network.c @@ -241,7 +241,7 @@ _nss_nis_getnetbyaddr_r (uint32_t addr, int type, struct netent *net, if (__builtin_expect (yp_get_default_domain (&domain), 0)) return NSS_STATUS_UNAVAIL; - struct in_addr in = inet_makeaddr (addr, 0); + struct in_addr in = { .s_addr = htonl (addr) }; char *buf = inet_ntoa (in); size_t blen = strlen (buf); diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c index 1cf652f..902826b 100644 --- a/nis/nss_nisplus/nisplus-network.c +++ b/nis/nss_nisplus/nisplus-network.c @@ -433,7 +433,7 @@ _nss_nisplus_getnetbyaddr_r (uint32_t addr, const int type, char buf2[18]; int olderr = errno; - struct in_addr in = inet_makeaddr (addr, 0); + struct in_addr in = { .s_addr = htonl (addr) }; strcpy (buf2, inet_ntoa (in)); size_t b2len = strlen (buf2); |