Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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@.
|
|
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.
|
|
|
|
will work even after the release is no longer current.
|
|
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.
|
|
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.
|