opnsense-src/lib/libc/net
Nate Lawson 1cc11684ac MFdragonfly: resolver fix for timeouts on unqualified hostnames
res_search only incremented got_servfail for h_errno == TRY_AGAIN *AND*
  hp->rcode == SERVFAIL.  However, there are cases such as timeouts where
  rcode is not always set to SERVFAIL.  This leads to inconsistent nameserver
  operation during multi-domain and truncated dot searches, especially during
  booting when portions of the network are being brought up simultanious with
  dns lookups.

  This patch attempts to correct the problem by unconditionally terminating
  the search if TRY_AGAIN is returned (after res_query has gone through all
  retries and name servers) instead of trying other domain elements in the
  domain seach path.

  This patch should fix reported problems (which I can reproduce) with some
  NFS mounts failing during boot.  This occured because mount_nfs thought the
  host name lookup returned a definitive failure using a non-dotted host name
  when, in fact, it timed out on the first part (host.search.domain.name) and
  got a definitive host-not-found response on the second part (host.).

  Generally speaking, search path name server timeouts can exceed 60 seconds
  per element and most machines which consistently timeout on earlier portions
  of a search path are effectively non-operational due to the imposed delays.
  It is more important for DNS lookups to return the proper error code then
  to be able to recover a valid lookup in later portions of the search path
  in these situations.

