diff options
Diffstat (limited to 'dns/resolver.py')
| -rw-r--r-- | dns/resolver.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/dns/resolver.py b/dns/resolver.py index 97fda1c..21592bc 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -41,6 +41,10 @@ class NXDOMAIN(dns.exception.DNSException): """The query name does not exist.""" pass +class YXDOMAIN(dns.exception.DNSException): + """The query name is too long after DNAME substitution.""" + pass + # The definition of the Timeout exception has moved from here to the # dns.exception module. We keep dns.resolver.Timeout defined for # backwards compatibility. @@ -714,6 +718,7 @@ class Resolver(object): @rtype: dns.resolver.Answer instance @raises Timeout: no answers could be found in the specified lifetime @raises NXDOMAIN: the query name does not exist + @raises YXDOMAIN: the query name is too long after DNAME substitution @raises NoAnswer: the response did not contain an answer and raise_on_no_answer is True. @raises NoNameservers: no non-broken nameservers are available to @@ -818,6 +823,8 @@ class Resolver(object): response = None continue rcode = response.rcode() + if rcode == dns.rcode.YXDOMAIN: + raise YXDOMAIN if rcode == dns.rcode.NOERROR or \ rcode == dns.rcode.NXDOMAIN: break |
