4.0.2 Thu, Jun 6, 2024
 * Update expected test results due to changed example.com IP addresses.

4.0.1 Sun, Feb 25, 2024
 * Fix regex string in Base.py to be raw string to resolve SyntaxWarning for
   invalid escape sequence with python3.12, thanks to Agathe Porte for fixing
   in Debian.

4.0.0 Sat, Jul 1, 2023
 * Bump major version due to incompatible change
 * Remove class DnsAsyncRequest, asyncore is removed from Python 3.12 and it
   would require a substial rewrite - If you need async DNS, use aiodns
   instead. (LP: #2003329)
 * Switch build system from setuptools with setup.py to flit
 * If /etc/resolv.conf, assume DNS server is '127.0.0.1', this changes the
   existing behavior - in previous releases there would be a
   FileNotFoundError.

3.2.1 Wed, Sep  4, 2019
 * Add support for setting timeout for convenience methods in DNS.lazy
 * Fixed DNS.req resulttype error format (LP: #1842423)
 * Use errno.EADDRINUSE instead of the hard coded Linux value for improved
   portability (LP: #1793540)
 * Update test suite to correct for use of no longer existing DNS records
 * Set timeout=1 for tests so testing with a non-responsive nameserver will
   finish in a reasonable time

3.2.0 Mon, 23 Jul 2018
 * Rename internal use of async since it is a reserved word in python3.7
   (LP: #1776027)
 * Switch from distutils to setuptools
 * Ship test.py in the tarball

3.1.1 Thu, 06 Oct 2016 22:00:13 -0400
 * Update test suite for new example.org IP addresses
 * Fix missing bits for use of ipaddr-py with python3 < 3.3 (LP: #1319611)
   - Patch thanks to Arfrever Frehtes Taifersar Arahesis
 * Correct error in _DiscoverNameServers from OS X implementation in 3.0.1
   that prevents name server discovery on windows (LP: #1442424)
 * Correct encoding issue with label length to fix issues with DNS labels
   greater than 46 characters (LP: #1502853)
   - Thanks to Petr Czepiec for the patch
 * Use full path to /usr/sbin/scutil on OS X since scutil is not always in the
   search path (LP: #1630844)

3.1.0 Thu Apr 24 23:52:00 EDT 2014
 * Raise DNSError when no nameservers have been found by the time a
   Base.DNSRequest object is initialized
 * Add new DNS.DnsRequest.qry function to supercede DNS.DnsRequest.req to
   allow for non-backward compatible changes to be made in .qry while
   maintaining full backward compatibility with 3.0.3 and later in the 3.0
   series in .req
 * Add options for 'resulttype' to DnsResult.qry to allow for binary, integer,
   or text data to be returned for IP addresses
 * The default result type for IPv4 and IPv6 addresses in DNS.DnsRequest.qry
   is an ipaddress object
 * The ipaddress module is used internally.  This is included in python3.3 and
   the ipaddr-py module from https://code.google.com/p/ipaddr-py/ can be used
   with python3.2
 * New unittest based test suite - thanks to Diane Trout

3.0.4 Wed Aug  7 02:25:00 EDT 2013

 * Fix timeouts associated with only one of several available nameservers
   being unavailable(LP: #1209071):
   - Only raise timeout error after trying all available servers
   - Stop lookups once an answer is gotten
 * Removed unmaintained spec files

3.0.3 Wed May 29 00:05:00 EDT 2013

 * Revert returning IPv6 addresses from AAAA lookups as string.  Causing
   incompatiblities that are deeply annoying to fix on the other end.

3.0.2 Thu Jan 19 10:59:00 EST 2012

 * Add more granular exception sub classes of DNSError, see SF #3388075
   - Thanks to Julian Mehnle for the patch
 * Add AAAA record support, works like A records
   - Thanks to Shane Kerr for the patch

3.0.1 Mon Jul 18 19:46:30 EDT 2011

 * Add CHANGES to document post-Python 3 port changes
 * Add LICENSE file
 * Port pydns 2.3.5 changes to py3dns
   - Handle large TCP replies (change to blocking IO with timeout)
   - Add new lazy.dnslookup function to retrieve answer data for any query
     type
   - Add large TCP reply test to tests/test.py
 * Add automatic name server discovery for OS X

3.0.0 Wed Feb  9 23:35:22 EST 2011

Ported to Python3 by Scott Kitterman <scott@kitterman.com>.  This is mostly a
minimal port to work with Python3 (tested with python3.2) plus addition of
some of the patches that people have submitted on Sourceforge.  It should be
fully API compatible with 2.3.

