summaryrefslogtreecommitdiff
path: root/dns/resolver.py
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2020-05-19 19:23:29 -0700
committerBob Halley <halley@dnspython.org>2020-05-19 19:23:29 -0700
commit9e104f089216c11a28919f6785482fc29ed7102d (patch)
tree4bfe48f2c766b146ea7fa271672c8080f6aaa674 /dns/resolver.py
parent410d7f5c9a2c7f6722baea80f9b6a4593bee00c1 (diff)
downloaddnspython-9e104f089216c11a28919f6785482fc29ed7102d.tar.gz
move raise_on_no_error out of Answer
Diffstat (limited to 'dns/resolver.py')
-rw-r--r--dns/resolver.py16
1 files changed, 6 insertions, 10 deletions
diff --git a/dns/resolver.py b/dns/resolver.py
index fe409e0..d63ed36 100644
--- a/dns/resolver.py
+++ b/dns/resolver.py
@@ -201,8 +201,7 @@ class Answer(object):
RRset's name might not be the query name.
"""
- def __init__(self, qname, rdtype, rdclass, response,
- raise_on_no_answer=True, nameserver=None,
+ def __init__(self, qname, rdtype, rdclass, response, nameserver=None,
port=None):
self.qname = qname
self.rdtype = rdtype
@@ -233,12 +232,8 @@ class Answer(object):
break
continue
except KeyError:
- if raise_on_no_answer:
- raise NoAnswer(response=response)
- if raise_on_no_answer:
- raise NoAnswer(response=response)
- if rrset is None and raise_on_no_answer:
- raise NoAnswer(response=response)
+ # Exit the chaining loop
+ break
self.canonical_name = qname
self.rrset = rrset
if rrset is None:
@@ -635,11 +630,12 @@ class _Resolution(object):
rcode = response.rcode()
if rcode == dns.rcode.NOERROR:
answer = Answer(self.qname, self.rdtype, self.rdclass, response,
- self.raise_on_no_answer, self.nameserver,
- self.port)
+ self.nameserver, self.port)
if self.resolver.cache:
self.resolver.cache.put((self.qname, self.rdtype,
self.rdclass), answer)
+ if answer.rrset is None and self.raise_on_no_answer:
+ raise NoAnswer(response=answer.response)
return (answer, True)
elif rcode == dns.rcode.NXDOMAIN:
self.nxdomain_responses[self.qname] = response