From 3a26c39c97c10db22f627c5761d9fd618ee8ef8c Mon Sep 17 00:00:00 2001 From: Petr Spacek Date: Fri, 27 Mar 2015 15:51:24 +0100 Subject: [PATCH] Add response to NoAnswer exception. Only question section is returned from str(NoAnswer). Whole response variable is intended for application debug logs and is not returned from str(). --- dns/resolver.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dns/resolver.py b/dns/resolver.py index bd4b0ec3..cd3d1c20 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -76,9 +76,12 @@ Timeout = dns.exception.Timeout class NoAnswer(dns.exception.DNSException): """The DNS response does not contain an answer to the question.""" - fmt = '%s: {question}' % __doc__[:-1] - supp_kwargs = set(['question']) + fmt = '%s: {query}' % __doc__[:-1] + supp_kwargs = set(['response']) + def _fmt_kwargs(self, **kwargs): + return super(NoAnswer, self)._fmt_kwargs( + query=kwargs['response'].question) class NoNameservers(dns.exception.DNSException): """No non-broken nameservers are available to answer the query.""" @@ -171,9 +174,9 @@ class Answer(object): if raise_on_no_answer: raise NoAnswer(question=response.question) if raise_on_no_answer: - raise NoAnswer(question=response.question) + raise NoAnswer(response=response) if rrset is None and raise_on_no_answer: - raise NoAnswer(question=request.question) + raise NoAnswer(response=response) self.canonical_name = qname self.rrset = rrset if rrset is None: -- 2.47.3