summaryrefslogtreecommitdiff
path: root/lib/kernel/doc
diff options
context:
space:
mode:
authorMicael Karlberg <bmk@erlang.org>2020-11-12 15:21:50 +0100
committerMicael Karlberg <bmk@erlang.org>2020-11-12 15:21:50 +0100
commit7021c442b742e20f3a02ed72a8cb35c1f019fb9e (patch)
tree22afdf5183c466caedb4ec5ec9273bfccecbad7b /lib/kernel/doc
parent34ee1bc943cabdc05412d09efe88daff5df31c39 (diff)
parent985938ac527a1b6d739cfbca92f3118b050d15da (diff)
downloaderlang-7021c442b742e20f3a02ed72a8cb35c1f019fb9e.tar.gz
Merge branch 'maint'
OTP-16956
Diffstat (limited to 'lib/kernel/doc')
-rw-r--r--lib/kernel/doc/src/inet_res.xml56
1 files changed, 33 insertions, 23 deletions
diff --git a/lib/kernel/doc/src/inet_res.xml b/lib/kernel/doc/src/inet_res.xml
index c30038f4cd..f50915a2e2 100644
--- a/lib/kernel/doc/src/inet_res.xml
+++ b/lib/kernel/doc/src/inet_res.xml
@@ -4,7 +4,7 @@
<erlref>
<header>
<copyright>
- <year>2009</year><year>2018</year>
+ <year>2009</year><year>2020</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
@@ -48,31 +48,41 @@
<section>
<title>Name Resolving</title>
<p>UDP queries are used unless resolver option
- <c>usevc</c> is <c>true</c>, which forces TCP queries.
- If the query is too large for UDP, TCP is used instead.
- For regular DNS queries, 512 bytes is the size limit.</p>
+ <c>usevc</c> is <c>true</c>, which forces TCP queries.
+ If the query is too large for UDP, TCP is used instead.
+ For regular DNS queries, 512 bytes is the size limit.</p>
+
<p>When EDNS is enabled (resolver option
- <c>edns</c> is set to the EDNS version (that is, <c>0</c>
- instead of <c>false</c>), resolver option
- <c>udp_payload_size</c> sets the limit. If a name server
- replies with the TC bit set (truncation), indicating that
- the answer is incomplete, the query is retried
- to that name server using TCP. Resolver option
- <c>udp_payload_size</c> also sets the advertised
- size for the maximum allowed reply size, if EDNS is
- enabled, otherwise the name server uses the limit
- 512 bytes. If the reply is larger, it gets truncated,
- forcing a TCP requery.</p>
+ <c>edns</c> is set to the EDNS version (that is, <c>0</c>
+ instead of <c>false</c>), resolver option
+ <c>udp_payload_size</c> sets the limit. If a name server
+ replies with the TC bit set (truncation), indicating that
+ the answer is incomplete, the query is retried
+ to that name server using TCP. Resolver option
+ <c>udp_payload_size</c> also sets the advertised
+ size for the maximum allowed reply size, if EDNS is
+ enabled, otherwise the name server uses the limit
+ 512 bytes. If the reply is larger, it gets truncated,
+ forcing a TCP requery.</p>
+
<p>For UDP queries, resolver options <c>timeout</c>
- and <c>retry</c> control retransmission.
- Each name server in the <c>nameservers</c> list is
- tried with a time-out of <c>timeout</c>/<c>retry</c>.
- Then all name servers are tried again, doubling the
- time-out, for a total of <c>retry</c> times.</p>
+ and <c>retry</c> control retransmission.
+ Each name server in the <c>nameservers</c> list is
+ tried with a time-out of <c>timeout</c>/<c>retry</c>.
+ Then all name servers are tried again, doubling the
+ time-out, for a total of <c>retry</c> times.</p>
+
+ <marker id="servfail_retry_timeout"/>
+ <p>But before all name servers are tried again, there is a
+ (user configurable) timeout, <c>servfail_retry_timeout</c>.
+ The point of this is to prevent the new query to be handled
+ by to the servfail cache (a client that is to eager will
+ actually only get what is in the servfail cache). </p>
+
<p>For queries not using the <c>search</c> list,
- if the query to all <c>nameservers</c> results in
- <c>{error,nxdomain}</c> or an empty answer, the same
- query is tried for <c>alt_nameservers</c>.</p>
+ if the query to all <c>nameservers</c> results in
+ <c>{error,nxdomain}</c> or an empty answer, the same
+ query is tried for <c>alt_nameservers</c>.</p>
</section>
<section>