diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | dns/dnssec.py | 2 | ||||
-rw-r--r-- | dns/message.py | 4 | ||||
-rw-r--r-- | dns/query.py | 2 | ||||
-rw-r--r-- | dns/rdataset.py | 4 | ||||
-rw-r--r-- | dns/resolver.py | 4 | ||||
-rw-r--r-- | dns/rrset.py | 4 | ||||
-rw-r--r-- | dns/update.py | 6 | ||||
-rw-r--r-- | dns/zone.py | 20 |
9 files changed, 28 insertions, 24 deletions
@@ -1,4 +1,8 @@ -2010-10-17 Robert Halley <halley@nominum.com> +2010-10-17 Bob Halley <halley@dnspython.org> + + * Various routines that took the string forms of rdata types and + classes did not permit the strings to be Unicode strings. + Thanks to Ryan Workman for reporting the issue. * dns/tsig.py: Added symbolic constants for the algorithm strings. E.g. you can now say dns.tsig.HMAC_MD5 instead of diff --git a/dns/dnssec.py b/dns/dnssec.py index eab12ad..c4f41d8 100644 --- a/dns/dnssec.py +++ b/dns/dnssec.py @@ -104,7 +104,7 @@ def make_ds(name, key, algorithm): else: raise ValueError, 'unsupported algorithm "%s"' % algorithm - if isinstance(name, str): + if isinstance(name, (str, unicode)): name = dns.name.from_text(name) hash.update(name.canonicalize().to_wire()) hash.update(_to_rdata(key)) diff --git a/dns/message.py b/dns/message.py index 4284f0d..5ec711e 100644 --- a/dns/message.py +++ b/dns/message.py @@ -1039,9 +1039,9 @@ def make_query(qname, rdtype, rdclass = dns.rdataclass.IN, use_edns=None, if isinstance(qname, (str, unicode)): qname = dns.name.from_text(qname) - 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) m = Message() m.flags |= dns.flags.RD diff --git a/dns/query.py b/dns/query.py index c023b14..4d8379e 100644 --- a/dns/query.py +++ b/dns/query.py @@ -310,7 +310,7 @@ def xfr(where, zone, rdtype=dns.rdatatype.AXFR, rdclass=dns.rdataclass.IN, if isinstance(zone, (str, unicode)): zone = dns.name.from_text(zone) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) q = dns.message.make_query(zone, rdtype, rdclass) if rdtype == dns.rdatatype.IXFR: diff --git a/dns/rdataset.py b/dns/rdataset.py index 0af018b..f556d22 100644 --- a/dns/rdataset.py +++ b/dns/rdataset.py @@ -281,9 +281,9 @@ def from_text_list(rdclass, rdtype, ttl, text_rdatas): @rtype: dns.rdataset.Rdataset object """ - if isinstance(rdclass, str): + if isinstance(rdclass, (str, unicode)): rdclass = dns.rdataclass.from_text(rdclass) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) r = Rdataset(rdclass, rdtype) r.update_ttl(ttl) diff --git a/dns/resolver.py b/dns/resolver.py index cd0e5f8..edeac01 100644 --- a/dns/resolver.py +++ b/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(): diff --git a/dns/rrset.py b/dns/rrset.py index 5a66dc6..2146817 100644 --- a/dns/rrset.py +++ b/dns/rrset.py @@ -124,9 +124,9 @@ def from_text_list(name, ttl, rdclass, rdtype, text_rdatas): if isinstance(name, (str, unicode)): name = dns.name.from_text(name, None) - if isinstance(rdclass, str): + if isinstance(rdclass, (str, unicode)): rdclass = dns.rdataclass.from_text(rdclass) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) r = RRset(name, rdclass, rdtype) r.update_ttl(ttl) diff --git a/dns/update.py b/dns/update.py index 4c1ed62..e67acaf 100644 --- a/dns/update.py +++ b/dns/update.py @@ -152,7 +152,7 @@ class Update(dns.message.Message): self._add_rr(name, 0, rd, dns.rdataclass.NONE) else: rdtype = args.pop(0) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) if len(args) == 0: rrset = self.find_rrset(self.authority, name, @@ -210,7 +210,7 @@ class Update(dns.message.Message): self._add(False, self.answer, name, *args) else: rdtype = args[0] - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) rrset = self.find_rrset(self.answer, name, dns.rdataclass.ANY, rdtype, @@ -229,7 +229,7 @@ class Update(dns.message.Message): dns.rdatatype.NONE, None, True, True) else: - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) rrset = self.find_rrset(self.answer, name, dns.rdataclass.NONE, rdtype, diff --git a/dns/zone.py b/dns/zone.py index 93c157d..db5fd5d 100644 --- a/dns/zone.py +++ b/dns/zone.py @@ -237,9 +237,9 @@ class Zone(object): """ name = self._validate_name(name) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(covers, str): + if isinstance(covers, (str, unicode)): covers = dns.rdatatype.from_text(covers) node = self.find_node(name, create) return node.find_rdataset(self.rdclass, rdtype, covers, create) @@ -300,9 +300,9 @@ class Zone(object): """ name = self._validate_name(name) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(covers, str): + if isinstance(covers, (str, unicode)): covers = dns.rdatatype.from_text(covers) node = self.get_node(name) if not node is None: @@ -363,9 +363,9 @@ class Zone(object): """ name = self._validate_name(name) - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(covers, str): + if isinstance(covers, (str, unicode)): covers = dns.rdatatype.from_text(covers) rdataset = self.nodes[name].find_rdataset(self.rdclass, rdtype, covers) rrset = dns.rrset.RRset(name, self.rdclass, rdtype, covers) @@ -419,9 +419,9 @@ class Zone(object): @type covers: int or string """ - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(covers, str): + if isinstance(covers, (str, unicode)): covers = dns.rdatatype.from_text(covers) for (name, node) in self.iteritems(): for rds in node: @@ -442,9 +442,9 @@ class Zone(object): @type covers: int or string """ - if isinstance(rdtype, str): + if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) - if isinstance(covers, str): + if isinstance(covers, (str, unicode)): covers = dns.rdatatype.from_text(covers) for (name, node) in self.iteritems(): for rds in node: |