From: Mark Andrews Date: Fri, 28 Dec 2018 04:16:04 +0000 (+1100) Subject: adjust timeout to allow for ECN negotiation failures X-Git-Tag: v9.13.6~54^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dadb924be766eb8bfb922eacc8015c33c08d206b;p=thirdparty%2Fbind9.git adjust timeout to allow for ECN negotiation failures --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 7b09edf2071..da9083010e5 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1919,6 +1919,15 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, srtt = addrinfo->srtt; + /* + * Allow an additional second for the kernel to resend the SYN (or + * SYN without ECN in the case of stupid firewalls blocking ECN + * negotiation) over the current RTT estimate. + */ + if ((options & DNS_FETCHOPT_TCP) != 0) { + srtt += 1000000; + } + /* * A forwarder needs to make multiple queries. Give it at least * a second to do these in.