diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-12-09 14:53:45 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-12-10 03:04:06 +0100 |
commit | 75ef8f1dd27f4985b3d705e7681a9218ad513c84 (patch) | |
tree | c28f415ff0e15bc40aa07f191afe0238d45ae598 /lib/dnspython/dns/resolver.py | |
parent | 91438920b465ec7455dd1cd700bbe8ec5050b3f9 (diff) | |
download | samba-75ef8f1dd27f4985b3d705e7681a9218ad513c84.tar.gz samba-75ef8f1dd27f4985b3d705e7681a9218ad513c84.tar.bz2 samba-75ef8f1dd27f4985b3d705e7681a9218ad513c84.zip |
dnspython: Update to newer upstream snapshot.
Diffstat (limited to 'lib/dnspython/dns/resolver.py')
-rw-r--r-- | lib/dnspython/dns/resolver.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/dnspython/dns/resolver.py b/lib/dnspython/dns/resolver.py index cd0e5f804b..f803eb6d20 100644 --- a/lib/dnspython/dns/resolver.py +++ b/lib/dnspython/dns/resolver.py @@ -569,9 +569,9 @@ class Resolver(object): if isinstance(qname, (str, unicode)): qname = dns.name.from_text(qname, None) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(rdclass, str): + if isinstance(rdclass, (str, unicode)): rdclass = dns.rdataclass.from_text(rdclass) qnames_to_try = [] if qname.is_absolute(): @@ -754,9 +754,12 @@ def zone_for_name(name, rdclass=dns.rdataclass.IN, tcp=False, resolver=None): while 1: try: answer = resolver.query(name, dns.rdatatype.SOA, rdclass, tcp) - return name + if answer.rrset.name == name: + return name + # otherwise we were CNAMEd or DNAMEd and need to look higher except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer): - try: - name = name.parent() - except dns.name.NoParent: - raise NoRootSOA + pass + try: + name = name.parent() + except dns.name.NoParent: + raise NoRootSOA |