dnspython: Merge in new upstream.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 20 Dec 2010 01:31:40 +0000 (02:31 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 20 Dec 2010 02:21:52 +0000 (03:21 +0100)
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Mon Dec 20 03:21:52 CET 2010 on sn-devel-104

lib/dnspython/ChangeLog
lib/dnspython/dns/message.py
lib/dnspython/dns/rdata.py
lib/dnspython/dns/resolver.py
lib/dnspython/dns/version.py
lib/dnspython/setup.py

index 91e69d3ea2f2d45ec39ff17afb1e2dce36f152d7..0fff77f9777a8fffda34780dae862fd98397f5eb 100644 (file)
@@ -1,3 +1,15 @@
+2010-12-17  Bob Halley  <halley@dnspython.org>
+
+       * dns/message.py (_WireReader._get_section): use "is" and not "=="
+         when testing what section an RR is in.  Thanks to James Raftery
+         for reporting this bug.
+
+2010-12-10  Bob Halley  <halley@dnspython.org>
+
+       * dns/resolver.py (Resolver.query): disallow metaqueries.
+
+       * dns/rdata.py (Rdata.__hash__): Added a __hash__ method for rdata.
+
 2010-11-23  Bob Halley  <halley@dnspython.org>
 
        * (Version 1.9.2 released)
index 5ec711e1ebb68d17ceefbb02835c32b7684cec3a..a124a3e1779094e08f762388571737da810a642b 100644 (file)
@@ -686,7 +686,7 @@ class _WireReader(object):
                     deleting = None
                 if deleting == dns.rdataclass.ANY or \
                    (deleting == dns.rdataclass.NONE and \
-                    section == self.message.answer):
+                    section is self.message.answer):
                     covers = dns.rdatatype.NONE
                     rd = None
                 else:
index ce0268697b0aa5c7e03024c959d23b9257c77cd6..399677e984d697631d785802da58c2711751bb93 100644 (file)
@@ -28,6 +28,7 @@ chunk of hexstring that _hexify() produces before whitespace occurs.
 import cStringIO
 
 import dns.exception
+import dns.name
 import dns.rdataclass
 import dns.rdatatype
 import dns.tokenizer
@@ -252,6 +253,9 @@ class Rdata(object):
             return NotImplemented
         return self._cmp(other) > 0
 
+    def __hash__(self):
+        return hash(self.to_digestable(dns.name.root))
+
     def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True):
         """Build an rdata object from text format.
 
index f803eb6d2087ef7243ee1f28ff830ce8f2d45563..30977f3a8bbb98164be057ce1952d426620317ce 100644 (file)
@@ -61,6 +61,10 @@ class NoRootSOA(dns.exception.DNSException):
     This should never happen!"""
     pass
 
+class NoMetaqueries(dns.exception.DNSException):
+    """Metaqueries are not allowed."""
+    pass
+
 
 class Answer(object):
     """DNS stub resolver answer
@@ -571,8 +575,12 @@ class Resolver(object):
             qname = dns.name.from_text(qname, None)
         if isinstance(rdtype, (str, unicode)):
             rdtype = dns.rdatatype.from_text(rdtype)
+        if dns.rdatatype.is_metatype(rdtype):
+            raise NoMetaqueries
         if isinstance(rdclass, (str, unicode)):
             rdclass = dns.rdataclass.from_text(rdclass)
+        if dns.rdataclass.is_metaclass(rdclass):
+            raise NoMetaqueries
         qnames_to_try = []
         if qname.is_absolute():
             qnames_to_try.append(qname)
index fe0e324217be94fddf9604d2c16d0fcd9bfaa1f2..46799a77d97ead5836f1de56b44349784b78ecfd 100644 (file)
@@ -17,7 +17,7 @@
 
 MAJOR = 1
 MINOR = 9
-MICRO = 2
+MICRO = 3
 RELEASELEVEL = 0x0f
 SERIAL = 0
 
index 59bd0ebc952d748e2b76b5f5618d9f8df8433259..f84711f795b50792b8b911dba20e74d5def20ee7 100755 (executable)
@@ -18,7 +18,7 @@
 import sys
 from distutils.core import setup
 
-version = '1.9.2'
+version = '1.9.3'
 
 kwargs = {
     'name' : 'dnspython',