diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-10-30 00:58:03 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-10-30 00:58:03 +0000 |
commit | 31e2791ced09084cca6880375fab06f3dbc8f212 (patch) | |
tree | 634650f9c673a7ecd2d6a18830a3ac8ba4ae5ace /resolv | |
parent | 384ca551743318bd9c9e24a496d6397f2e3f2a49 (diff) |
* resolv/Versions [libresolv] (GLIBC_PRIVATE): Add
_nss_dns_getnetbyaddr2_r.
* resolv/nss_dns/dns-host.c: Define _nss_dns_getnetbyaddr2_r. Pass
extra parameter to getanswer_r.
(_nss_dns_getnetbyaddr_r): Now a wrapper around
_nss_dns_getnetbyaddr2_r.
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/Versions | 1 | ||||
-rw-r--r-- | resolv/nss_dns/dns-host.c | 27 |
2 files changed, 24 insertions, 4 deletions
diff --git a/resolv/Versions b/resolv/Versions index 5a350cae36..fc2111a1cb 100644 --- a/resolv/Versions +++ b/resolv/Versions @@ -88,6 +88,7 @@ libnss_dns { _nss_dns_gethostbyname3_r; _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; } } diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index 0e25564670..def44e9dbf 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -255,10 +255,18 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result, } +extern enum nss_status _nss_dns_gethostbyaddr2_r (const void *addr, + socklen_t len, int af, + struct hostent *result, + char *buffer, size_t buflen, + int *errnop, int *h_errnop, + int32_t *ttlp); +hidden_proto (_nss_dns_gethostbyaddr2_r) + enum nss_status -_nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af, - struct hostent *result, char *buffer, size_t buflen, - int *errnop, int *h_errnop) +_nss_dns_gethostbyaddr2_r (const void *addr, socklen_t len, int af, + struct hostent *result, char *buffer, size_t buflen, + int *errnop, int *h_errnop, int32_t *ttlp) { static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff }; static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }; @@ -374,7 +382,7 @@ _nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af, got_it_already: status = getanswer_r (host_buffer.buf, n, qbuf, T_PTR, result, buffer, buflen, - errnop, h_errnop, 0 /* XXX */, NULL, NULL); + errnop, h_errnop, 0 /* XXX */, ttlp, NULL); if (host_buffer.buf != orig_host_buffer) free (host_buffer.buf); if (status != NSS_STATUS_SUCCESS) @@ -408,6 +416,17 @@ _nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af, *h_errnop = NETDB_SUCCESS; return NSS_STATUS_SUCCESS; } +hidden_def (_nss_dns_gethostbyaddr2_r) + + +enum nss_status +_nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af, + struct hostent *result, char *buffer, size_t buflen, + int *errnop, int *h_errnop) +{ + return _nss_dns_gethostbyaddr2_r (addr, len, af, result, buffer, buflen, + errnop, h_errnop, NULL); +} #ifdef RESOLVSORT static void addrsort (char **ap, int num); |