2003-06-30 Bob Halley * (Version 1.0.0 released) 2003-06-30 Bob Halley * dns/rdata.py: Rdatas now implement rich comparisons instead of __cmp__. * dns/name.py: Names now implement rich comparisons instead of __cmp__. * dns/inet.py (inet_ntop): Always use our code, since the code in the socket module doesn't support AF_INET6 conversions if IPv6 sockets are not available on the system. * dns/resolver.py (Answer.__init__): A dangling CNAME chain was not raising NoAnswer. * Added a simple resolver Cache class. * Added an expiration attribute to answer instances. 2003-06-24 Bob Halley * (Version 1.0.0b3 released) 2003-06-24 Bob Halley * Renamed module "DNS" to "dns" to avoid conflicting with PyDNS. 2003-06-23 Bob Halley * The from_text() relativization controls now work the same way as the to_text() controls. * DNS/rdata.py: The parsing of generic rdata was broken. 2003-06-21 Bob Halley * (Version 1.0.0b2 released) 2003-06-21 Bob Halley * The Python 2.2 socket.inet_aton() doesn't seem to like '255.255.255.255'. We work around this. * Fixed bugs in rdata to_wire() and from_wire() routines of a few types. These bugs were discovered by running the tests/zone.py Torture1 test. * Added implementation of type APL. 2003-06-20 Bob Halley * DNS/rdtypes/IN/AAAA.py: Use our own versions of inet_ntop and inet_pton if the socket module doesn't provide them for us. * The resolver now does a better job handling exceptions. In particular, it no longer eats all exceptions; rather it handles those exceptions it understands, and leaves the rest uncaught. * Exceptions have been pulled into their own module. Almost all exceptions raised by the code are now subclasses of DNS.exception.DNSException. All form errors are subclasses of DNS.exception.FormError (which is itself a subclass of DNS.exception.DNSException). 2003-06-19 Bob Halley * Added implementations of types DS, NXT, SIG, and WKS. * __cmp__ for type A and AAAA could produce incorrect results. 2003-06-18 Bob Halley * Started test suites for zone.py and tokenizer.py. * Added implementation of type KEY. * DNS/rdata.py(_base64ify): \n could be emitted erroneously. * DNS/rdtypes/ANY/SOA.py (SOA.from_text): The SOA RNAME field could be set to the value of MNAME in common cases. * DNS/rdtypes/ANY/X25.py: __init__ was broken. * DNS/zone.py (from_text): $TTL handling erroneously caused the next line to be eaten. * DNS/tokenizer.py (Tokenizer.get): parsing was broken for empty quoted strings. Quoted strings didn't handle \ddd escapes. Such escapes are appear not to comply with RFC 1035, but BIND allows them and they seem useful, so we allow them too. * DNS/rdtypes/ANY/ISDN.py (ISDN.from_text): parsing was broken for ISDN RRs without subaddresses. * DNS/zone.py (from_file): from_file() didn't work because some required parameters were not passed to from_text(). 2003-06-17 Bob Halley * (Version 1.0.0b1 released) 2003-06-17 Bob Halley * Added implementation of type PX. 2003-06-16 Bob Halley * Added implementation of types CERT, GPOS, LOC, NSAP, NSAP-PTR. * DNS/rdatatype.py (_by_value): A cut-and-paste error had broken NSAP and NSAP-PTR. 2003-06-12 Bob Halley * Created a tests directory and started adding tests. * Added "and its documentation" to the permission grant in the license. 2003-06-12 Bob Halley * DNS/name.py (Name.is_wild): is_wild() erroneously raised IndexError if the name was empty. 2003-06-10 Bob Halley * Added implementations of types AFSDB, X25, and ISDN. * The documentation associated with the various rdata types has been improved. In particular, instance variables are now described. 2003-06-09 Bob Halley * Added implementations of types HINFO, RP, and RT. * DNS/message.py (make_query): Document that make_query() sets flags to DNS.flags.RD, and chooses a random query id. 2003-06-05 Bob Halley * (Version 1.0.0a2 released) 2003-06-05 Bob Halley * DNS/node.py: removed __getitem__ and __setitem__, since they are not used by the codebase and were not useful in general either. * DNS/message.py (from_file): from_file() now allows a filename to be specified instead of a file object. * DNS/rdataset.py: The is_compatible() method of the DNS.rdataset.Rdataset class was deleted. 2003-06-04 Bob Halley * DNS/name.py (class Name): Names are now immutable. * DNS/name.py: the is_comparable() method has been removed, since names are always comparable. * DNS/resolver.py (Resolver.query): A query could run for up to the lifetime + the timeout. This has been corrected and the query will now only run up to the lifetime. 2003-06-03 Bob Halley * DNS/resolver.py: removed the 'new' function since it is not the style of the library to have such a function. Call DNS.resolver.Resolver() to make a new resolver. 2003-06-03 Bob Halley * DNS/resolver.py (Resolver._config_win32_fromkey): The DhcpServer list is space separated, not comma separated. 2003-06-03 Bob Halley * DNS/update.py: Added an update module to make generating updates easier. 2003-06-03 Bob Halley * Commas were missing in some of the __all__ entries in various __init__.py files. 2003-05-30 Bob Halley * (Version 1.0.0a1 released)