* 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.
This commit is contained in:
Ulrich Drepper 2007-10-30 00:58:03 +00:00
parent 384ca55174
commit 31e2791ced
3 changed files with 31 additions and 4 deletions

View file

@ -1,5 +1,12 @@
2007-10-29 Ulrich Drepper <drepper@redhat.com>
* 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.
* nscd/Makefile (nscd-modules): Replace gethstbynm2_r with
gethstbynm3_r.
* nscd/gethstbynm2_r.c: Remove.

View file

@ -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;
}
}

View file

@ -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);