diff options
Diffstat (limited to 'lib')
30 files changed, 225 insertions, 104 deletions
diff --git a/lib/dnspython/.gitignore b/lib/dnspython/.gitignore new file mode 100644 index 0000000000..2abcfc47d7 --- /dev/null +++ b/lib/dnspython/.gitignore @@ -0,0 +1,5 @@ +build +dist +MANIFEST +html +tests/*.out diff --git a/lib/dnspython/ChangeLog b/lib/dnspython/ChangeLog index f5a74da2b4..73a66edef6 100644 --- a/lib/dnspython/ChangeLog +++ b/lib/dnspython/ChangeLog @@ -1,3 +1,12 @@ +2010-03-10 Bob Halley <halley@dnspython.org> + + * The TSIG algorithm value was passed to use_tsig() incorrectly + in some cases. Thanks to 'ducciovigolo' for reporting the problem. + +2010-01-26 Bob Halley <halley@dnspython.org> + + * (Version 1.8.0 released) + 2010-01-13 Bob Halley <halley@dnspython.org> * dns/dnssec.py: Added RSASHA256 and RSASHA512 codepoints; added diff --git a/lib/dnspython/MANIFEST.in b/lib/dnspython/MANIFEST.in new file mode 100644 index 0000000000..d58fb8ba04 --- /dev/null +++ b/lib/dnspython/MANIFEST.in @@ -0,0 +1,3 @@ +include LICENSE ChangeLog TODO +recursive-include examples *.txt *.py +recursive-include tests *.txt *.py Makefile *.good example diff --git a/lib/dnspython/PKG-INFO b/lib/dnspython/PKG-INFO deleted file mode 100644 index 455915df36..0000000000 --- a/lib/dnspython/PKG-INFO +++ /dev/null @@ -1,28 +0,0 @@ -Metadata-Version: 1.1 -Name: dnspython -Version: 1.8.0 -Summary: DNS toolkit -Home-page: http://www.dnspython.org -Author: Bob Halley -Author-email: halley@dnspython.org -License: BSD-like -Download-URL: http://www.dnspython.org/kits/1.8.0/dnspython-1.8.0.tar.gz -Description: dnspython is a DNS toolkit for Python. It supports almost all - record types. It can be used for queries, zone transfers, and dynamic - updates. It supports TSIG authenticated messages and EDNS0. - - dnspython provides both high and low level access to DNS. The high - level classes perform queries for data of a given name, type, and - class, and return an answer set. The low level classes allow - direct manipulation of DNS zones, messages, names, and records. -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: System Administrators -Classifier: License :: Freeware -Classifier: Operating System :: Microsoft :: Windows :: Windows 95/98/2000 -Classifier: Operating System :: POSIX -Classifier: Programming Language :: Python -Classifier: Topic :: Internet :: Name Service (DNS) -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Provides: dns diff --git a/lib/dnspython/README b/lib/dnspython/README index 0e5793ace0..b313d1c132 100644 --- a/lib/dnspython/README +++ b/lib/dnspython/README @@ -26,7 +26,7 @@ This is dnspython 1.8.0 New since 1.7.1: - Support for hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 + Support for hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 and hmac-sha512 has been contributed by Kevin Chen. The tokenizer's tokens are now Token objects instead of (type, @@ -38,7 +38,7 @@ Bugs fixed since 1.7.1: were only working correctly when the text involved was part of a domain name. - When constructing a DDNS update, if the present() method was + When constructing a DDNS update, if the present() method was used with a single rdata, a zero TTL was not added. The entropy pool needed locking to be thread safe. @@ -59,18 +59,18 @@ Bugs fixed since 1.7.1: New since 1.7.0: - Nothing + Nothing Bugs fixed since 1.7.0: - The 1.7.0 kitting process inadventently omitted the code for the + The 1.7.0 kitting process inadventently omitted the code for the DLV RR. Negative DDNS prerequisites are now handled correctly. New since 1.6.0: - Rdatas now have a to_digestable() method, which returns the + Rdatas now have a to_digestable() method, which returns the DNSSEC canonical form of the rdata, suitable for use in signature computations. @@ -93,7 +93,7 @@ New since 1.6.0: Bugs fixed since 1.6.0: - On Windows, the resolver set the domain incorrectly. + On Windows, the resolver set the domain incorrectly. DS RR parsing only allowed one Base64 chunk. @@ -114,7 +114,7 @@ New since 1.5.0: Added dns.inet.is_multicast(). Bugs fixed since 1.5.0: - + If select() raises an exception due to EINTR, we should just select() again. @@ -130,7 +130,7 @@ Bugs fixed since 1.5.0: New since 1.4.0: - Answer objects now support more of the python sequence + Answer objects now support more of the python sequence protocol, forwarding the requests to the answer rrset. E.g. "for a in answer" is equivalent to "for a in answer.rrset", "answer[i]" is equivalent to "answer.rrset[i]", @@ -197,7 +197,7 @@ New since 1.3.5: Bugs fixed since 1.3.5: - The correct delimiter was not used when retrieving the + The correct delimiter was not used when retrieving the list of nameservers from the registry in certain versions of windows. @@ -214,8 +214,8 @@ Bugs fixed since 1.3.5: New since 1.3.4: - In the resolver, if time goes backward a little bit, ignore - it. + In the resolver, if time goes backward a little bit, ignore + it. zone_for_name() has been added to the resolver module. It returns the zone which is authoritative for the specified @@ -233,7 +233,7 @@ New since 1.3.4: The default resolver can be fetched with the get_default_resolver() method. - You can now get the parent (immediate superdomain) of a name + You can now get the parent (immediate superdomain) of a name by using the parent() method. Zone.iterate_rdatasets() and Zone.iterate_rdatas() now have @@ -246,7 +246,7 @@ New since 1.3.3: The source address and port may now be specified when calling dns.query.{udp,tcp,xfr}. - + The resolver now does exponential backoff each time it runs through all of the nameservers. @@ -256,7 +256,7 @@ New since 1.3.3: New since 1.3.2: - dns.message.Message.find_rrset() now uses an index, vastly + dns.message.Message.find_rrset() now uses an index, vastly improving the from_wire() performance of large messages such as zone transfers. diff --git a/lib/dnspython/dns/dnssec.py b/lib/dnspython/dns/dnssec.py index acf46535b9..54fd78d9c9 100644 --- a/lib/dnspython/dns/dnssec.py +++ b/lib/dnspython/dns/dnssec.py @@ -56,7 +56,7 @@ class UnknownAlgorithm(Exception): def algorithm_from_text(text): """Convert text into a DNSSEC algorithm value @rtype: int""" - + value = _algorithm_by_text.get(text.upper()) if value is None: value = int(text) @@ -65,7 +65,7 @@ def algorithm_from_text(text): def algorithm_to_text(value): """Convert a DNSSEC algorithm value to text @rtype: string""" - + text = _algorithm_by_value.get(value) if text is None: text = str(value) diff --git a/lib/dnspython/dns/flags.py b/lib/dnspython/dns/flags.py index 79375ea2ce..17afdbc2ec 100644 --- a/lib/dnspython/dns/flags.py +++ b/lib/dnspython/dns/flags.py @@ -89,7 +89,7 @@ def to_text(flags): @rtype: string""" return _to_text(flags, _by_value, _flags_order) - + def edns_from_text(text): """Convert a space-separated list of EDNS flag text values into a EDNS diff --git a/lib/dnspython/dns/inet.py b/lib/dnspython/dns/inet.py index 993a2f9436..8a8f3e1ca8 100644 --- a/lib/dnspython/dns/inet.py +++ b/lib/dnspython/dns/inet.py @@ -45,7 +45,7 @@ def inet_pton(family, text): implemented. @rtype: string """ - + if family == AF_INET: return dns.ipv4.inet_aton(text) elif family == AF_INET6: @@ -105,4 +105,4 @@ def is_multicast(text): return (first == 255) except: raise ValueError - + diff --git a/lib/dnspython/dns/node.py b/lib/dnspython/dns/node.py index 785a245464..07fff9293c 100644 --- a/lib/dnspython/dns/node.py +++ b/lib/dnspython/dns/node.py @@ -23,18 +23,18 @@ import dns.renderer class Node(object): """A DNS node. - + A node is a set of rdatasets @ivar rdatasets: the node's rdatasets @type rdatasets: list of dns.rdataset.Rdataset objects""" __slots__ = ['rdatasets'] - + def __init__(self): """Initialize a DNS node. """ - + self.rdatasets = []; def to_text(self, name, **kw): @@ -46,7 +46,7 @@ class Node(object): @type name: dns.name.Name object @rtype: string """ - + s = StringIO.StringIO() for rds in self.rdatasets: print >> s, rds.to_text(name, **kw) @@ -54,7 +54,7 @@ class Node(object): def __repr__(self): return '<DNS node ' + str(id(self)) + '>' - + def __eq__(self, other): """Two nodes are equal if they have the same rdatasets. @@ -73,7 +73,7 @@ class Node(object): def __ne__(self, other): return not self.__eq__(other) - + def __len__(self): return len(self.rdatasets) @@ -159,7 +159,7 @@ class Node(object): def replace_rdataset(self, replacement): """Replace an rdataset. - + It is not an error if there is no rdataset matching I{replacement}. Ownership of the I{replacement} object is transferred to the node; diff --git a/lib/dnspython/dns/opcode.py b/lib/dnspython/dns/opcode.py index 735d3a1f7d..705bd09a43 100644 --- a/lib/dnspython/dns/opcode.py +++ b/lib/dnspython/dns/opcode.py @@ -66,7 +66,7 @@ def from_flags(flags): @param flags: int @rtype: int """ - + return (flags & 0x7800) >> 11 def to_flags(value): @@ -74,9 +74,9 @@ def to_flags(value): flags. @rtype: int """ - + return (value << 11) & 0x7800 - + def to_text(value): """Convert an opcode to text. @@ -85,7 +85,7 @@ def to_text(value): @raises UnknownOpcode: the opcode is unknown @rtype: string """ - + text = _by_value.get(value) if text is None: text = str(value) @@ -98,7 +98,7 @@ def is_update(flags): @type flags: int @rtype: bool """ - + if (from_flags(flags) == UPDATE): return True return False diff --git a/lib/dnspython/dns/rdtypes/ANY/GPOS.py b/lib/dnspython/dns/rdtypes/ANY/GPOS.py index aa8000f8ca..6f63cc05f6 100644 --- a/lib/dnspython/dns/rdtypes/ANY/GPOS.py +++ b/lib/dnspython/dns/rdtypes/ANY/GPOS.py @@ -29,7 +29,7 @@ def _validate_float_string(what): raise dns.exception.FormError if not right == '' and not right.isdigit(): raise dns.exception.FormError - + class GPOS(dns.rdata.Rdata): """GPOS record @@ -42,7 +42,7 @@ class GPOS(dns.rdata.Rdata): @see: RFC 1712""" __slots__ = ['latitude', 'longitude', 'altitude'] - + def __init__(self, rdclass, rdtype, latitude, longitude, altitude): super(GPOS, self).__init__(rdclass, rdtype) if isinstance(latitude, float) or \ @@ -66,14 +66,14 @@ class GPOS(dns.rdata.Rdata): def to_text(self, origin=None, relativize=True, **kw): return '%s %s %s' % (self.latitude, self.longitude, self.altitude) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): latitude = tok.get_string() longitude = tok.get_string() altitude = tok.get_string() tok.get_eol() return cls(rdclass, rdtype, latitude, longitude, altitude) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): @@ -92,7 +92,7 @@ class GPOS(dns.rdata.Rdata): byte = chr(l) file.write(byte) file.write(self.altitude) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): l = ord(wire[current]) current += 1 diff --git a/lib/dnspython/dns/rdtypes/ANY/HINFO.py b/lib/dnspython/dns/rdtypes/ANY/HINFO.py index 5cfef5a932..e592ad39a7 100644 --- a/lib/dnspython/dns/rdtypes/ANY/HINFO.py +++ b/lib/dnspython/dns/rdtypes/ANY/HINFO.py @@ -27,7 +27,7 @@ class HINFO(dns.rdata.Rdata): @see: RFC 1035""" __slots__ = ['cpu', 'os'] - + def __init__(self, rdclass, rdtype, cpu, os): super(HINFO, self).__init__(rdclass, rdtype) self.cpu = cpu @@ -36,13 +36,13 @@ class HINFO(dns.rdata.Rdata): def to_text(self, origin=None, relativize=True, **kw): return '"%s" "%s"' % (dns.rdata._escapify(self.cpu), dns.rdata._escapify(self.os)) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): cpu = tok.get_string() os = tok.get_string() tok.get_eol() return cls(rdclass, rdtype, cpu, os) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): @@ -56,7 +56,7 @@ class HINFO(dns.rdata.Rdata): byte = chr(l) file.write(byte) file.write(self.os) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): l = ord(wire[current]) current += 1 diff --git a/lib/dnspython/dns/rdtypes/ANY/SOA.py b/lib/dnspython/dns/rdtypes/ANY/SOA.py index 5f74b8d384..a25a35e29b 100644 --- a/lib/dnspython/dns/rdtypes/ANY/SOA.py +++ b/lib/dnspython/dns/rdtypes/ANY/SOA.py @@ -41,7 +41,7 @@ class SOA(dns.rdata.Rdata): __slots__ = ['mname', 'rname', 'serial', 'refresh', 'retry', 'expire', 'minimum'] - + def __init__(self, rdclass, rdtype, mname, rname, serial, refresh, retry, expire, minimum): super(SOA, self).__init__(rdclass, rdtype) @@ -59,7 +59,7 @@ class SOA(dns.rdata.Rdata): return '%s %s %d %d %d %d %d' % ( mname, rname, self.serial, self.refresh, self.retry, self.expire, self.minimum ) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): mname = tok.get_name() rname = tok.get_name() @@ -73,7 +73,7 @@ class SOA(dns.rdata.Rdata): tok.get_eol() return cls(rdclass, rdtype, mname, rname, serial, refresh, retry, expire, minimum ) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): diff --git a/lib/dnspython/dns/rdtypes/ANY/SSHFP.py b/lib/dnspython/dns/rdtypes/ANY/SSHFP.py index bc54f5e260..162dda5c48 100644 --- a/lib/dnspython/dns/rdtypes/ANY/SSHFP.py +++ b/lib/dnspython/dns/rdtypes/ANY/SSHFP.py @@ -30,7 +30,7 @@ class SSHFP(dns.rdata.Rdata): @see: draft-ietf-secsh-dns-05.txt""" __slots__ = ['algorithm', 'fp_type', 'fingerprint'] - + def __init__(self, rdclass, rdtype, algorithm, fp_type, fingerprint): super(SSHFP, self).__init__(rdclass, rdtype) @@ -43,7 +43,7 @@ class SSHFP(dns.rdata.Rdata): self.fp_type, dns.rdata._hexify(self.fingerprint, chunksize=128)) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): algorithm = tok.get_uint8() fp_type = tok.get_uint8() @@ -51,14 +51,14 @@ class SSHFP(dns.rdata.Rdata): fingerprint = fingerprint.decode('hex_codec') tok.get_eol() return cls(rdclass, rdtype, algorithm, fp_type, fingerprint) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): header = struct.pack("!BB", self.algorithm, self.fp_type) file.write(header) file.write(self.fingerprint) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): header = struct.unpack("!BB", wire[current : current + 2]) current += 2 diff --git a/lib/dnspython/dns/rdtypes/ANY/X25.py b/lib/dnspython/dns/rdtypes/ANY/X25.py index fc4790fe8a..c3632f7fc4 100644 --- a/lib/dnspython/dns/rdtypes/ANY/X25.py +++ b/lib/dnspython/dns/rdtypes/ANY/X25.py @@ -25,19 +25,19 @@ class X25(dns.rdata.Rdata): @see: RFC 1183""" __slots__ = ['address'] - + def __init__(self, rdclass, rdtype, address): super(X25, self).__init__(rdclass, rdtype) self.address = address def to_text(self, origin=None, relativize=True, **kw): return '"%s"' % dns.rdata._escapify(self.address) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): address = tok.get_string() tok.get_eol() return cls(rdclass, rdtype, address) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): @@ -46,7 +46,7 @@ class X25(dns.rdata.Rdata): byte = chr(l) file.write(byte) file.write(self.address) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): l = ord(wire[current]) current += 1 diff --git a/lib/dnspython/dns/rdtypes/IN/NAPTR.py b/lib/dnspython/dns/rdtypes/IN/NAPTR.py index 3a30d16d7b..a3cca55e1c 100644 --- a/lib/dnspython/dns/rdtypes/IN/NAPTR.py +++ b/lib/dnspython/dns/rdtypes/IN/NAPTR.py @@ -45,7 +45,7 @@ class NAPTR(dns.rdata.Rdata): __slots__ = ['order', 'preference', 'flags', 'service', 'regexp', 'replacement'] - + def __init__(self, rdclass, rdtype, order, preference, flags, service, regexp, replacement): super(NAPTR, self).__init__(rdclass, rdtype) @@ -76,7 +76,7 @@ class NAPTR(dns.rdata.Rdata): tok.get_eol() return cls(rdclass, rdtype, order, preference, flags, service, regexp, replacement) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): @@ -86,7 +86,7 @@ class NAPTR(dns.rdata.Rdata): _write_string(file, self.service) _write_string(file, self.regexp) self.replacement.to_wire(file, compress, origin) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): (order, preference) = struct.unpack('!HH', wire[current : current + 4]) current += 4 @@ -116,7 +116,7 @@ class NAPTR(dns.rdata.Rdata): def choose_relativity(self, origin = None, relativize = True): self.replacement = self.replacement.choose_relativity(origin, relativize) - + def _cmp(self, other): sp = struct.pack("!HH", self.order, self.preference) op = struct.pack("!HH", other.order, other.preference) diff --git a/lib/dnspython/dns/rdtypes/IN/PX.py b/lib/dnspython/dns/rdtypes/IN/PX.py index 4718944ff4..0f11290724 100644 --- a/lib/dnspython/dns/rdtypes/IN/PX.py +++ b/lib/dnspython/dns/rdtypes/IN/PX.py @@ -31,7 +31,7 @@ class PX(dns.rdata.Rdata): @see: RFC 2163""" __slots__ = ['preference', 'map822', 'mapx400'] - + def __init__(self, rdclass, rdtype, preference, map822, mapx400): super(PX, self).__init__(rdclass, rdtype) self.preference = preference @@ -42,7 +42,7 @@ class PX(dns.rdata.Rdata): map822 = self.map822.choose_relativity(origin, relativize) mapx400 = self.mapx400.choose_relativity(origin, relativize) return '%d %s %s' % (self.preference, map822, mapx400) - + def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True): preference = tok.get_uint16() map822 = tok.get_name() @@ -51,7 +51,7 @@ class PX(dns.rdata.Rdata): mapx400 = mapx400.choose_relativity(origin, relativize) tok.get_eol() return cls(rdclass, rdtype, preference, map822, mapx400) - + from_text = classmethod(from_text) def to_wire(self, file, compress = None, origin = None): @@ -59,7 +59,7 @@ class PX(dns.rdata.Rdata): file.write(pref) self.map822.to_wire(file, None, origin) self.mapx400.to_wire(file, None, origin) - + def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None): (preference, ) = struct.unpack('!H', wire[current : current + 2]) current += 2 diff --git a/lib/dnspython/dns/resolver.py b/lib/dnspython/dns/resolver.py index 372d7d8361..cd0e5f804b 100644 --- a/lib/dnspython/dns/resolver.py +++ b/lib/dnspython/dns/resolver.py @@ -593,7 +593,8 @@ class Resolver(object): return answer request = dns.message.make_query(qname, rdtype, rdclass) if not self.keyname is None: - request.use_tsig(self.keyring, self.keyname, self.keyalgorithm) + request.use_tsig(self.keyring, self.keyname, + algorithm=self.keyalgorithm) request.use_edns(self.edns, self.ednsflags, self.payload) response = None # diff --git a/lib/dnspython/dns/tsigkeyring.py b/lib/dnspython/dns/tsigkeyring.py index 4d68f96c85..cbd1a27bbf 100644 --- a/lib/dnspython/dns/tsigkeyring.py +++ b/lib/dnspython/dns/tsigkeyring.py @@ -23,7 +23,7 @@ def from_text(textring): """Convert a dictionary containing (textual DNS name, base64 secret) pairs into a binary keyring which has (dns.name.Name, binary secret) pairs. @rtype: dict""" - + keyring = {} for keytext in textring: keyname = dns.name.from_text(keytext) @@ -35,7 +35,7 @@ def to_text(keyring): """Convert a dictionary containing (dns.name.Name, binary secret) pairs into a text keyring which has (textual DNS name, base64 secret) pairs. @rtype: dict""" - + textring = {} for keyname in keyring: keytext = dns.name.to_text(keyname) diff --git a/lib/dnspython/dns/update.py b/lib/dnspython/dns/update.py index 7d42636891..97aea18fb9 100644 --- a/lib/dnspython/dns/update.py +++ b/lib/dnspython/dns/update.py @@ -56,7 +56,7 @@ class Update(dns.message.Message): self.find_rrset(self.question, self.origin, rdclass, dns.rdatatype.SOA, create=True, force_unique=True) if not keyring is None: - self.use_tsig(keyring, keyname, keyalgorithm) + self.use_tsig(keyring, keyname, algorithm=keyalgorithm) def _add_rr(self, name, ttl, rd, deleting=None, section=None): """Add a single RR to the update section.""" diff --git a/lib/dnspython/dns/version.py b/lib/dnspython/dns/version.py index 7a36775180..dd135a13e5 100644 --- a/lib/dnspython/dns/version.py +++ b/lib/dnspython/dns/version.py @@ -17,7 +17,7 @@ MAJOR = 1 MINOR = 8 -MICRO = 0 +MICRO = 1 RELEASELEVEL = 0x0f SERIAL = 0 diff --git a/lib/dnspython/setup.py b/lib/dnspython/setup.py index 12fd2f1dc6..21ebddfb59 100755 --- a/lib/dnspython/setup.py +++ b/lib/dnspython/setup.py @@ -18,7 +18,7 @@ import sys from distutils.core import setup -version = '1.8.0' +version = '1.8.1' kwargs = { 'name' : 'dnspython', diff --git a/lib/dnspython/tests/example b/lib/dnspython/tests/example index d87c63a393..e8fed1161b 100644 --- a/lib/dnspython/tests/example +++ b/lib/dnspython/tests/example @@ -35,11 +35,11 @@ a TXT "foo foo foo" PTR foo.net. ;; The next line not starting with ';;' is leading whitespace followed by ;; EOL. We want to treat that as if EOL had appeared alone. - + ;; The next line not starting with ';;' is leading whitespace followed by ;; a comment followed by EOL. We want to treat that as if EOL had appeared ;; alone. - ; foo + ; foo $TTL 3600 ; 1 hour a01 A 0.0.0.0 a02 A 255.255.255.255 @@ -72,7 +72,7 @@ $TTL 3600 ; 1 hour dhcid01 DHCID ( AAIBY2/AuCccgoJbsaxcQc9TUapptP69l OjxfNuVAA2kjEA= ) dhcid02 DHCID ( AAEBOSD+XR3Os/0LozeXVqcNc7FwCfQdW - L3b/NaiUDlW2No= ) + L3b/NaiUDlW2No= ) dhcid03 DHCID ( AAABxLmlskllE0MVjd57zHcWmEH3pCQ6V ytcKD//7es/deY= ) dname01 DNAME dname-target. @@ -93,7 +93,7 @@ gpos01 GPOS "-22.6882" "116.8652" "250.0" ;; ;; XXXRTH I have commented out the following line because I don't think ;; it is a valid GPOS record. -;; +;; ;;gpos02 GPOS "" "" "" hinfo01 HINFO "Generic PC clone" "NetBSD-1.4" hinfo02 HINFO "PC" "NetBSD" diff --git a/lib/dnspython/tests/name.py b/lib/dnspython/tests/name.py index a53ef9eac6..1ab4f52814 100644 --- a/lib/dnspython/tests/name.py +++ b/lib/dnspython/tests/name.py @@ -25,7 +25,7 @@ import dns.e164 class NameTestCase(unittest.TestCase): def setUp(self): self.origin = dns.name.from_text('example.') - + def testFromTextRel1(self): n = dns.name.from_text('foo.bar') self.failUnless(n.labels == ('foo', 'bar', '')) @@ -352,7 +352,7 @@ class NameTestCase(unittest.TestCase): n = dns.name.from_text('FOO.bar', None) d = n.to_digestable(dns.name.root) self.failUnless(d == '\x03foo\x03bar\x00') - + def testBadDigestable(self): def bad(): n = dns.name.from_text('FOO.bar', None) diff --git a/lib/dnspython/tests/rdtypeandclass.py b/lib/dnspython/tests/rdtypeandclass.py index edd7f7eae3..0c8a830e27 100644 --- a/lib/dnspython/tests/rdtypeandclass.py +++ b/lib/dnspython/tests/rdtypeandclass.py @@ -21,7 +21,7 @@ import dns.rdatatype class RdTypeAndClassTestCase(unittest.TestCase): # Classes - + def test_class_meta1(self): self.failUnless(dns.rdataclass.is_metaclass(dns.rdataclass.ANY)) @@ -66,7 +66,7 @@ class RdTypeAndClassTestCase(unittest.TestCase): self.failUnlessRaises(ValueError, bad) # Types - + def test_type_meta1(self): self.failUnless(dns.rdatatype.is_metatype(dns.rdatatype.ANY)) diff --git a/lib/dnspython/tests/rrset.py b/lib/dnspython/tests/rrset.py index 740162b4c5..3cafbee891 100644 --- a/lib/dnspython/tests/rrset.py +++ b/lib/dnspython/tests/rrset.py @@ -18,7 +18,7 @@ import unittest import dns.rrset class RRsetTestCase(unittest.TestCase): - + def testEqual1(self): r1 = dns.rrset.from_text('foo', 300, 'in', 'a', '10.0.0.1', '10.0.0.2') r2 = dns.rrset.from_text('FOO', 300, 'in', 'a', '10.0.0.2', '10.0.0.1') diff --git a/lib/dnspython/tests/set.py b/lib/dnspython/tests/set.py index 6319eb821c..e2bca51b82 100644 --- a/lib/dnspython/tests/set.py +++ b/lib/dnspython/tests/set.py @@ -21,7 +21,7 @@ import dns.set S = dns.set.Set class SimpleSetTestCase(unittest.TestCase): - + def testLen1(self): s1 = S() self.failUnless(len(s1) == 0) diff --git a/lib/dnspython/tests/zone.py b/lib/dnspython/tests/zone.py index a8d629c532..075be0a48a 100644 --- a/lib/dnspython/tests/zone.py +++ b/lib/dnspython/tests/zone.py @@ -129,7 +129,7 @@ class ZoneTestCase(unittest.TestCase): for n in names: print >> f, z[n].to_text(n) self.failUnless(f.getvalue() == example_text_output) - + def testTorture1(self): # # Read a zone containing all our supported RR types, and diff --git a/lib/dnspython/util/COPYRIGHT b/lib/dnspython/util/COPYRIGHT new file mode 100644 index 0000000000..7390363fbb --- /dev/null +++ b/lib/dnspython/util/COPYRIGHT @@ -0,0 +1,14 @@ +Copyright (C) @YEARS@ Nominum, Inc. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose with or without fee is hereby granted, +provided that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/lib/dnspython/util/copyrights b/lib/dnspython/util/copyrights new file mode 100644 index 0000000000..ae578381cb --- /dev/null +++ b/lib/dnspython/util/copyrights @@ -0,0 +1,117 @@ +./.gitignore X 2009 +./ChangeLog X 2003,2004,2005,2006,2007 +./LICENSE X 2003,2004,2005,2006,2007 +./MANIFEST.in X 2003,2004,2005,2006,2007 +./Makefile MAKE 2003,2004,2005,2006,2007,2009 +./README X 2003,2004,2005,2006,2007 +./TODO X 2003,2004,2005,2006,2007 +./dns/__init__.py PYTHON 2003,2004,2005,2006,2007,2009 +./dns/dnssec.py PYTHON 2003,2004,2005,2006,2007,2009 +./dns/e164.py PYTHON 2006,2007,2009 +./dns/edns.py PYTHON 2009 +./dns/entropy.py PYTHON 2009 +./dns/exception.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/flags.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/inet.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/ipv4.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/ipv6.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/message.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/name.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/namedict.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/node.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/opcode.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/query.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rcode.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/rdata.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/rdataclass.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/rdataset.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/rdatatype.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/AFSDB.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/CERT.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/CNAME.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/DLV.py PYTHON 2009,2010 +./dns/rdtypes/ANY/DNAME.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/DNSKEY.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/DS.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/GPOS.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/HINFO.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/HIP.py PYTHON 2010 +./dns/rdtypes/ANY/ISDN.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/KEY.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/LOC.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/MX.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/NS.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/NSEC.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/NSEC3.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/NSEC3PARAM.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/NXT.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/PTR.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/RP.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/RRSIG.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/RT.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/SIG.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/SOA.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/SPF.py PYTHON 2006,2007,2009,2010 +./dns/rdtypes/ANY/SSHFP.py PYTHON 2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/TXT.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/X25.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/ANY/__init__.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/A.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/AAAA.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/APL.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/DHCID.py PYTHON 2006,2007,2009,2010 +./dns/rdtypes/IN/IPSECKEY.py PYTHON 2006,2007,2009,2010 +./dns/rdtypes/IN/KX.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/NAPTR.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/NSAP.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/NSAP_PTR.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/PX.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/SRV.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/WKS.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/IN/__init__.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/__init__.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/dsbase.py PYTHON 2010 +./dns/rdtypes/keybase.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/mxbase.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/nsbase.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/rdtypes/sigbase.py PYTHON 2004,2005,2006,2007,2009,2010 +./dns/rdtypes/txtbase.py PYTHON 2006,2007,2009,2010 +./dns/renderer.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/resolver.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/reversename.py PYTHON 2006,2007,2009,2010 +./dns/rrset.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/set.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/tokenizer.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/tsig.py PYTHON 2001,2002,2003,2004,2005,2006,2007,2009,2010 +./dns/tsigkeyring.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/ttl.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/update.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/version.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./dns/zone.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./examples/ddns.py X 2006,2007 +./examples/e164.py X 2006,2007 +./examples/mx.py X 2003,2004,2005,2006,2007 +./examples/name.py X 2003,2004,2005,2006,2007 +./examples/reverse.py X 2003,2004,2005,2006,2007 +./examples/reverse_name.py X 2006,2007 +./examples/xfr.py X 2003,2004,2005,2006,2007 +./setup.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/Makefile MAKE 2003,2004,2005,2006,2007,2009,2010 +./tests/bugs.py PYTHON 2006,2007,2009,2010 +./tests/example X 2003,2004,2005,2006,2007 +./tests/example1.good X 2003,2004,2005,2006,2007 +./tests/example2.good X 2003,2004,2005,2006,2007 +./tests/flags.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/message.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/name.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/namedict.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/ntoaaton.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/rdtypeandclass.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/resolver.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/rrset.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/set.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/tokenizer.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/update.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./tests/zone.py PYTHON 2003,2004,2005,2006,2007,2009,2010 +./util/COPYRIGHT X 2003,2004,2005,2006,2007 +./util/copyrights X 2003,2004,2005,2006,2007 |