0300972fd8
Summary of changes since 1.3.3: * dns/rdtypes/IN/DHCID.py: Added support for the DHCID RR type. * dns/query.py (udp): Messages from unexpected sources can now be ignored by setting ignore_unexpected to True. * dns/query.py (udp): When raising UnexpectedSource, add more detail about what went wrong to the exception. * dns/message.py (Message.use_edns): add reasonable defaults for the ednsflags, payload, and request_payload parameters. * dns/message.py (Message.want_dnssec): add a convenience method for enabling/disabling the "DNSSEC desired" flag in requests. * dns/message.py (make_query): add "use_edns" and "want_dnssec" parameters. * dns/resolver.py (Resolver.read_resolv_conf): If /etc/resolv.conf doesn't exist, just use the default resolver configuration (i.e. the same thing we would have used if resolv.conf had existed and been empty). * dns/resolver.py (Resolver._config_win32_fromkey): fix cut-and-paste error where we passed the wrong variable to self._config_win32_search(). Thanks to David Arnold for finding the bug and submitting a patch. * dns/resolver.py (Answer): Add more support for the sequence protocol, forwarding requests to the answer object's rrset. E.g. "for a in answer" is equivalent to "for a in answer.rrset", "answer[i]" is equivalent to "answer.rrset[i]", and "answer[i:j]" is equivalent to "answer.rrset[i:j]". * dns/query.py (xfr): Add IXFR support. * dns/rdtypes/IN/IPSECKEY.py: Added support for the IPSECKEY RR type. * dns/rdtypes/ANY/SPF.py: Added support for the SPF RR type. * (Version 1.4.0 released) * dns/rrset.py (RRset.to_rdataset): Added a convenience method to convert an rrset into an rdataset. * Added dns.e164.query(). This function can be used to look for NAPTR RRs for a specified number in several domains, e.g.: dns.e164.query('16505551212', ['e164.dnspython.org.', 'e164.arpa.']) * dns/resolver.py (Resolver.query): The resolver deleted from a list while iterating it, which makes the iterator unhappy. * dns/resolver.py (Resolver.query): The resolver needlessly delayed responses for successful queries. * dns/rdata.py: added a validate() method to the rdata class. If you change an rdata by assigning to its fields, it is a good idea to call validate() when you are done making changes. For example, if 'r' is an MX record and then you execute: r.preference = 100000 # invalid, because > 65535 r.validate() The validation will fail and an exception will be raised. * dns/ttl.py: TTLs are now bounds checked to be within the closed interval [0, 2^31 - 1]. * The BIND 8 TTL syntax is now accepted in the SOA refresh, retry, expire, and minimum fields, and in the original_ttl field of SIG and RRSIG records. * dns/resolver.py: The windows registry irritatingly changes the list element delimiter in between ' ' and ',' (and vice-versa) in various versions of windows. We now cope by always looking for either one (' ' first). * dns/e164.py: Added routines to convert between E.164 numbers and their ENUM domain name equivalents. * dns/reversename.py: Added routines to convert between IPv4 and IPv6 addresses and their DNS reverse-map equivalents. * dns/rdtypes/ANY/LOC.py (_tuple_to_float): The sign was lost when converting a tuple into a float, which broke conversions of south latitudes and west longitudes. * dns/zone.py: The 'origin' parameter to from_text() and from_file() is now optional. If not specified, dnspython will use the first $ORIGIN in the text as the zone's origin. * dns/zone.py: Sanity checks of the zone's origin node can now be disabled. * dns/name.py: Preliminary Unicode support has been added for domain names. Running dns.name.from_text() on a Unicode string will now encode each label using the IDN ACE encoding. The to_unicode() method may be used to convert a dns.name.Name with IDN ACE labels back into a Unicode string. This functionality requires Python 2.3 or greater. * (Version 1.3.5 released) * dns/zone.py: Zone.iterate_rdatasets() and Zone.iterate_rdatas() did not have a default rdtype of dns.rdatatype.ANY as their docstrings said they did. They do now. * dns/name.py: Added the parent() method, which returns the parent of a name. * dns/resolver.py: Added zone_for_name() helper, which returns the name of the zone which contains the specified name. * dns/resolver.py: Added get_default_resolver(), which returns the default resolver, initializing it if necessary. * dns/resolver.py (Resolver._compute_timeout): If time goes backwards a little bit, ignore it. * (Version 1.3.4 released) * dns/message.py (make_response): Trying to respond to a response threw a NameError while trying to throw a FormErr since it used the wrong name for the FormErr exception. * dns/query.py (_connect): We needed to ignore EALREADY too. * dns/query.py: Optional "source" and "source_port" parameters have been added to udp(), tcp(), and xfr(). Thanks to Ralf Weber for suggesting the change and providing a patch. * dns/query.py: The requirement that the "where" parameter be an IPv4 or IPv6 address is now documented. * dns/resolver.py: The resolver now does exponential backoff each time it runs through all of the nameservers. * dns/resolver.py: rcodes which indicate a nameserver is likely to be a "permanent failure" for a query cause the nameserver to be removed from the mix for that query. |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |