aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/posix/getaddrinfo.c
AgeCommit message (Collapse)Author
2013-10-25Fix incorrect getaddrinfo assertion triggerAllan McRae
[BZ #9954] With the following /etc/hosts: 127.0.0.1 www.my-domain.es 127.0.1.1 www.my-domain.es 192.168.0.1 www.my-domain.es Using getaddrinfo() on www.my-domain.es, trigger the following assertion: ../sysdeps/posix/getaddrinfo.c:1473: rfc3484_sort: Assertion `src->results[i].native == -1 || src->results[i].native == a1_native' failed. This is due to two different bugs: - In rfc3484_sort() rule 7, src->results[i].native is assigned even if src->results[i].index is -1, meaning that no interface is associated. - In getaddrinfo() the source IP address used with the lo interface needs a special case, as it can be any IP within 127.X.Y.Z.
2013-10-17Don't use gethostbyaddr to determine canonical nameAndreas Schwab
2013-09-30Properly cache the result from looking up the nss database configAndreas Schwab
2013-08-28Use __glibc_unlikely instead of __builtin_expect (..., 0)Siddhesh Poyarekar
2013-05-21Set EAI_SYSTEM only when h_errno is NETDB_INTERNALSiddhesh Poyarekar
Fixes BZ #15339. NSS_STATUS_UNAVAIL may mean that a necessary input resource is not available. This could occur in a number of cases including when the network is down, system runs out of file descriptors, etc. The correct differentiator in such a case is the h_errno, which gives the nature of failure. In case of failures other than a simple 'not found', we set h_errno as NETDB_INTERNAL and let errno be the identifier for the exact error.
2013-05-16Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold
2013-04-22Minor cleanup in getaddrinfoSiddhesh Poyarekar
Replace repeated computations of alloca size with a local variable that stores the computed value.
2013-04-03Fix stack overflow in getaddrinfo with many resultsAndreas Schwab
2012-11-19Return EAI_SYSTEM if we're out of file descriptorsSiddhesh Poyarekar
Resolves BZ #14719.
2012-10-30Suppress incorrect link warnings for NSS symbolsChris Metcalf
When glibc is built with --enable-static-nss, the warning that using NSS symbols requires the nss shared objects to be present is no longer true, as those symbols are built into libc. Suppress the warning for those symbols by providing a new macro (nss_interface_function) for the NSS functions that is defined as static_link_warning in the normal case, and empty for static NSS.
2012-09-28 [BZ #11438]Jeff Law
* sysdeps/posix/getaddrinfo.c (default_scopes): Map RFC 1918 * addresses to global scope. * posix/tst-rfc3484.c: Verify 10/8, 172.16/12 and 196.128/16 addresses are in the same scope as 192.0.2/24. * posix/gai.conf: Document new scope table defaults.
2012-08-22 * sysdeps/posix/getaddrinfo.c (gaih_inet): Only use gethostbyname4_rJeff Law
if the family is PF_UNSPEC.
2012-08-17Fix typo in last change.Roland McGrath
2012-08-17Fix getaddrinfo for [!_STATBUF_ST_NSEC] case.Roland McGrath
2012-07-12Avoid duplicate DNS requests if answer is longer than a implementationJeroen van Bemmel
limit [BZ #14307] * sysdeps/posix/getaddrinfo.c (gaih_inet): Increase the size of the temporary buffer used to invoke __gethostbyname2_r, __gethostbyaddr_r and gethostbyname4_r to make room for struct host_data / struct gaih_addrtuple. * resolv/nss_dns/dns-host.c (global scope): Move definition of implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS to header file nss/nsswitch.h. * nss/nsswitch.h (global scope): Add definition of implementation constants MAX_NR_ALIASES and MAX_NR_ADDRS (moved from resolv/nss_dns/dns-host.c).
2012-05-10Hurd: libc_once_getThomas Schwinge
2011-11-15Clean up internal fopen usesUlrich Drepper
No need to ever not use c and e.
2011-10-31Cache network interface informationUlrich Drepper
Whenever getaddrinfo needed network interface information it used the netlink interface to read the information every single time. The problem is that this information can change at any time. The patch implements monitoring of the network interfaces through nscd. If no change is detected the previously read information can be reused (which is the norm). This timestamp information is also made available to other processes using the shared memory segment between nscd and those processes.
2011-08-04Fix encoding name for IDN in getaddrinfoAndreas Schwab
2011-06-30Make sure RES_USE_INET6 is always restoredAndreas Schwab
2011-06-22Avoid __check_pf calls in getaddrinfo unless really neededUlrich Drepper
2011-06-22Fix Ipv4&IPv6 lookup in getaddrinfoAndreas Schwab
Problem introduced in the last patch.
2011-06-21Fix IPv6-only lookups through getaddrinfoUlrich Drepper
A recent patch introduced a problem where IPv6 lookups happily returned IPv4 addresses.
2011-06-21Minor optimization of getaddrinfo after recent patchUlrich Drepper
2011-06-13Fix memory leak in getaddrinfoUlrich Drepper
2011-05-29Restore _res correctlyUlrich Drepper
getaddrinfo works around the resolver functionality to avoid automatic IPv6 lookups. The restoring didn't allow for the resolver to set additional bits in _res.
2011-05-20Don't unconditionally use alloca in gaih_inetUlrich Drepper
2011-05-02getaddrinfo(AF_INET6) does not return scope_id info provided by NSS modulesMaciej Babinski
2011-01-19Fix decoding of canonical name in getaddrinfo.Ulrich Drepper
2010-08-11Add self-contained test for NSS.Ulrich Drepper
While at it fix interaction between __nss_configure_lookup and nscd. Otherwise the test fails if nscd is runnung.
2010-03-26Fix one case of last checkin.Ulrich Drepper
If the v4 lookup failed but v6 succeeded we treat this as a success.
2010-03-26Don't abort immediately on successful lookup in getaddrinfo.Ulrich Drepper
When not using gethostbyname4 methods we immediately aborted the loop over the nss modules on the first successful lookup. While this is almost always what is wanted the nsswitch.conf file allows to select something different.
2010-03-26Fix spurious UNAVAIL status is getaddrinfoAndreas Schwab
2009-12-10Fix a few error cases in *name4_r lookup handling.Ulrich Drepper
2009-07-25Handle missing NSS modules and those without callbacks.Ulrich Drepper
getaddrinfo didn't update the status variable in that round of the loop if no callback was used.
2008-12-29* sysdeps/posix/getaddrinfo.c (gaih_inet): When theUlrich Drepper
gethostbyname4_r function call succeeded, just leave the loop.
2008-12-03* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): RecognizeUlrich Drepper
ESRCH return value. (_nss_dns_gethostbyname4_r): Likewise. * resolv/res_init.c (__res_vinit): Initialize nscount to zero. * sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use gethostbyname4_r, we don't have a separate IPv6 status, so copy the no_data variable.
2008-11-27* sysdeps/posix/getaddrinfo.c (getaddrinfo): Only restrict searchUlrich Drepper
to IPv4 or IPv6 if an interface has been found.
2008-11-27* sysdeps/posix/getaddrinfo.c (getaddrinfo): If the system hasUlrich Drepper
neither IPv4 nor IPv6 addresses defined, don't do anything.
2008-07-30* sysdeps/posix/getaddrinfo.c (gaih_inet): Raise size of initialUlrich Drepper
buffer passed to NSS functions.
2008-06-13* sysdeps/posix/getaddrinfo.c: Move _res_hconf_init call to aUlrich Drepper
better place so it is not called when nscd is used.
2008-05-17* sysdeps/posix/getaddrinfo.c (gaih_inet): If nscd reports noUlrich Drepper
entry is available, believe it.
2008-05-16* sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_rUlrich Drepper
lookup, don't assign canon unconditionally.
2008-05-14(match_prefix): Don't treat IPv4 loopback address special whenUlrich Drepper
converting to v4 mapped addressed.
2008-05-14* sysdeps/posix/getaddrinfo.c (get_scope): Loopback addresses haveUlrich Drepper
to be treated like link-local addresses.
2008-05-14* sysdeps/posix/getaddrinfo.c (getaddrinfo): Add _res_hconf_initUlrich Drepper
if necessary.
2008-05-14* sysdeps/posix/getaddrinfo.c: Implement handling of DCCP, UDPlite,Ulrich Drepper
and SCTP.
2008-05-14* sysdeps/posix/getaddrinfo.c: Implement handling of DCCP andUlrich Drepper
UDPlite. * nss/getent.c (ahosts_keys_int): Handle all known socket types. * inet/netinet/in.h (IPPIPPROTO_DCCP, IPPROTO_UDPLITE): Define. * sysdeps/unix/sysv/linux/bits/socket.h (SOCK_DCCP): Define.
2008-05-10* include/resolv.h: Adjust __libc_res_nquery and __libc_res_nsendUlrich Drepper
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.
2008-03-26* posix/gai.conf: Fix comment for scope nullbits.Ulrich Drepper
* sysdeps/posix/getaddrinfo.c (gaiconf_init): If /bits is not present, default to 128 bits for v4 mapped addresses.