From 8829e2ccce03d3331164380f0438b50dda6bd875 Mon Sep 17 00:00:00 2001 From: ljf Date: Mon, 24 May 2021 15:30:08 +0200 Subject: [PATCH 1/2] [fix] Diagnosis dns query timeout --- data/templates/dnsmasq/plain/resolv.dnsmasq.conf | 5 ----- src/yunohost/utils/network.py | 10 +++++++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/data/templates/dnsmasq/plain/resolv.dnsmasq.conf b/data/templates/dnsmasq/plain/resolv.dnsmasq.conf index ce8515054..726899421 100644 --- a/data/templates/dnsmasq/plain/resolv.dnsmasq.conf +++ b/data/templates/dnsmasq/plain/resolv.dnsmasq.conf @@ -23,11 +23,6 @@ nameserver 185.233.100.100 nameserver 2a0c:e300::100 nameserver 185.233.100.101 nameserver 2a0c:e300::101 -# (FR) gozmail / grifon -nameserver 80.67.190.200 -nameserver 2a00:5884:8218::1 -# (DE) FoeBud / Digital Courage -nameserver 85.214.20.141 # (DE) CCC Berlin nameserver 195.160.173.53 # (DE) AS250 diff --git a/src/yunohost/utils/network.py b/src/yunohost/utils/network.py index d96151fa4..e49ac3e88 100644 --- a/src/yunohost/utils/network.py +++ b/src/yunohost/utils/network.py @@ -169,7 +169,15 @@ def dig( resolver = dns.resolver.Resolver(configure=False) resolver.use_edns(0, 0, edns_size) resolver.nameservers = resolvers - resolver.timeout = timeout + # resolver.timeout is used to trigger the next DNS query on resolvers list. + # In python-dns 1.16, this value is set to 2.0. However, this means that if + # the 3 first dns resolvers in list are down, we wait 6 seconds before to + # run the DNS query to a DNS resolvers up... + # In diagnosis dnsrecords, with 10 domains this means at least 12min, too long. + resolver.timeout = 1.0 + # resolver.lifetime is the timeout for resolver.query() + # By default set it to 7 seconds to allow 6 resolvers to be unreachable. + resolver.lifetime = timeout try: answers = resolver.query(qname, rdtype) except ( From 75d2f71d1acff7243f1420cf02445fa4ac9058ca Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Mon, 24 May 2021 15:36:03 +0200 Subject: [PATCH 2/2] [fix] Typo in comments --- src/yunohost/utils/network.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/yunohost/utils/network.py b/src/yunohost/utils/network.py index e49ac3e88..e332a5a25 100644 --- a/src/yunohost/utils/network.py +++ b/src/yunohost/utils/network.py @@ -176,7 +176,7 @@ def dig( # In diagnosis dnsrecords, with 10 domains this means at least 12min, too long. resolver.timeout = 1.0 # resolver.lifetime is the timeout for resolver.query() - # By default set it to 7 seconds to allow 6 resolvers to be unreachable. + # By default set it to 5 seconds to allow 4 resolvers to be unreachable. resolver.lifetime = timeout try: answers = resolver.query(qname, rdtype)