From 09910e78493f02cf87669e19f9f6082e930841de Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Sun, 31 Mar 2013 12:32:16 +0100 Subject: [PATCH] Do not retry SERVFAILing nameservers by default --- dns/resolver.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dns/resolver.py b/dns/resolver.py index 21592bc7..a041ce24 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -430,6 +430,9 @@ class Resolver(object): @type payload: int @ivar cache: The cache to use. The default is None. @type cache: dns.resolver.Cache object + @ivar retry_servfail: should we retry a nameserver if it says SERVFAIL? + The default is 'false'. + @type retry_servfail: bool """ def __init__(self, filename='/etc/resolv.conf', configure=True): """Initialize a resolver instance. @@ -469,6 +472,7 @@ class Resolver(object): self.ednsflags = 0 self.payload = 0 self.cache = None + self.retry_servfail = False def read_resolv_conf(self, f): """Process f as a file in the /etc/resolv.conf format. If f is @@ -833,7 +837,7 @@ class Resolver(object): # rcode in it. Remove the server from the mix if # the rcode isn't SERVFAIL. # - if rcode != dns.rcode.SERVFAIL: + if rcode != dns.rcode.SERVFAIL or not retry_servfail: nameservers.remove(nameserver) response = None if not response is None: -- 2.47.3