mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
* include/resolv.h: Adjust __libc_res_nquery and __libc_res_nsend
prototypes. * include/arpa/nameser_compat.h: Define T_UNSPEC. * nis/Versions (libnss_nis): Export _nss_nis_gethostbyname4_r. (libnss_nisplus): Export _nss_nisplus_gethostbyname4_r. * nis/nss_nis/nis-hosts.c (LINE_PARSER): Change to also handle af==AF_UNSPEC. (_nss_nis_gethostbyname4_r): New function. * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_parse_hostent): Change to also handle af==AF_UNSPEC. (get_tablename): New function. Use it to avoid duplication. (_nss_nisplus_gethostbyname4_r): New function. * nscd/aicache.c (addhstaiX): Use gethostbyname4_r function is available. * nss/Versions (libnss_files): Export _nss_files_gethostbyname4_r. * nss/nss.h: Define struct gaih_addrtuple. * nss/nss_files/files-hosts.c (LINE_PARSER): Change to also handle af==AF_UNSPEC. (_nss_files_gethostbyname4_r): New function. * resolv/Versions (libnss_dns): Export _nss_dns_gethostbyname4_r. * resolv/gethnmaddr.c: Adjust __libc_res_nsearch and __libc_res_nquery calls. * resolv/res_query.c (__libc_res_nquery): Take two additional parameters for second answer buffer. Handle type=T_UNSPEC to mean look up IPv4 and IPv6. Change all callers. * resolv/res_send.c (__libc_res_nsend): Take five aditional parameters for an additional query and answer buffer. Pass to send_vc and send_dg. (send_vc): Send possibly two requests and receive two answers. (send_dg): Likewise. * resolv/nss_dns/dns-host.c: Adjust calls to __libc_res_nsearch and __libc_res_nquery. (_nss_dns_gethostbyname4_r): New function. (gaih_getanswer_slice): Likewise. (gaih_getanswer): Likewise. * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Adjust __libc_res_nquery call. * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise. (_nss_dns_getnetbyname_r): Adjust __libc_res_nsearch call. * sysdeps/posix/getaddrinfo.c: Use gethostbyname4_r function is available.
This commit is contained in:
@ -621,7 +621,7 @@ gethostbyname2(name, af)
|
||||
buf.buf = origbuf = (querybuf *) alloca (1024);
|
||||
|
||||
if ((n = __libc_res_nsearch(&_res, name, C_IN, type, buf.buf->buf, 1024,
|
||||
&buf.ptr)) < 0) {
|
||||
&buf.ptr, NULL, NULL)) < 0) {
|
||||
if (buf.buf != origbuf)
|
||||
free (buf.buf);
|
||||
Dprintf("res_nsearch failed (%d)\n", n);
|
||||
@ -716,12 +716,12 @@ gethostbyaddr(addr, len, af)
|
||||
buf.buf = orig_buf = (querybuf *) alloca (1024);
|
||||
|
||||
n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024,
|
||||
&buf.ptr);
|
||||
&buf.ptr, NULL, NULL);
|
||||
if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) {
|
||||
strcpy(qp, "ip6.int");
|
||||
n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf,
|
||||
buf.buf != orig_buf ? MAXPACKET : 1024,
|
||||
&buf.ptr);
|
||||
&buf.ptr, NULL, NULL);
|
||||
}
|
||||
if (n < 0) {
|
||||
if (buf.buf != orig_buf)
|
||||
|
Reference in New Issue
Block a user