[Python-modules-commits] [dnspython] 01/06: Import dnspython_1.14.0.orig.tar.gz

Scott Kitterman kitterman at moszumanska.debian.org
Sat May 28 17:27:20 UTC 2016


This is an automated email from the git hooks/post-receive script.

kitterman pushed a commit to branch master
in repository dnspython.

commit e97a7fb113a94b0eeb393b630334ffa5de3c8cdd
Author: Scott Kitterman <scott at kitterman.com>
Date:   Sat May 28 12:54:27 2016 -0400

    Import dnspython_1.14.0.orig.tar.gz
---
 ChangeLog                      |  37 ++-
 PKG-INFO                       |   4 +-
 README.md                      | 612 +++++++++++++++++++++++++++++++++++++++++
 dns/edns.py                    |   4 +-
 dns/exception.py               |   4 +-
 dns/message.py                 |  31 ++-
 dns/name.py                    |   6 +-
 dns/query.py                   |  13 +-
 dns/rcode.py                   |   2 +-
 dns/rdata.py                   |   4 +-
 dns/rdatatype.py               |   2 +
 dns/rdtypes/ANY/CSYNC.py       | 124 +++++++++
 dns/rdtypes/ANY/LOC.py         |  59 ++--
 dns/renderer.py                |   2 +-
 dns/resolver.py                |   9 +-
 dns/tsig.py                    |  12 +-
 dns/version.py                 |   2 +-
 dns/zone.py                    |  17 +-
 dnspython.egg-info/PKG-INFO    |   4 +-
 dnspython.egg-info/SOURCES.txt |   2 +
 examples/zonediff.py           |   2 +-
 setup.py                       |   2 +-
 tests/example                  | 133 +++------
 tests/example1.good            |  24 +-
 tests/example2.good            |  24 +-
 tests/example3.good            |  24 +-
 tests/test_dnssec.py           |   4 +-
 tests/test_message.py          |  21 ++
 tests/test_rdtypeanyloc.py     |  18 +-
 tests/test_zone.py             |   5 +-
 30 files changed, 998 insertions(+), 209 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 177a34c..6768880 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2016-05-27  Bob Halley  <halley at dnspython.org>
