summaryrefslogtreecommitdiffstats
path: root/lib/libc/net/getaddrinfo.c
Commit message (Collapse)AuthorAgeFilesLines
* Return zero from get_addrselectpolicy() when no source-address-selectionemax2012-07-181-0/+2
| | | | | | policy is installed. MFC after: 1 week
* libc: Remove some unused strings from getaddrinfo().jilles2012-07-151-13/+12
|
* Fix two warnings about self-assignment in libc. These normally onlydim2012-06-061-1/+1
| | | | | | | trigger with clang, when you either use -save-temps, or ccache. Reported by: Sevan / Venture37 <venture37@gmail.com> MFC after: 3 days
* Eliminate two cases of unwanted strncpy(). The name is not requireddelphij2012-04-021-2/+0
| | | | | | | | by the current code, and the results would get overwritten anyway by subsequent memset(). Reviewed by: ume MFC after: 1 month
* Handle the internal scope address representation of the KAME IPv6ume2012-01-071-1/+2
| | | | | | | stack for the node-local multicast address. Spotted by: Rainer Bredehorn <Bredehorn__at__gmx.de> MFC after: 1 week
* Query DNS only once per an address family.ume2009-03-291-86/+170
| | | | | Obtained from: KAME MFC after: 2 weeks
* Add support for SCTP to getaddrinfo(3).ume2009-03-251-7/+20
| | | | | | | | | | | | | Now, getaddrinfo(3) returns two SOCK_STREAMs, IPPROTO_TCP and IPPROTO_SCTP. It confuses some programs. If getaddrinfo(3) returns IPPROTO_SCTP when SOCK_STREAM is specified by hints.ai_socktype, at least Apache doesn't work. So, I made getaddrinfo(3) to return IPPROTO_SCTP with SOCK_STREAM only when IPPROTO_SCTP is specified explicitly by hints.ai_protocol. PR: bin/128167 Submitted by: Bruce Cran <bruce__at__cran.org.uk> (partly) MFC after: 2 week
* getaddrinfo(3) should accept numeric when ai_socktype is notume2009-03-241-1/+11
| | | | | | | | specified in hint or hints is NULL. PR: bin/51827 Submitted by: Mark Andrews <marka__at__isc.org> MFC after: 1 week
* Shutup warning for DNAME RR.ume2009-02-081-1/+2
| | | | | | PR: bin/127591 Submitted by: "Eugene M. Kim" <20080111.freebsd.org__at__ab.ote.we.lv> MFC after: 1 week
* Remove incomplete support of AI_ALL and AI_V4MAPPED.ume2008-02-031-21/+0
| | | | Reported by: "Heiko Wundram (Beenic)" <wundram__at__beenic.net>
* ensure the head entry of addrinfo chain has non-NULL ai_canonname to bejinmei2007-09-051-2/+19
| | | | | | | | | compliant with RFC3493. PR: standards/114910 Approved by: ume (mentor) Approved by: re MFC after: 1 week
* do not overload the port number on to the return value ofume2006-07-231-8/+9
| | | | | | | str2number(). this could result in an unexpected code path. Obtained from: KAME MFC after: 1 week
* remove obsolete comments.ume2006-07-221-8/+0
| | | | MFC after: 3 days
* simplification in explore_numeric: unified the post-process withume2006-07-211-32/+22
| | | | | | | GET_AI and GET_PORT. Commented on an impossible case. Obtained from: KAME MFC after: 1 week
* RFC3493 requires use of inet_aton for AF_INET.ume2006-07-211-3/+7
| | | | | Obtained from: KAME MFC after: 1 week
* clean-up: rewrote explore_null and explore_numeric without using sentinel.ume2006-07-211-35/+20
| | | | | | | | we do not need it since we make (at most) a single addrinfo entry in these cases. Obtained from: KAME MFC after: 1 week
* - Extend the nsswitch to support Services, Protocols and Rpcume2006-04-281-0/+197
| | | | | | | | databases. - Make nsswitch support caching. Submitted by: Michael Bushkov <bushman__at__rsu.ru> Sponsored by: Google Summer of Code 2005
* fix indent.ume2006-04-011-9/+9
|
* If the query choked with EDNS0, retry without EDNS0.ume2006-03-281-8/+24
| | | | Obtained from: res_nquery() of BIND9.
* - Use ANSI C prototype.ume2006-03-251-104/+38
| | | | - Remove trailing space.
* When res_nquerydomain() returns SERVFAIL, we should try next domain.ume2006-03-241-1/+9
|
* When res_send() fails, we should reserve an error code.ume2006-03-241-2/+2
|
* Update the resolver in libc to BIND9's one.ume2006-03-211-75/+83
| | | | | | | | | | | | | | | | | | | | | | Since, res_sendsigned(3) and the friends use MD5 functions, it is hard to include them without having MD5 functions in libc. So, res_sendsigned(3) is not merged into libc. Since, res_update(3) in BIND9 is not binary compatible with our res_update(3), res_update(3) is leaved as is, except some necessary modifications. The res_update(3) and the friends are not essential part of the resolver. They are not defined in resolv.h but defined in res_update.h separately in BIND9. Further, they are not called from our tree. So, I hide them from our resolv.h, but leave them only for binary backward compatibility (perhaps, no one calls them). Since, struct __res_state_ext is not exposed in BIND9, I hide it from our resolv.h. And, global variable _res_ext is removed. It breaks binary backward compatibility. But, since it is not used from outside of our libc, I think it is safe. Reviewed by: arch@ (no objection)
* When we are doing initialization against q, use its own size, notdelphij2006-03-211-1/+1
| | | | | | | the size of q2. This should be a no-op because q and q2 are of the same type. Submitted by: Alexey Dobriyan <adobriyan gmail com>
* Handle the errors returned by res_querydomain() in same manner.ume2006-03-011-0/+20
| | | | | | Reported by: yar Tested by: yar, Rostislav Krasny <rosti.bsd__at__gmail.com> MFC after: 1 week
* - Just query 'as is', if there is a trailing dot in the name.ume2006-02-241-9/+20
| | | | | | | | | | - Don't query 'as is' twice. PR: bin/62139 Reported by: Rostislav Krasny <rosti.bsd__at__gmail.com> Tested by: Rostislav Krasny <rosti.bsd__at__gmail.com> Obtained from: BIND9 (with some modification) MFC after: 1 week
* Remove padding for ABI compatibility of ai_addrlen memberume2005-07-221-3/+0
| | | | | from struct addrinfo. This change break ABI compatibility on 64 bit arch.
* - The ai_addrlen of a struct addrinfo used to be a size_t, perume2005-05-151-1/+4
| | | | | | | | | | | | | | | | RFC 2553. In XNS5.2, and subsequently in POSIX-2001 and RFC 3493, it was changed to a socklen_t. And, the n_net of a struct netent used to be an unsigned long integer. In XNS5, and subsequently in POSIX-2001, it was changed to an uint32_t. To accomodate for this while preserving ABI compatibility with the old interface, we need to prepend or append 32 bits of padding, depending on the (LP64) architecture's endianness. - Correct 1st argument of getnetbyaddr() to uint32_t on 32 bit arch. Stay as is on 64 bit arch for ABI backward compatibility for now. Reviewed by: das, peter MFC after: 2 weeks
* Submitted by: Jinmei Tatuya, Hajimu Umemotognn2005-05-141-2/+2
| | | | | | | | | | Reviewed by: rwatson at freebsd dot org Approved by: rwatson at freebsd dot org MFC after: 1 week Fix the matchlen() function so that it handles the IPv4 (AF_INET) case correctly. Until now it has been treating IPv4 addresses as if they were IPv6 which could lead to corruption errors.
* free ypbuf only when yp_match() succeed.ume2005-05-131-1/+1
|
* the 3rd argument of getsockname() should be socklen_t*.ume2005-05-021-1/+2
| | | | Submitted by: stefanf
* Now, our getservbyname(3) is thread-safe. So, we don't needume2005-04-151-14/+1
| | | | to protect it with mutex lock.
* hostalias() is not thread-safe. So, introduce _res_hostalias()ume2005-04-151-2/+3
| | | | | | and use it. Obtained from: BIND9
* remove needless res_init() call.ume2005-04-141-9/+0
| | | | Inspired by: NetBSD
* - we are no longer shareing any resources to be locked betweenume2005-04-061-10/+6
| | | | | | getaddrinfo(3) and getipnodeby*(3). - use definitions in reentrant.h. - remove obsolete comment.
* separate gai_strerror(3) from getaddrinfo.c.ume2005-04-061-27/+0
| | | | Requested by: phantom
* make yp stuff re-entrant.ume2005-04-051-26/+15
| | | | Obtained from: NetBSD
* make _files_getaddrinfo() re-entrant.ume2005-04-041-22/+19
| | | | Obtained from: NetBSD
* . Convert return type of gai_strerror() to 'const char *' as POSIX requires.phantom2005-02-141-29/+21
| | | | | . Convert ai_errlist[] to simple 'char *' array, and appropriately optimize gai_strerror()
* use strdup().ume2005-01-281-2/+1
| | | | | Obtained from: KAME MFC after: 1 week
* implement AI_NUMERICSERV (as defined in RFC3493).ume2005-01-271-10/+13
| | | | | Obtained from: KAME MFC after: 1 week
* fill ai_canonname field for numeric hostname, by the given hostname.ume2005-01-271-7/+25
| | | | | | | follow new recommendation in RFC3493. Obtained from: KAME MFC after: 1 week
* query A RR before AAAA RR.ume2005-01-271-10/+10
| | | | MFC after: 1 week
* Don't ignore the last line of config file (/etc/hosts, /etc/services, etc)sobomax2005-01-031-3/+3
| | | | | | | | which doesn't end in \n, since it may be very confusing. Also this should increase consistency, since most other config files work just fine regardless of the presence of traling \n in the last line. MFC After: 2 weeks
* Rename variable name from `name' to `hostname'.ume2004-06-161-7/+7
| | | | | | | | | | This is a corresponding change to bin/67994. I'll soon commit bin/67994 into 4-STABLE. Actually, 5-CURRENT's getaddrinfo() doesn't have the problem mentiond in bin/67994. However, it is good to be in sync variable name with 4-STABLE and KAME. PR: bin/67994 Submitted by: JINMEI Tatuya <jinmei@ocean.jinmei.org>
* Treat IPv4 private address as global scope rather than site scope.ume2004-05-311-1/+1
| | | | | Though it breaks RFC 3484, without this change, dest addr selection doesn't work well under NAT environment.
* use source address as a hint to determine destination address.ume2004-05-311-0/+111
| | | | Obtained from: KAME
* Make the resolver(3) and many associated interfaces much more reentrant.green2004-02-251-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The getaddrinfo(3), getipnodebyname(3) and resolver(3) can coincide now with what should be totally reentrant, and h_errno values will now be preserved correctly, but this does not affect interfaces such as gethostbyname(3) which are still mostly non-reentrant. In all of these relevant functions, the thread-safety has been pushed down as far as it seems possible right now. This means that operations that are selected via nsdispatch(3) (i.e. files, yp, dns) are protected still under global locks that getaddrinfo(3) defines, but where possible the locking is greatly reduced. The most noticeable improvement is that multiple DNS lookups can now be run at the same time, and this shows major improvement in performance of DNS-lookup threaded programs, and solves the "Mozilla tab serialization" problem. No single-threaded applications need to be recompiled. Multi-threaded applications that reference "_res" to change resolver(3) options will need to be recompiled, and ones which reference "h_errno" will also if they desire the correct h_errno values. If the applications already understood that _res and h_errno were not thread-safe and had their own locking, they will see no performance improvement but will not actually break in any way. Please note that when NSS modules are used, or when nsdispatch(3) defaults to adding any lookups of its own to the individual libc _nsdispatch() calls, those MUST be reentrant as well.
* add destination address selection described in RFC3484.ume2003-10-301-7/+412
| | | | | | | | | in KAME implementation, even when no policy is installed into kernel, getaddrinfo(3) sorts addresses. Since it causes POLA violation, I modified to don't sort addresses when no policy is installed into kernel, Obtained from: KAME
* oops, revert previous change to getaddrinfo.c. This is not relatedume2003-10-241-275/+155
| | | | | to RFC3493. The previous change was related to RFC3484 (Default Address Selection for IPv6), and it will come later.
OpenPOWER on IntegriCloud