summaryrefslogtreecommitdiff
path: root/net/py-dns
AgeCommit message (Collapse)AuthorFilesLines
2007-03-09Update py-dns to 1.5.0.gson3-9/+26
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.
2007-02-22Whitespace cleanup, courtesy of pkglint.wiz1-2/+2
Patch provided by Sergey Svishchev in private mail.
2006-06-02Mark as Python 2.2+, since explicit integer division is used (//).joerg1-1/+3
2006-02-05Recursive revision bump / recommended bump for gettext ABI change.joerg1-1/+2
2005-04-11Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used.tv1-2/+1
2005-04-09Update py-dns to 1.3.3.gson3-8/+29
Summary of changes since 1.2.0: * dns/rdtypes/ANY/TXT.py (TXT.from_text): The masterfile parser incorrectly rejected TXT records where a value was not quoted. * dns/message.py: Added make_response(), which creates a skeletal response for the specified query. Added opcode() and set_opcode() convenience methods to the Message class. Added the request_payload attribute to the Message class. * dns/zone.py (from_xfr): dns.zone.from_xfr() in relativization mode incorrectly set zone.origin to the empty name. * dns/name.py (Name.to_wire): The 'file' parameter to Name.to_wire() is now optional; if omitted, the wire form will be returned as the value of the function. * dns/message.py (Message.find_rrset): find_rrset() now uses an index, vastly improving the from_wire() performance of large messages such as zone transfers. * dns/query.py: sending queries to a nameserver via IPv6 now works. * dns/inet.py (af_for_address): Add af_for_address(), which looks at a textual-form address and attempts to determine which address family it is. * dns/query.py: the default for the 'af' parameter of the udp(), tcp(), and xfr() functions has been changed from AF_INET to None, which causes dns.inet.af_for_address() to be used to determine the address family. If dns.inet.af_for_address() can't figure it out, we fall back to AF_INET and hope for the best. * dns/rdtypes/ANY/NSEC.py (NSEC.from_text): The NSEC text format does not allow specifying types by number, so we shouldn't either. * dns/renderer.py: the renderer module didn't import random, causing an exception to be raised if a query id wasn't provided when a Renderer was created. * dns/resolver.py (Resolver.query): the resolver wasn't catching dns.exception.Timeout, so a timeout erroneously caused the whole resolution to fail instead of just going on to the next server. * dns/rdtypes/ANY/LOC.py (LOC.from_text): LOC milliseconds values were converted incorrectly if the length of the milliseconds string was less than 3. * dns/update.py (Update.delete): We erroneously specified a "deleting" value of dns.rdatatype.NONE instead of dns.rdataclass.NONE when the thing being deleted was either an Rdataset instance or an Rdata instance. * dns/rdtypes/ANY/SSHFP.py: Added support for the proposed SSHFP RR type. * dns/rdata.py (from_text): The masterfile reader did not accept the unknown RR syntax when used with a known RR type. * dns/name.py (from_text): dns.name.from_text() did not raise an exception if a backslash escape ended prematurely. * dns/zone.py (_MasterReader._rr_line): The masterfile reader erroneously treated lines starting with leading whitespace but not having any RR definition as an error. It now treats them like a blank line (which is not an error). * Added support for new DNSSEC types RRSIG, NSEC, and DNSKEY. * dns/query.py (_connect): Windows returns EWOULDBLOCK instead of EINPROGRESS when trying to connect a nonblocking socket. * dns/rdtypes/ANY/LOC.py (LOC.to_wire): We encoded and decoded LOC incorrectly, since we were interpreting the values of altitiude, size, hprec, and vprec in meters instead of centimeters. * dns/rdtypes/IN/WKS.py (WKS.from_wire): The WKS protocol value is encoded with just one octet, not two! * dns/resolver.py (Cache.maybe_clean): The cleaner deleted items from the dictionary while iterating it, causing a RuntimeError to be raised. Thanks to Mark R. Levinson for the bug report, regression test, and fix.
2005-02-24Add RMD160 digests.agc1-1/+2
2004-07-22add python as categoryrecht1-2/+2
ok'd a while back at pkgsrcCon by agc and wiz
2004-02-23Update py-dns to 1.2.0 and bl3ify.minskim2-7/+7
Changes in 1.2.0: - Timeout support has been overhauled. It now works on Python 2.2 as well as 2.3, and the total time spent processing a query is now much more controllable than before since the timeout is now on the whole query instead of just on individual network calls. - The master file reader now gives the filename and line number of the offending input when a syntax error occurs. - $INCLUDE is now supported in DNS master files. Processing of $INCLUDE can also be disabled if desired. - BIND 8 style TTLs, e.g. "1w2d3h4m5s", are accepted when reading a master file, but will never be emitted. - Basic zone sanity checks are made after a zone is loaded. Specifically, the zone must have SOA and NS rdatasets at its origin.
2003-09-21Add USE_BUILDLINK2 so this picks up a proper dependjmc1-1/+2
2003-09-14hange extension.mk to also install optimized files for distutils packages.recht1-3/+66
Inspired by FreeBSD "ports". Fix the PLISTs accordingly. Also, while at it, remove now obsolete compileall.py calls in post-install targets and insure that extension.mk is in included before builinlinks of other Python modules. Discussed with/ok'ed by drochner@.
2003-08-18Update py-dns to 1.1.0.gson3-7/+15
Summary of changes from 1.0.0: * Message sections are now lists of RRsets, not lists of nodes. * Nodes no longer have names; owner names are associated with nodes in the Zone object's nodes dictionary. * Many tests have been added to the test suite; dnspython 1.0.0 had 47 tests, 1.1.0 has 275. The improved testing uncovered a number of bugs, all of which have been fixed. * The NameDict class provides a dictionary whose keys are DNS names. In addition to behaving like a normal Python dictionary, it also provides the get_deepest_match() method. If, for example, you had a dictionary containing the keys foo.com and com, then get_deepest_match() of the name a.b.foo.com would match the foo.com key. * A new Renderer class for those applications which want finer control over the DNS wire format message generation process. * Support for a "TooBig" exception if the size of wire format output exceeds a specified limit. * Zones now have find_rrset() and find_rdataset() convenience methods. They let you retrieve rdata with the specified name and type in one call, e.g.: rrset = zone.find_rrset('foo', 'mx') * Other new zone convenience methods include: find_node(), delete_node(), delete_rdataset(), replace_rdataset(), iterate_rdatasets(), and iterate_rdatas(). * get_ variants of find_ methods are provided; the difference is that get_ methods return None if the desired object doesn't exist, whereas the find_ methods raise an exception. * Zones now have a to_file() method. * The message and zone from_file() methods allow Unicode filenames on platforms (and versions of python) which support them. Universal newline support is also used if available. * The Zone class now implements more of the standard mapping interface. E.g. you can say zone.keys(), zone.get('name'), zone.iteritems(), etc. __iter__() has been changed to iterate the keys rather than values to match the standard mapping interface's behavior. * Rdatasets support more set operations * Zone and Node factories may be specified, allowing applications to subclass Zone or Node and yet still use the algorithms which build zones from master files or AXFR data. * dns.ipv6.inet_ntoa() now minimizes the text representation of IPv6 addresses in the usual way, e.g. "0000:0000:0000:0000:0000:0000:0000:0001" is minimized to "::1". * dns.query functions now take an optional address family parameter. All known bugs from 1.0.0 are fixed in this release.
2003-07-17s/netbsd.org/NetBSD.org/grant1-2/+2
2003-07-01Make MASTER_SITES refer to a location which the dnspython author saysgson1-2/+2
will work even after the release is no longer current.
2003-06-30Update py-dns to 1.0.0. Fixes pkg/22020.gson2-7/+7
Changes from 1.0.0b3: * 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-29Import dnspython-1.0.0b3.gson4-0/+147
dnspython is a DNS toolkit for Python. It 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.