Obtained from:	DragonFly
MFC after:	3 weeks
2004-04-21 00:56:38 +00:00
..
addr2ascii.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
addr2ascii.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
ascii2addr.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
base64.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
byteorder.3 Document that <netinet/in.h> can also provide prototypes. Change 2002-05-11 23:22:54 +00:00
ether_addr.c Fix style of ether_ntoa(). 2002-04-08 07:51:10 +00:00
ethers.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
getaddrinfo.3 Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
getaddrinfo.c Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
gethostbydns.c Make NULL a (void*)0 whereever possible, and fix the warnings(-Werror) 2004-03-05 08:10:19 +00:00
gethostbyht.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
gethostbyname.3 Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
gethostbynis.c Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
gethostnamadr.c Remove bogus non-reentrant "temporary" implementation of gethostbyaddr_r() 2003-06-19 07:57:11 +00:00
getifaddrs.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
getifaddrs.c sysctl(NET_RT_IFLIST) up to several (currently 5) times. 2002-07-25 08:08:30 +00:00
getifmaddrs.3 Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
getifmaddrs.c Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
getipnodebyname.3 Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
getnameinfo.3 stop use of NI_WITHSCOPEID. it was deprecated. 2003-10-21 20:11:47 +00:00
getnameinfo.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
getnetbydns.c Unbreak world. 2004-02-07 11:13:47 +00:00
getnetbyht.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
getnetbynis.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
getnetent.3 mdoc(7) police: "The .Fa argument.". 2002-12-19 09:40:28 +00:00
getnetnamadr.c Catch up with nsdispatch.c: nsdispatch(3) is now `hidden' by 2003-04-24 18:05:48 +00:00
getproto.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
getprotoent.3 mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
getprotoent.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
getprotoname.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
getservbyname.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
getservbyport.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
getservent.3 mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
getservent.c Eliminate 19 warnings in libc (at level WARNS=2) of the 2003-02-27 13:40:01 +00:00
herror.c Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
hesiod.3 mdoc(7) police: "The .Fn function". 2002-12-18 12:45:11 +00:00
hesiod.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
if_indextoname.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
if_indextoname.c Use BSDi derived if_nametoindex(), if_indextoname(), if_nameindex() 2002-07-15 19:58:56 +00:00
if_nameindex.c Use BSDi derived if_nametoindex(), if_indextoname(), if_nameindex() 2002-07-15 19:58:56 +00:00
if_nametoindex.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
inet.3 Style: One space between "restrict" qualifier and "*". 2002-09-06 11:24:06 +00:00
inet6_opt_init.3 Switch Advanced Sockets API for IPv6 from RFC2292 to RFC3542 2003-10-24 18:26:30 +00:00
inet6_option_space.3 mdoc(7): Properly mark C headers. 2003-09-10 19:24:35 +00:00
inet6_rth_space.3 style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:40:17 +00:00
inet6_rthdr_space.3 mdoc(7): Properly mark C headers. 2003-09-10 19:24:35 +00:00
inet_addr.c just merged cosmetic changes from KAME to ease sync between KAME and FreeBSD. 2002-04-19 04:46:24 +00:00
inet_lnaof.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_makeaddr.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_net.3 mdoc(7) police: "The .Fa argument.". 2002-12-19 09:40:28 +00:00
inet_net_ntop.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_net_pton.c From OpenBSD: 2003-09-15 23:38:06 +00:00
inet_neta.c Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
inet_netof.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_network.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_ntoa.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
inet_ntop.c Style: One space between "restrict" qualifier and "*". 2002-09-06 11:24:06 +00:00
inet_pton.c Style: One space between "restrict" qualifier and "*". 2002-09-06 11:24:06 +00:00
ip6opt.c u_int8_t cannot carry a number greater than 255. 2003-11-14 18:07:50 +00:00
linkaddr.3 mdoc(7) police: "The .Fn function". 2002-12-18 12:45:11 +00:00
linkaddr.c Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
Makefile.inc Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
map_v4v6.c Include more robust checking of end of buffer that more completely 2002-06-26 08:18:05 +00:00
name6.c Add a missing "*errp = h_errno" forgotten in rev 1.36. 2004-04-06 09:31:22 +00:00
ns_name.c Whack 28 unused variables. 2003-02-18 13:39:52 +00:00
ns_netint.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
ns_parse.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
ns_print.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
ns_ttl.c Whack 28 unused variables. 2003-02-18 13:39:52 +00:00
nsap_addr.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
nsdispatch.3 Assorted mdoc(7) fixes. 2003-05-22 13:02:28 +00:00
nsdispatch.c The previous commit changed the behavior of nsdispatch() in the 2004-04-01 19:12:45 +00:00
nslexer.l = Implement name service switch modules (NSS modules). NSS modules 2003-04-17 14:14:22 +00:00
nsparser.y = Implement name service switch modules (NSS modules). NSS modules 2003-04-17 14:14:22 +00:00
nss_backends.h = Implement name service switch modules (NSS modules). NSS modules 2003-04-17 14:14:22 +00:00
nss_compat.c When a dynamic NSS module is built and linked against a thread 2004-03-30 15:56:15 +00:00
rcmd.3 mdoc(7) police: "The .Fn function". 2002-12-18 12:45:11 +00:00
rcmd.c Whack 28 unused variables. 2003-02-18 13:39:52 +00:00
rcmdsh.3 mdoc(7) police: "The .Fa argument.". 2002-12-19 09:40:28 +00:00
rcmdsh.c Eliminate 19 warnings in libc (at level WARNS=2) of the 2003-02-27 13:40:01 +00:00
recv.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
res_comp.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
res_config.h Fix the style of the SCM ID's. 2002-03-22 23:42:05 +00:00
res_data.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
res_debug.c Whack 28 unused variables. 2003-02-18 13:39:52 +00:00
res_init.c Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
res_mkquery.c Limit UDP payload size for EDNS0 to 0xffff, not use lower 16bit value. 2002-09-14 17:28:40 +00:00
res_mkupdate.c Whack 28 unused variables. 2003-02-18 13:39:52 +00:00
res_query.c MFdragonfly: resolver fix for timeouts on unqualified hostnames 2004-04-21 00:56:38 +00:00
res_send.c Don't try to pass off a struct sockaddr as a struct sockaddr_in when it 2004-03-15 17:08:28 +00:00
res_send_private.h Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
res_update.c Check for truncation in calls to res_send/res_query/res_search. 2002-09-15 16:51:09 +00:00
resolver.3 Make the resolver(3) and many associated interfaces much more reentrant. 2004-02-25 21:03:46 +00:00
rthdr.c Switch Advanced Sockets API for IPv6 from RFC2292 to RFC3542 2003-10-24 18:26:30 +00:00
send.c Fix the style of the SCM ID's. 2002-03-22 21:53:29 +00:00
sockatmark.3 mdoc(7) police: "The .Fa argument.". 2002-12-19 09:40:28 +00:00
sockatmark.c Add an implementation of the POSIX.1 sockatmark(3). 2002-12-13 22:22:55 +00:00
vars.c just merged cosmetic changes from KAME to ease sync between KAME and FreeBSD. 2002-04-19 04:46:24 +00:00