summaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-10-30 00:58:03 +0000
committerUlrich Drepper <drepper@redhat.com>2007-10-30 00:58:03 +0000
commit31e2791ced09084cca6880375fab06f3dbc8f212 (patch)
tree634650f9c673a7ecd2d6a18830a3ac8ba4ae5ace /resolv
parent384ca551743318bd9c9e24a496d6397f2e3f2a49 (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/Versions1
-rw-r--r--resolv/nss_dns/dns-host.c27
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);