diff options
| author | Petr Spacek <pspacek@redhat.com> | 2015-03-19 18:03:19 +0100 |
|---|---|---|
| committer | Petr Viktorin <pviktori@redhat.com> | 2015-05-21 14:25:12 +0200 |
| commit | d9abf6a4bd59bf579067518d4538a9140708ebdb (patch) | |
| tree | b623bd6642c01c1eabf3d548075c05bf4b3441b7 | |
| parent | 33f4ef8257950891690af5b648c4e58b4850e0df (diff) | |
| download | dnspython-d9abf6a4bd59bf579067518d4538a9140708ebdb.tar.gz | |
Return list of non-existent names as part of str(NXDOMAIN).
| -rw-r--r-- | dns/resolver.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/dns/resolver.py b/dns/resolver.py index 31f44fe..7e33d1b 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -48,6 +48,21 @@ if sys.platform == 'win32': class NXDOMAIN(dns.exception.DNSException): """The DNS query name does not exist.""" + supp_kwargs = set(['qname']) + + def __str__(self): + if not 'qname' in self.kwargs: + return super(NXDOMAIN, self).__str__() + + qname = self.kwargs['qname'] + msg = self.__doc__[:-1] + if isinstance(qname, (list, set)): + if len(qname) > 1: + msg = 'None of DNS query names exist' + qname = list(map(str, qname)) + else: + qname = qname[0] + return "%s: %s" % (msg, (str(qname))) class YXDOMAIN(dns.exception.DNSException): """The DNS query name is too long after DNAME substitution.""" @@ -932,7 +947,7 @@ class Resolver(object): all_nxdomain = False break if all_nxdomain: - raise NXDOMAIN + raise NXDOMAIN(qname=qnames_to_try) answer = Answer(qname, rdtype, rdclass, response, raise_on_no_answer) if self.cache: |