+
+	* (Version 1.14.0 released)
+
+	* Add CSYNC RR support
+
+	* Fix bug in LOC which destroyed N/S and E/W distinctions within
+	  a degree of the equator or prime merdian respectively.
+
+	* Misc. fixes to deal with fallout from the Python 2 & 3 merge.
+	  [issue #156], [issue #157], [issue #158], [issue #159],
+	  [issue #160].
+
+	* Running with python optimization on caused issues when
+	  stripped docstrings were referenced. [issue #154]
+
+	* dns.zone.from_text() erroneously required the zone to be provided.
+	  [issue #153]
+
+2016-05-13  Bob Halley  <halley at dnspython.org>
+
+	* dns/message.py (make_query): Setting any value which implies
+	  EDNS will turn on EDNS if 'use_edns' has not been specified.
+
+2016-05-12  Bob Halley  <halley at dnspython.org>
+
+	* TSIG signature algorithm setting was broken by the Python 2
+	  and Python 3 code line merge.  Fixed.
+
 2016-05-10  Bob Halley  <halley at dnspython.org>
 
 	* (Version 1.13.0 released)
@@ -34,7 +63,7 @@
 
 	* Comparing two rdata is now always done by comparing the binary
 	  data of the DNSSEC digestable forms.  This corrects a number of
-	  errors where dnspython's rdata comparsion order was not the
+	  errors where dnspython's rdata comparison order was not the
 	  DNSSEC order.
 
 	* Add CAA implementation.  Thanks to Brian Wellington for the
@@ -916,7 +945,7 @@
 2003-11-13  Bob Halley  <halley at dnspython.org>
 
         * dns/rdtypes/ANY/LOC.py (LOC.to_wire): We encoded and decoded LOC
-        incorrectly, since we were interpreting the values of altitiude,
+        incorrectly, since we were interpreting the values of altitude,
         size, hprec, and vprec in meters instead of centimeters.
 
         * dns/rdtypes/IN/WKS.py (WKS.from_wire): The WKS protocol value is
@@ -1200,7 +1229,7 @@
 
                 bar.foo 300 IN MX 0 blaz.foo
 
-        after the second step (relativiation to zone origin).
+        after the second step (relativization to zone origin).
 
         * dns/namedict.py: added.
 
@@ -1221,7 +1250,7 @@
         * dns/renderer.py: added new wire format rendering module and
         converted message.py to use it.  Applications which want
         fine-grained control over the conversion to wire format may call
-        the renderer directy, instead of having it called on their behalf
+        the renderer directly, instead of having it called on their behalf
         by the message code.
 
 2003-07-02  Bob Halley  <halley at dnspython.org>
diff --git a/PKG-INFO b/PKG-INFO
index 5cae73a..373643b 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: dnspython
-Version: 1.13.0
+Version: 1.14.0
 Summary: DNS toolkit
 Home-page: http://www.dnspython.org
 Author: Bob Halley
 Author-email: halley at dnspython.org
 License: BSD-like
-Download-URL: http://www.dnspython.org/kits/1.13.0/dnspython-1.13.0.tar.gz
+Download-URL: http://www.dnspython.org/kits/1.14.0/dnspython-1.14.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.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..99b92cb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,612 @@
+dnspython [![Build Status](https://travis-ci.org/rthalley/dnspython.svg?branch=master)](https://travis-ci.org/rthalley/dnspython)
+
+## INTRODUCTION
+
+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.
+
+To see a few of the ways dnspython can be used, look in the examples/
+directory.
+
+dnspython originated at Nominum where it was developed to facilitate
+the testing of DNS software.  Nominum has generously allowed it to be
+open sourced under a BSD-style license, and helps support its future
+development by continuing to employ the author :).
+
+## INSTALLATION
+- If you have pip installed,  you can do this
+`pip install dnspython`
+- If not just download the source file and unzip it, then run this
+`sudo python setup.py install`
+
+## ABOUT THIS RELEASE
+
+This is dnspython 1.14.0
+
+New since 1.13.0:
+
+	CSYNC RRs are now supported.
+
+	dns/message.py (make_query): Setting any value which implies
+	EDNS will turn on EDNS if 'use_edns' has not been specified.
+
+Bugs fixed since 1.13.0:
+
+	TSIG signature algorithm setting was broken by the Python 2
+	and Python 3 code line merge.
+	  
+	A bug in the LOC RR destroyed N/S and E/W distinctions within
+	a degree of the equator or prime merdian respectively.
+
+	Misc. fixes to deal with fallout from the Python 2 & 3 merge.
+	[issue #156], [issue #157], [issue #158], [issue #159],
+	[issue #160].
+
+	Running with python optimization on caused issues when
+	stripped docstrings were referenced. [issue #154]
+
+	dns.zone.from_text() erroneously required the zone to be provided.
+	[issue #153]
+
+New since 1.12.0:
+
+	Dnspython now uses a single source for Python 2 and Python 3,
+	eliminating the painful merging between the Python 2 and Python 3
+	branches.  Thank you so much to Arthur Gautier for taking on this
+	challenge and making it work!  It was a big job!
+
+	Support for Python older than 2.6 dropped.
+
+	Support for Python older than 3.3 dropped.
+
+	Zone origin can be specified as a string.
+
+	A rich string representation for all DNSExceptions.
+
+	setuptools has replaced distutils
+
+	Added support for CAA, CDS, CDNSKEY, EUI48, EUI64, and URI RR
+	types.
+
+	Names now support the pickle protocol.
+
+	Ports can be specified per-nameserver in the stub resolver.
+
+Bugs fixed since 1.12.0:
+
+    A number of Unicode name bugs have been fixed.
+
+	resolv.conf processing now rejects lines with too few tokens.
+
+	NameDicts now keep the max-depth value correct, and update properly.
+
+New since 1.11.1:
+    
+	Added dns.zone.to_text().
+
+	Added support for "options rotate" in /etc/resolv.conf.
+
+	dns.rdtypes.ANY.DNSKEY now has helpers functions to convert
+	between the numeric form of the flags and a set of
+	human-friendly strings
+
+	The reverse name of an IPv6 mapped IPv4 address is now in the
+	IPv4 reverse namespace.
+
+	The test system can now run the tests without requiring
+	dnspython to be installed.
+
+	Preliminary Elliptic Curve DNSSEC Validation (requires ecdsa module)
+
+Bugs fixed since 1.11.1:
+
+	dnspython raised an exception when reading a masterfile starting
+	with leading whitespace
+	
+	dnspython was affected by a python slicing API bug present on
+	64-bit windows.
+
+	Unicode escaping was applied at the wrong time.
+
+	RRSIG to_text() did not respect the relativize setting.
+
+	APL RRs with zero rdlength were rejected.
+
+	The tokenizer could put back an unescaped token.
+
+	Making a response to a message signed with TSIG was broken.
+
+	The IXFR state machine didn't handle long IXFR diffs.
+
+New since 1.11.0:
+    
+	Nothing
+
+Bugs fixed since 1.11.0:
+
+	dns.resolver.Resolver erroneously referred to 'retry_servfail'
+	instead of 'self.retry_servfail'.
+
+     	dns.tsigkeyring.to_text() would fail trying to convert the
+     	keyname to text.
+
+	Multi-message TSIGs were broken for algorithms other than
+	HMAC-MD5 because we weren't passing the right digest module to
+	the HMAC code.
+
+	dns.dnssec._find_candidate_keys() tried to extract the key
+	from the wrong variable name.
+
+	$GENERATE tests were not backward compatible with python 2.4.
+
+New since 1.10.0:
+    
+        $GENERATE support
+
+	TLSA RR support
+
+	Added set_flags() method to dns.resolver.Resolver
+
+Bugs fixed since 1.10.0:
+
+        Names with offsets >= 2^14 are no longer added to the compression
+	table.
+
+	The "::" syntax is not used to shorten a single 16-bit section of
+	the text form an IPv6 address.
+
+	Caches are now locked.
+
+	YXDOMAIN is raised if seen by the resolver.
+
+	Empty rdatasets are not printed.
+
+	DNSKEY key tags are no longer assumed to be unique.
+
+New since 1.9.4:
+
+       	Added dns.resolver.LRUCache.  In this cache implementation,
+	the cache size is limited to a user-specified number of nodes,
+	and when adding a new node to a full cache the least-recently
+	used node is removed.  If you're crawling the web or otherwise
+	doing lots of resolutions and you are using a cache, switching
+	to the LRUCache is recommended.
+
+	dns.resolver.query() will try TCP if a UDP response is
+	truncated.
+
+	The python socket module's DNS methods can be now be overridden
+	with implementations that use dnspython's resolver.
+
+	Old DNSSEC types KEY, NXT, and SIG have been removed.
+
+	Whitespace is allowed in SSHFP fingerprints.
+
+	Origin checking in dns.zone.from_xfr() can be disabled.
+
+	Trailing junk checking can be disabled.
+
+	A source port can be specified when creating a resolver query.
+
+	All EDNS values may now be specified to dns.message.make_query().
+
+Bugs fixed since 1.9.4:
+
+     	IPv4 and IPv6 address processing is now stricter.
+
+	Bounds checking of slices in rdata wire processing is now more
+	strict, and bounds errors (e.g. we got less data than was
+	expected) now raise dns.exception.FormError rather than
+	IndexError.
+
+	Specifying a source port without specifying source used to
+	have no effect, but now uses the wildcard address and the
+	specified port.
+
+New since 1.9.3:
+
+        Nothing.
+
+Bugs fixed since 1.9.3:
+
+     	The rdata _wire_cmp() routine now handles relative names.
+
+	The SIG RR implementation was missing 'import struct'.
+
+New since 1.9.2:
+
+    	A boolean parameter, 'raise_on_no_answer', has been added to
+	the query() methods.  In no-error, no-data situations, this
+	parameter determines whether NoAnswer should be raised or not.
+	If True, NoAnswer is raised.  If False, then an Answer()
+	object with a None rrset will be returned.
+
+	Resolver Answer() objects now have a canonical_name field.
+
+	Rdata now have a __hash__ method.
+
+Bugs fixed since 1.9.2:
+
+       	Dnspython was erroneously doing case-insensitive comparisons
+	of the names in NSEC and RRSIG RRs.
+
+	We now use "is" and not "==" when testing what section an RR
+	is in.
+
+	The resolver now disallows metaqueries.
+
+New since 1.9.1:
+
+    	Nothing.
+
+Bugs fixed since 1.9.1:
+
+	The dns.dnssec module didn't work at all due to missing
+	imports that escaped detection in testing because the test
+	suite also did the imports.  The third time is the charm!
+
+New since 1.9.0:
+
+    	Nothing.
+
+Bugs fixed since 1.9.0:
+
+        The dns.dnssec module didn't work with DSA due to namespace
+	contamination from a "from"-style import.
+
+New since 1.8.0:
+
+    	dnspython now uses poll() instead of select() when available.
+
+	Basic DNSSEC validation can be done using dns.dnsec.validate()
+	and dns.dnssec.validate_rrsig() if you have PyCrypto 2.3 or
+	later installed.  Complete secure resolution is not yet
+	available.
+
+	Added key_id() to the DNSSEC module, which computes the DNSSEC
+	key id of a DNSKEY rdata.
+
+	Added make_ds() to the DNSSEC module, which returns the DS RR
+	for a given DNSKEY rdata.
+
+	dnspython now raises an exception if HMAC-SHA284 or
+	HMAC-SHA512 are used with a Python older than 2.5.2.  (Older
+	Pythons do not compute the correct value.)
+
+	Symbolic constants are now available for TSIG algorithm names.
+
+Bugs fixed since 1.8.0
+
+        dns.resolver.zone_for_name() didn't handle a query response
+	with a CNAME or DNAME correctly in some cases.
+
+        When specifying rdata types and classes as text, Unicode
+	strings may now be used.
+
+	Hashlib compatibility issues have been fixed.
+
+	dns.message now imports dns.edns.
+
+	The TSIG algorithm value was passed incorrectly to use_tsig()
+	in some cases.
+
+New since 1.7.1:
+
+    	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,
+	value) tuples.
+
+Bugs fixed since 1.7.1:
+
+        Escapes in masterfiles now work correctly.  Previously they
+	were only working correctly when the text involved was part of
+	a domain name.
+
+     	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.
+
+	The entropy pool's reading of /dev/random could cause
+	dnspython to block.
+
+	The entropy pool did buffered reads, potentially consuming more
+	randomness than we needed.
+
+	The entropy pool did not seed with high quality randomness on
+	Windows.
+
+	SRV records were compared incorrectly.
+
+	In the e164 query function, the resolver parameter was not
+	used.
+
+New since 1.7.0:
+
+    	Nothing
+
+Bugs fixed since 1.7.0:
+
+     	The 1.7.0 kitting process inadvertently 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
+	DNSSEC canonical form of the rdata, suitable for use in
+	signature computations.
+
+	The NSEC3, NSEC3PARAM, DLV, and HIP RR types are now supported.
+
+	An entropy module has been added and is used to randomize query ids.
+
+	EDNS0 options are now supported.
+
+	UDP IXFR is now supported.
+
+	The wire format parser now has a 'one_rr_per_rrset' mode, which
+	suppresses the usual coalescing of all RRs of a given type into a
+	single RRset.
+
+	Various helpful DNSSEC-related constants are now defined.
+
+	The resolver's query() method now has an optional 'source' parameter,
+        allowing the source IP address to be specified.
+
+Bugs fixed since 1.6.0:
+
+     	On Windows, the resolver set the domain incorrectly.
+
+	DS RR parsing only allowed one Base64 chunk.
+
+	TSIG validation didn't always use absolute names.
+
+	NSEC.to_text() only printed the last window.
+
+	We did not canonicalize IPv6 addresses before comparing them; we
+	would thus treat equivalent but different textual forms, e.g.
+	"1:00::1" and "1::1" as being non-equivalent.
+
+	If the peer set a TSIG error, we didn't raise an exception.
+
+	Some EDNS bugs in the message code have been fixed (see the ChangeLog
+	for details).
+
+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.
+
+	If the queried address is a multicast address, then don't
+	check that the address of the response is the same as the
+	address queried.
+
+	NAPTR comparisons didn't compare the preference field due to a
+	typo.
+
+	Testing of whether a Windows NIC is enabled now works on Vista
+	thanks to code contributed by Paul Marks.
+
+New since 1.4.0:
+
+    	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]",
+	and "answer[i:j]" is equivalent to "answer.rrset[i:j]".
+
+	Making requests using EDNS, including indicating DNSSEC awareness,
+	is now easier.  For example, you can now say:
+
+	   q = dns.message.make_query('www.dnspython.org', 'MX',
+				      want_dnssec=True)
+
+	dns.query.xfr() can now be used for IXFR.
+
+	Support has been added for the DHCID, IPSECKEY, and SPF RR types.
+
+	UDP messages from unexpected sources can now be ignored by
+	setting ignore_unexpected to True when calling dns.query.udp.
+
+Bugs fixed since 1.4.0:
+
+        If /etc/resolv.conf didn't exist, we raised an exception
+	instead of simply using the default resolver configuration.
+
+	In dns.resolver.Resolver._config_win32_fromkey(), we were
+	passing the wrong variable to self._config_win32_search().
+
+New since 1.3.5:
+
+        You can now convert E.164 numbers to/from their ENUM name
+        forms:
+
+	      >>> import dns.e164
+	      >>> n = dns.e164.from_e164("+1 555 1212")
+	      >>> n
+	      <DNS name 2.1.2.1.5.5.5.1.e164.arpa.>
+	      >>> dns.e164.to_e164(n)
+	      '+15551212'
+
+	You can now convert IPv4 and IPv6 address to/from their
+	corresponding DNS reverse map names:
+
+	      >>> import dns.reversename
+	      >>> n = dns.reversename.from_address("127.0.0.1")
+	      >>> n
+	      <DNS name 1.0.0.127.in-addr.arpa.>
+	      >>> dns.reversename.to_address(n)
+	      '127.0.0.1'
+
+	You can now convert between Unicode strings and their IDN ACE
+	form:
+
+	      >>> n = dns.name.from_text(u'les-\u00e9l\u00e8ves.example.')
+	      >>> n
+	      <DNS name xn--les-lves-50ai.example.>
+	      >>> n.to_unicode()
+	      u'les-\xe9l\xe8ves.example.'
+
+	The origin parameter to dns.zone.from_text() and dns.zone.to_text()
+	is now optional.  If not specified, the origin will be taken from
+	the first $ORIGIN statement in the master file.
+
+	Sanity checking of a zone can be disabled; this is useful when
+	working with files which are zone fragments.
+
+Bugs fixed since 1.3.5:
+
+     	The correct delimiter was not used when retrieving the
+	list of nameservers from the registry in certain versions of
+	windows.
+
+        The floating-point version of latitude and longitude in LOC RRs
+	(float_latitude and float_longitude) had incorrect signs for
+	south latitudes and west longitudes.
+
+	BIND 8 TTL syntax is now accepted in all TTL-like places (i.e.
+	SOA fields refresh, retry, expire, and minimum; SIG/RRSIG
+	field original_ttl).
+
+	TTLs are now bounds checked when their text form is parsed,
+	and their values must be in the closed interval [0, 2^31 - 1].
+
+New since 1.3.4:
+
+     	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
+	name, which is handy for dynamic update.  E.g.
+
+	      import dns.resolver
+	      print dns.resolver.zone_for_name('www.dnspython.org')
+
+	will output "dnspython.org." and
+
+	      print dns.resolver.zone_for_name('a.b.c.d.e.f.example.')
+
+	will output ".".
+
+	The default resolver can be fetched with the
+	get_default_resolver() method.
+
+    	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
+	a default rdtype of dns.rdatatype.ANY like the documentation
+	says.
+
+	A Dynamic DNS example, ddns.py, has been added.
+
+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.
+
+	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.
+
+New since 1.3.2:
+
+    	dns.message.Message.find_rrset() now uses an index, vastly
+	improving the from_wire() performance of large messages such
+	as zone transfers.
+
+	Added dns.message.make_response(), which creates a skeletal
+	response for the specified query.
+
+	Added opcode() and set_opcode() convenience methods to the
+	dns.message.Message class.  Added the request_payload
+	attribute to the Message class.
+
+        The 'file' parameter of dns.name.Name.to_wire() is now
+	optional; if omitted, the wire form will be returned as the
+	value of the function.
+
+	dns.zone.from_xfr() in relativization mode incorrectly set
+	zone.origin to the empty name.
+
+	The masterfile parser incorrectly rejected TXT records where a
+	value was not quoted.
+
+New since 1.3.1:
+
+	The NSEC format doesn't allow specifying types by number, so
+	we shouldn't either.  (Using the unknown type format is still
+	OK though.)
+
+	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.
+
+	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.
+
+        The conversion of LOC milliseconds values from text to binary was
+	incorrect if the length of the milliseconds string was not 3.
+
+New since 1.3.0:
+
+	Added support for the SSHFP type.
+
+New since 1.2.0:
+
+	Added support for new DNSSEC types RRSIG, NSEC, and DNSKEY.
+
+This release fixes all known bugs.
+
+See the ChangeLog file for more detailed information on changes since
+the prior release.
+
+
+## REQUIREMENTS
+
+Python 2.6 or later.
+
+
+## HOME PAGE
+
+For the latest in releases, documentation, and information, visit the
+dnspython home page at
+
+	http://www.dnspython.org/
+
+
+
+## DOCUMENTATION
+
+Documentation is sparse at the moment.  Use pydoc, or read the HTML
+documentation at the dnspython home page, or download the HTML
+documentation.
+
+
+## BUG REPORTS
+
+Bug reports may be sent to bugs at dnspython.org
+
+
+## MAILING LISTS
+
+A number of mailing lists are available.  Visit the dnspython home
+page to subscribe or unsubscribe.
diff --git a/dns/edns.py b/dns/edns.py
index c6102fd..8ac676b 100644
--- a/dns/edns.py
+++ b/dns/edns.py
@@ -43,7 +43,7 @@ class Option(object):
         @type otype: int
         @param wire: The wire-format message
         @type wire: string
-        @param current: The offet in wire of the beginning of the rdata.
+        @param current: The offset in wire of the beginning of the rdata.
         @type current: int
         @param olen: The length of the wire-format option data
         @type olen: int
@@ -140,7 +140,7 @@ def option_from_wire(otype, wire, current, olen):
     @type otype: int
     @param wire: The wire-format message
     @type wire: string
-    @param current: The offet in wire of the beginning of the rdata.
+    @param current: The offset in wire of the beginning of the rdata.
     @type current: int
     @param olen: The length of the wire-format option data
     @type olen: int
diff --git a/dns/exception.py b/dns/exception.py
index 81c8daa..62fbe2c 100644
--- a/dns/exception.py
+++ b/dns/exception.py
@@ -34,7 +34,7 @@ class DNSException(Exception):
     In the new mode *args has to be empty and all kwargs has to exactly match
     set in class variable self.supp_kwargs. All kwargs are stored inside
     self.kwargs and used in new __str__ implementation to construct
-    formated message based on self.fmt string.
+    formatted message based on self.fmt string.
 
     In the simplest case it is enough to override supp_kwargs and fmt
     class variables to get nice parametrized messages.
@@ -121,4 +121,4 @@ class Timeout(DNSException):
 
     """The DNS operation timed out."""
     supp_kwargs = set(['timeout'])
-    fmt = "%s after {timeout} seconds" % __doc__[:-1]
+    fmt = "The DNS operation timed out after {timeout} seconds"
diff --git a/dns/message.py b/dns/message.py
index 1b31086..9b8dcd0 100644
--- a/dns/message.py
+++ b/dns/message.py
@@ -58,13 +58,13 @@ class UnknownHeaderField(dns.exception.DNSException):
 
 class BadEDNS(dns.exception.FormError):
 
-    """OPT record occured somewhere other than the start of
+    """OPT record occurred somewhere other than the start of
     the additional data section."""
 
 
 class BadTSIG(dns.exception.FormError):
 
-    """A TSIG record occured somewhere other than the end of
+    """A TSIG record occurred somewhere other than the end of
     the additional data section."""
 
 
@@ -1043,14 +1043,14 @@ def from_file(f):
 
 
 def make_query(qname, rdtype, rdclass=dns.rdataclass.IN, use_edns=None,
-               want_dnssec=False, ednsflags=0, payload=1280,
+               want_dnssec=False, ednsflags=None, payload=None,
                request_payload=None, options=None):
     """Make a query message.
 
     The query name, type, and class may all be specified either
     as objects of the appropriate type, or as strings.
 
-    The query will have a randomly choosen query id, and its DNS flags
+    The query will have a randomly chosen query id, and its DNS flags
     will be set to dns.flags.RD.
 
     @param qname: The query name.
@@ -1088,7 +1088,28 @@ def make_query(qname, rdtype, rdclass=dns.rdataclass.IN, use_edns=None,
     m.flags |= dns.flags.RD
     m.find_rrset(m.question, qname, rdclass, rdtype, create=True,
                  force_unique=True)
-    m.use_edns(use_edns, ednsflags, payload, request_payload, options)
+    # only pass keywords on to use_edns if they have been set to a
+    # non-None value.  Setting a field will turn EDNS on if it hasn't
+    # been configured.
+    kwargs = {}
+    if ednsflags is not None:
+        kwargs['ednsflags'] = ednsflags
+        if use_edns is None:
+            use_edns = 0
+    if payload is not None:
+        kwargs['payload'] = payload
+        if use_edns is None:
+            use_edns = 0
+    if request_payload is not None:
+        kwargs['request_payload'] = request_payload
+        if use_edns is None:
+            use_edns = 0
+    if options is not None:
+        kwargs['options'] = options
+        if use_edns is None:
+            use_edns = 0
+    kwargs['edns'] = use_edns
+    m.use_edns(**kwargs)
     m.want_dnssec(want_dnssec)
     return m
 
diff --git a/dns/name.py b/dns/name.py
index e5b0107..2a74694 100644
--- a/dns/name.py
+++ b/dns/name.py
@@ -226,7 +226,7 @@ class Name(object):
     def fullcompare(self, other):
         """Compare two names, returning a 3-tuple (relation, order, nlabels).
 
-        I{relation} describes the relation ship beween the names,
+        I{relation} describes the relation ship between the names,
         and is one of: dns.name.NAMERELN_NONE,
         dns.name.NAMERELN_SUPERDOMAIN, dns.name.NAMERELN_SUBDOMAIN,
         dns.name.NAMERELN_EQUAL, or dns.name.NAMERELN_COMMONANCESTOR
@@ -379,7 +379,7 @@ class Name(object):
     def to_unicode(self, omit_final_dot=False):
         """Convert name to Unicode text format.
 
-        IDN ACE lables are converted to Unicode.
+        IDN ACE labels are converted to Unicode.
 
         @param omit_final_dot: If True, don't emit the final dot (denoting the
         root label) for absolute names.  The default is False.
@@ -587,7 +587,7 @@ empty = Name([])
 def from_unicode(text, origin=root):
     """Convert unicode text into a Name object.
 
-    Lables are encoded in IDN ACE form.
+    Labels are encoded in IDN ACE form.
 
     @rtype: dns.name.Name object
     """
diff --git a/dns/query.py b/dns/query.py
index cfa3f17..3567098 100644
--- a/dns/query.py
+++ b/dns/query.py
@@ -264,11 +264,11 @@ def _net_read(sock, count, expiration):
     A Timeout exception will be raised if the operation is not completed
     by the expiration time.
     """
-    s = ''
+    s = b''
     while count > 0:
         _wait_for_readable(sock, expiration)
         n = sock.recv(count)
-        if n == '':
+        if n == b'':
             raise EOFError
         count = count - len(n)
         s = s + n
@@ -292,9 +292,12 @@ def _connect(s, address):
         s.connect(address)
     except socket.error:
         (ty, v) = sys.exc_info()[:2]
-        if v[0] != errno.EINPROGRESS and \
-            v[0] != errno.EWOULDBLOCK and \
-                v[0] != errno.EALREADY:
+
+        if hasattr(v, 'errno'):
+            v_err = v.errno
+        else:
+            v_err = v[0]
+        if v_err not in [errno.EINPROGRESS, errno.EWOULDBLOCK, errno.EALREADY]:
             raise v
 
 
diff --git a/dns/rcode.py b/dns/rcode.py
index 698ad25..314815f 100644
--- a/dns/rcode.py
+++ b/dns/rcode.py
@@ -62,7 +62,7 @@ class UnknownRcode(dns.exception.DNSException):
 def from_text(text):
     """Convert text into an rcode.
 
-    @param text: the texual rcode
+    @param text: the textual rcode
     @type text: string
     @raises UnknownRcode: the rcode is unknown
     @rtype: int
diff --git a/dns/rdata.py b/dns/rdata.py
index cb8c274..824731c 100644
--- a/dns/rdata.py
+++ b/dns/rdata.py
@@ -286,7 +286,7 @@ class Rdata(object):
         @type rdtype: int
         @param wire: The wire-format message
         @type wire: string
-        @param current: The offet in wire of the beginning of the rdata.
+        @param current: The offset in wire of the beginning of the rdata.
         @type current: int
         @param rdlen: The length of the wire-format rdata
         @type rdlen: int
@@ -451,7 +451,7 @@ def from_wire(rdclass, rdtype, wire, current, rdlen, origin=None):
     @type rdtype: int
     @param wire: The wire-format message
     @type wire: string
-    @param current: The offet in wire of the beginning of the rdata.
+    @param current: The offset in wire of the beginning of the rdata.
     @type current: int
     @param rdlen: The length of the wire-format rdata
     @type rdlen: int
diff --git a/dns/rdatatype.py b/dns/rdatatype.py
index f4336fc..cde1a0a 100644
--- a/dns/rdatatype.py
+++ b/dns/rdatatype.py
@@ -82,6 +82,7 @@ TLSA = 52
 HIP = 55
 CDS = 59
 CDNSKEY = 60
+CSYNC = 62
 SPF = 99
 UNSPEC = 103
 EUI48 = 108
@@ -151,6 +152,7 @@ _by_text = {
     'HIP': HIP,
     'CDS': CDS,
     'CDNSKEY': CDNSKEY,
+    'CSYNC': CSYNC,
     'SPF': SPF,
     'UNSPEC': UNSPEC,
     'EUI48': EUI48,
diff --git a/dns/rdtypes/ANY/CSYNC.py b/dns/rdtypes/ANY/CSYNC.py
new file mode 100644
index 0000000..bf95cb2
--- /dev/null
+++ b/dns/rdtypes/ANY/CSYNC.py
@@ -0,0 +1,124 @@
+# Copyright (C) 2004-2007, 2009-2011, 2016 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.
+
+import struct
+
+import dns.exception
... 1010 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/dnspython.git



More information about the Python-modules-commits mailing list