diff --git a/Net_DNS2-1.3.2/tests/AllTests.php b/Net_DNS2-1.3.2/tests/AllTests.php
deleted file mode 100644
index 5d7bc3438416af2de166909f7d65cde182b560d8..0000000000000000000000000000000000000000
--- a/Net_DNS2-1.3.2/tests/AllTests.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-//
-// This test suite assumes that Net_DNS2 will be in the include path, otherwise it
-// will fail. There's no other way to hardcode a include_path in here that would make
-// it work everywhere.
-//
-
-error_reporting(E_ALL | E_STRICT);
-
-if (!defined('PHPUnit_MAIN_METHOD')) {
-    define('PHPUnit_MAIN_METHOD', 'Net_DNS2_AllTests::main');
-}
-
-require_once 'PHPUnit/TextUI/TestRunner.php';
-require_once 'Net_DNS2_ParserTest.php';
-require_once 'Net_DNS2_ResolverTest.php';
-require_once 'Net_DNS2_DNSSECTest.php';
-
-class Net_DNS2_AllTests
-{
-    public static function main()
-    {
-        PHPUnit_TextUI_TestRunner::run(self::suite());
-    }
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('PEAR - Net_DNS2');
-
-        $suite->addTestSuite('Net_DNS2_ParserTest');
-        $suite->addTestSuite('Net_DNS2_ResolverTest');
-        $suite->addTestSuite('Net_DNS2_DNSSECTest');
-
-        return $suite;
-    }
-}
-
-if (PHPUnit_MAIN_METHOD == 'Net_DNS2_AllTests::main') {
-    Net_DNS2_AllTests::main();
-}
-
-?>
diff --git a/Net_DNS2-1.3.2/tests/Net_DNS2_DNSSECTest.php b/Net_DNS2-1.3.2/tests/Net_DNS2_DNSSECTest.php
deleted file mode 100644
index 79d2d4c4e261f50a963f8653b1f6aafa170149b6..0000000000000000000000000000000000000000
--- a/Net_DNS2-1.3.2/tests/Net_DNS2_DNSSECTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-require_once 'Net/DNS2.php';
-
-class Net_DNS2_DNSSECTest extends PHPUnit_Framework_TestCase
-{
-    public function testTSIG()
-    {
-        $r = new Net_DNS2_Resolver(array('nameservers' => array('8.8.8.8', '8.8.4.4')));
-
-        $r->dnssec = true;
-
-        $result = $r->query('org', 'SOA', 'IN');
-
-        $this->assertTrue(($result->header->ad == 1));
-        $this->assertTrue(($result->additional[0] instanceof Net_DNS2_RR_OPT));
-        $this->assertTrue(($result->additional[0]->do == 1));
-    }
-};
-
-?>
diff --git a/Net_DNS2-1.3.2/tests/Net_DNS2_ResolverTest.php b/Net_DNS2-1.3.2/tests/Net_DNS2_ResolverTest.php
deleted file mode 100644
index b8e98e5ed5a03f7e5a0b990cd3ddf6e21e64212f..0000000000000000000000000000000000000000
--- a/Net_DNS2-1.3.2/tests/Net_DNS2_ResolverTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-require_once 'Net/DNS2.php';
-
-//
-// This test uses the Google public DNS servers to perform a resolution test; this should work on
-// *nix and Windows, but will require an internet connection.
-//
-class Net_DNS2_ResolverTest extends PHPUnit_Framework_TestCase
-{
-    public function testResolver()
-    {
-        $r = new Net_DNS2_Resolver(array('nameservers' => array('8.8.8.8', '8.8.4.4')));
-
-        $result = $r->query('google.com', 'MX');
-
-        $this->assertSame($result->header->qr, Net_DNS2_Lookups::QR_RESPONSE);
-        $this->assertSame(count($result->question), 1);
-        $this->assertTrue(count($result->answer) > 0);
-        $this->assertTrue($result->answer[0] instanceof Net_DNS2_RR_MX);
-    }
-}
-
-?>
diff --git a/Net_DNS2-1.3.2/LICENSE b/Net_DNS2-1.4.1/LICENSE
similarity index 100%
rename from Net_DNS2-1.3.2/LICENSE
rename to Net_DNS2-1.4.1/LICENSE
diff --git a/Net_DNS2-1.3.2/Net/DNS2.php b/Net_DNS2-1.4.1/Net/DNS2.php
similarity index 61%
rename from Net_DNS2-1.3.2/Net/DNS2.php
rename to Net_DNS2-1.4.1/Net/DNS2.php
index c12191b97863c82e3a4d4321210512b6133854c7..74f61e48d09af4a13201001987f37ff7e5c18004 100644
--- a/Net_DNS2-1.3.2/Net/DNS2.php
+++ b/Net_DNS2-1.4.1/Net/DNS2.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DNS2.php 216 2013-10-28 04:24:17Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -72,7 +72,7 @@ class Net_DNS2
     /*
      * the current version of this library
      */
-    const VERSION = '1.3.2';
+    const VERSION = '1.4.1';
 
     /*
      * the default path to a resolv.conf file
@@ -128,7 +128,7 @@ class Net_DNS2
     /*
      * the max size of the cache file (in bytes)
      */
-    public $cache_size = 10000;
+    public $cache_size = 50000;
 
     /*
      * the method to use for storing cache data; either "serialize" or "json"
@@ -203,22 +203,35 @@ class Net_DNS2
 
     /*
      * the EDNS(0) UDP payload size to use when making DNSSEC requests
-     * see RFC 2671 section 6.2.3 for more details
+     * see RFC 4035 section 4.1 - EDNS Support.
      *
-     * http://tools.ietf.org/html/draft-ietf-dnsext-rfc2671bis-edns0-10
+     * there is some different ideas on the suggest size to supprt; but it seems to
+     * be "at least 1220 bytes, but SHOULD support 4000 bytes.
+     *
+     * we'll just support 4000
      *
      */
-    public $dnssec_payload_size = 1280;
+    public $dnssec_payload_size = 4000;
 
     /*
-     * local sockets
+     * the last exeception that was generated
      */
-    protected $sock = array('udp' => array(), 'tcp' => array());
+    public $last_exception = null;
+
+    /*
+     * the list of exceptions by name server
+     */
+    public $last_exception_list = array();
 
     /*
      * name server list
      */
-    protected $nameservers = array();
+    public $nameservers = array();
+
+    /*
+     * local sockets
+     */
+    protected $sock = array('udp' => array(), 'tcp' => array());
 
     /*
      * if the socket extension is loaded
@@ -240,11 +253,6 @@ class Net_DNS2
      */
     protected $use_cache = false;
 
-    /*
-     * the last erro message returned by the sockets class
-     */
-    private $_last_socket_error = '';
-
     /**
      * Constructor - base constructor for the Resolver and Updater
      *
@@ -257,9 +265,17 @@ class Net_DNS2
     public function __construct(array $options = null)
     {
         //
-        // check for the sockets extension
+        // check for the sockets extension; we no longer support the sockets library under 
+        // windows- there have been too many errors related to sockets under windows- 
+        // specifically inconsistent socket defines between versions of windows- 
         //
-        $this->sockets_enabled = extension_loaded('sockets');
+        // and since I can't seem to find a way to get the actual windows version, it 
+        // doesn't seem fixable in the code.
+        //
+        if ( (extension_loaded('sockets') == true) && (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') ) {
+
+            $this->sockets_enabled = true;
+        }
 
         //
         // load any options that were provided
@@ -360,6 +376,14 @@ class Net_DNS2
 
         } else {
 
+            //
+            // temporary list of name servers; do it this way rather than just 
+            // resetting the local nameservers value, just incase an exception 
+            // is thrown here; this way we might avoid ending up with an empty 
+            // namservers list.
+            //
+            $ns = array();
+
             //
             // check to see if the file is readable
             //
@@ -404,7 +428,7 @@ class Net_DNS2
                             || (self::isIPv6($value) == true)
                         ) {
 
-                            $this->nameservers[] = $value;
+                            $ns[] = $value;
                         } else {
 
                             throw new Net_DNS2_Exception(
@@ -443,8 +467,21 @@ class Net_DNS2
                     Net_DNS2_Lookups::E_NS_INVALID_FILE
                 );
             }
+
+            //
+            // store the name servers locally
+            //
+            if (count($ns) > 0) {
+                $this->nameservers = $ns;
+            }
         }
 
+        //
+        // remove any duplicates; not sure if we should bother with this- if people
+        // put duplicate name servers, who I am to stop them?
+        //
+        $this->nameservers = array_unique($this->nameservers);
+
         //
         // check the name servers
         //
@@ -606,11 +643,14 @@ class Net_DNS2
         }
 
         //
-        // only RSAMD5 and RSASHA1 are supported for SIG(0)
+        // only RSA algorithms are supported for SIG(0)
         //
         switch($this->auth_signature->algorithm) {
         case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSAMD5:
         case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA1:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA256:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA512:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_DSA:
             break;
         default:
             throw new Net_DNS2_Exception(
@@ -685,9 +725,7 @@ class Net_DNS2
         //
         if (extension_loaded('filter') == true) {
 
-            if (filter_var(
-                $_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4
-            ) == false) {
+            if (filter_var($_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) == false) {
                 return false;
             }
         } else {
@@ -702,10 +740,7 @@ class Net_DNS2
             //
             // then make sure we're not a IPv6 address
             //
-            if (preg_match(
-                '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', 
-                $_address
-            ) == 0) {
+            if (preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $_address) == 0) {
                 return false;
             }
         }
@@ -728,9 +763,7 @@ class Net_DNS2
         // use filter_var() if it's available; it's faster than preg
         //
         if (extension_loaded('filter') == true) {
-            if (filter_var(
-                $_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6
-            ) == false) {
+            if (filter_var($_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) == false) {
                 return false;
             }
         } else {
@@ -745,9 +778,7 @@ class Net_DNS2
             //
             // then make sure it doesn't match a IPv4 address
             //
-            if (preg_match(
-                '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $_address
-            ) == 1) {
+            if (preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $_address) == 1) {
                 return false;
             }
         }
@@ -848,372 +879,471 @@ class Net_DNS2
         //
         $response = null;
         $ns = '';
-        $socket_type = null;
-        $tcp_fallback = false;
 
         while (1) {
 
             //
             // grab the next DNS server
             //
-            if ($tcp_fallback == false) {
+            $ns = each($this->nameservers);
+            if ($ns === false) {
 
-                $ns = each($this->nameservers);
-                if ($ns === false) {
+                if (is_null($this->last_exception) == false) {
+
+                    throw $this->last_exception;
+                } else {
 
                     throw new Net_DNS2_Exception(
-                        'every name server provided has failed: ' . 
-                        $this->_last_socket_error,
+                        'every name server provided has failed',
                         Net_DNS2_Lookups::E_NS_FAILED
                     );
                 }
-
-                $ns = $ns[1];
             }
 
+            $ns = $ns[1];
+
             //
-            // if the use TCP flag (force TCP) is set, or the packet is bigger 
-            // than 512 bytes, use TCP for sending the packet
+            // if the use TCP flag (force TCP) is set, or the packet is bigger than our 
+            // max allowed UDP size- which is either 512, or if this is DNSSEC request,
+            // then whatever the configured dnssec_payload_size is.
             //
-            if ( ($use_tcp == true) 
-                || (strlen($data) > Net_DNS2_Lookups::DNS_MAX_UDP_SIZE) 
-                || ($tcp_fallback == true)
-            ) {
-                $tcp_fallback = false;
-                $socket_type = Net_DNS2_Socket::SOCK_STREAM;
-
-                //
-                // create the socket object
-                //
-                if ( (!isset($this->sock['tcp'][$ns])) 
-                    || (!($this->sock['tcp'][$ns] instanceof Net_DNS2_Socket)) 
-                ) {
-                    if ($this->sockets_enabled === true) {
-
-                        $this->sock['tcp'][$ns] = new Net_DNS2_Socket_Sockets(
-                            Net_DNS2_Socket::SOCK_STREAM, 
-                            $ns, 
-                            $this->dns_port, 
-                            $this->timeout
-                        );
-                    } else {
+            $max_udp_size = Net_DNS2_Lookups::DNS_MAX_UDP_SIZE;
+            if ($this->dnssec == true)
+            {
+                $max_udp_size = $this->dnssec_payload_size;
+            }
 
-                        $this->sock['tcp'][$ns] = new Net_DNS2_Socket_Streams(
-                            Net_DNS2_Socket::SOCK_STREAM, 
-                            $ns, 
-                            $this->dns_port, 
-                            $this->timeout
-                        );
-                    }
-                }
+            if ( ($use_tcp == true) || (strlen($data) > $max_udp_size) ) {
 
-                //
-                // if a local IP address / port is set, then add it
-                //
-                if (strlen($this->local_host) > 0) {
+                try
+                {
+                    $response = $this->sendTCPRequest($ns, $data, ($request->question[0]->qtype == 'AXFR') ? true : false);
 
-                    $this->sock['tcp'][$ns]->bindAddress(
-                        $this->local_host, $this->local_port
-                    );
-                }
+                } catch(Net_DNS2_Exception $e) {
 
-                //
-                // open it; if it fails, continue in the while loop
-                //
-                if ($this->sock['tcp'][$ns]->open() === false) {
+                    $this->last_exception = $e;
+                    $this->last_exception_list[$ns] = $e;
 
-                    $this->_last_socket_error = $this->sock['tcp'][$ns]->last_error;
                     continue;
                 }
 
-                //
-                // write the data to the socket; if it fails, continue on 
-                // the while loop
-                //
-                if ($this->sock['tcp'][$ns]->write($data) === false) {
+            //
+            // otherwise, send it using UDP
+            //
+            } else {
+
+                try
+                {
+                    $response = $this->sendUDPRequest($ns, $data);
+
+                    //
+                    // check the packet header for a trucated bit; if it was truncated,
+                    // then re-send the request as TCP.
+                    //
+                    if ($response->header->tc == 1) {
+
+                        $response = $this->sendTCPRequest($ns, $data);
+                    }
+
+                } catch(Net_DNS2_Exception $e) {
+
+                    $this->last_exception = $e;
+                    $this->last_exception_list[$ns] = $e;
 
-                    $this->_last_socket_error = $this->sock['tcp'][$ns]->last_error;
                     continue;
                 }
+            }
 
-                //
-                // read the content, using select to wait for a response
-                //
-                $size = 0;
-                $result = null;
+            //
+            // make sure header id's match between the request and response
+            //
+            if ($request->header->id != $response->header->id) {
 
-                //
-                // handle zone transfer requests differently than other requests.
-                //
-                if ($request->question[0]->qtype == 'AXFR') {
+                $this->last_exception = new Net_DNS2_Exception(
 
-                    $soa_count = 0;
+                    'invalid header: the request and response id do not match.',
+                    Net_DNS2_Lookups::E_HEADER_INVALID,
+                    null,
+                    $request,
+                    $response
+                );
 
-                    while (1) {
+                $this->last_exception_list[$ns] = $this->last_exception;
+                continue;
+            }
 
-                        //
-                        // read the data off the socket
-                        //
-                        $result = $this->sock['tcp'][$ns]->read($size);
-                        if ( ($result === false) 
-                            ||  ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE) 
-                        ) {
-                            $this->_last_socket_error = $this->sock['tcp'][$ns]->last_error;
-                            break;
-                        }
+            //
+            // make sure the response is actually a response
+            // 
+            // 0 = query, 1 = response
+            //
+            if ($response->header->qr != Net_DNS2_Lookups::QR_RESPONSE) {
+            
+                $this->last_exception = new Net_DNS2_Exception(
 
-                        //
-                        // parse the first chunk as a packet
-                        //
-                        $chunk = new Net_DNS2_Packet_Response($result, $size);
+                    'invalid header: the response provided is not a response packet.',
+                    Net_DNS2_Lookups::E_HEADER_INVALID,
+                    null,
+                    $request,
+                    $response
+                );
 
-                        //
-                        // if this is the first packet, then clone it directly, then
-                        // go through it to see if there are two SOA records 
-                        // (indicating that it's the only packet)
-                        //
-                        if (is_null($response) == true) {
-
-                            $response = clone $chunk;
-
-                            //
-                            // look for a failed response; if the zone transfer
-                            // failed, then we don't need to do anything else at this
-                            // point, and we should just break out.
-                            //
-                            if ($response->header->rcode != Net_DNS2_Lookups::RCODE_NOERROR) {
-                                break;
-                            }
-
-                            //
-                            // go through each answer
-                            //
-                            foreach ($response->answer as $index => $rr) {
-
-                                //
-                                // count the SOA records
-                                //
-                                if ($rr->type == 'SOA') {
-                                    $soa_count++;
-                                }
-                            }
-
-                            //
-                            // if we have 2 or more SOA records, then we're done; 
-                            // otherwise continue out so we read the rest of the 
-                            // packets off the socket
-                            //
-                            if ($soa_count >= 2) {
-                                break;
-                            } else {
-                                continue;
-                            }
+                $this->last_exception_list[$ns] = $this->last_exception;
+                continue;
+            }
 
-                        } else {
+            //
+            // make sure the response code in the header is ok
+            //
+            if ($response->header->rcode != Net_DNS2_Lookups::RCODE_NOERROR) {
+            
+                $this->last_exception = new Net_DNS2_Exception(
+                
+                    'DNS request failed: ' . 
+                    Net_DNS2_Lookups::$result_code_messages[$response->header->rcode],
+                    $response->header->rcode,
+                    null,
+                    $request,
+                    $response
+                );
 
-                            //
-                            // go through all these answers, and look for SOA records
-                            //
-                            foreach ($chunk->answer as $index => $rr) {
-
-                                //
-                                // count the number of SOA records we find
-                                //
-                                if ($rr->type == 'SOA') {
-                                    $soa_count++;
-                                }
-
-                                //
-                                // add the records to a single response object
-                                //
-                                $response->answer[] = $rr;
-                            }
-
-                            //
-                            // if we've found the second SOA record, we're done
-                            //
-                            if ($soa_count >= 2) {
-                                break;
-                            }
-                        }
-                    }
+                $this->last_exception_list[$ns] = $this->last_exception;
+                continue;
+            }
 
-                } else {
+            break;
+        }
 
-                    $result = $this->sock['tcp'][$ns]->read($size);
-                    if ( ($result === false) 
-                        ||  ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE) 
-                    ) {
-                        $this->_last_socket_error = $this->sock['tcp'][$ns]->last_error;
-                        continue;
-                    }
+        return $response;
+    }
 
-                    //
-                    // create the packet object
-                    //
-                    $response = new Net_DNS2_Packet_Response($result, $size);
-                }
+    /**
+     * sends a DNS request using TCP
+     *
+     * @param string  $_ns   the name server to use for the request
+     * @param string  $_data the raw DNS packet data
+     * @param boolean $_axfr if this is a zone transfer request
+     *
+     * @return Net_DNS2_Packet_Response the reponse object
+     * @throws Net_DNS2_Exception
+     * @access private
+     *
+     */
+    private function sendTCPRequest($_ns, $_data, $_axfr = false)
+    {
+        //
+        // grab the start time
+        //
+        $start_time = microtime(true);
 
-                break;
+        //
+        // see if we already have an open socket from a previous request; if so, try to use
+        // that instead of opening a new one.
+        //
+        if ( (!isset($this->sock['tcp'][$_ns]))
+            || (!($this->sock['tcp'][$_ns] instanceof Net_DNS2_Socket))
+        ) {
+
+            //
+            // if the socket library is available, then use that
+            //
+            if ($this->sockets_enabled === true) {
 
+                $this->sock['tcp'][$_ns] = new Net_DNS2_Socket_Sockets(
+                    Net_DNS2_Socket::SOCK_STREAM, $_ns, $this->dns_port, $this->timeout
+                );
+
+            //
+            // otherwise the streams library
+            //
             } else {
 
-                $socket_type = Net_DNS2_Socket::SOCK_DGRAM;
+                $this->sock['tcp'][$_ns] = new Net_DNS2_Socket_Streams(
+                    Net_DNS2_Socket::SOCK_STREAM, $_ns, $this->dns_port, $this->timeout
+                );
+            }
 
-                //
-                // create the socket object
-                //
-                if ( (!isset($this->sock['udp'][$ns])) 
-                    || (!($this->sock['udp'][$ns] instanceof Net_DNS2_Socket))
-                ) {
-                    if ($this->sockets_enabled === true) {
+            //
+            // if a local IP address / port is set, then add it
+            //
+            if (strlen($this->local_host) > 0) {
 
-                        $this->sock['udp'][$ns] = new Net_DNS2_Socket_Sockets(
-                            Net_DNS2_Socket::SOCK_DGRAM, $ns, $this->dns_port, $this->timeout
-                        );
-                    } else {
+                $this->sock['tcp'][$_ns]->bindAddress(
+                    $this->local_host, $this->local_port
+                );
+            }
 
-                        $this->sock['udp'][$ns] = new Net_DNS2_Socket_Streams(
-                            Net_DNS2_Socket::SOCK_DGRAM, $ns, $this->dns_port, $this->timeout
-                        );
-                    }
-                }            
+            //
+            // open the socket
+            //
+            if ($this->sock['tcp'][$_ns]->open() === false) {
+
+                throw new Net_DNS2_Exception(
+                    $this->sock['tcp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
+                );
+            }
+        }
+
+        //
+        // write the data to the socket; if it fails, continue on
+        // the while loop
+        //
+        if ($this->sock['tcp'][$_ns]->write($_data) === false) {
+
+            throw new Net_DNS2_Exception(
+                $this->sock['tcp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
+            );
+        }
+
+        //
+        // read the content, using select to wait for a response
+        //
+        $size = 0;
+        $result = null;
+        $response = null;
+
+        //
+        // handle zone transfer requests differently than other requests.
+        //
+        if ($_axfr == true) {
+
+            $soa_count = 0;
+
+            while (1) {
 
                 //
-                // if a local IP address / port is set, then add it
+                // read the data off the socket
                 //
-                if (strlen($this->local_host) > 0) {
+                $result = $this->sock['tcp'][$_ns]->read($size, ($this->dnssec == true) ? $this->dnssec_payload_size : Net_DNS2_Lookups::DNS_MAX_UDP_SIZE);
+                if ( ($result === false) || ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE) ) {
 
-                    $this->sock['udp'][$ns]->bindAddress(
-                        $this->local_host, $this->local_port
+                    throw new Net_DNS2_Exception(
+                        $this->sock['tcp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
                     );
                 }
 
                 //
-                // open it
+                // parse the first chunk as a packet
                 //
-                if ($this->sock['udp'][$ns]->open() === false) {
-
-                    $this->_last_socket_error = $this->sock['udp'][$ns]->last_error;
-                    continue;
-                }
+                $chunk = new Net_DNS2_Packet_Response($result, $size);
 
                 //
-                // write the data to the socket
+                // if this is the first packet, then clone it directly, then
+                // go through it to see if there are two SOA records
+                // (indicating that it's the only packet)
                 //
-                if ($this->sock['udp'][$ns]->write($data) === false) {
+                if (is_null($response) == true) {
 
-                    $this->_last_socket_error = $this->sock['udp'][$ns]->last_error;
-                    continue;
-                }
+                    $response = clone $chunk;
 
-                //
-                // read the content, using select to wait for a response
-                //
-                $size = 0;
+                    //
+                    // look for a failed response; if the zone transfer
+                    // failed, then we don't need to do anything else at this
+                    // point, and we should just break out.                 
+                    //
+                    if ($response->header->rcode != Net_DNS2_Lookups::RCODE_NOERROR) {
+                        break;
+                    }
 
-                $result = $this->sock['udp'][$ns]->read($size);
-                if (( $result === false) 
-                    || ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE)
-                ) {
-                    $this->_last_socket_error = $this->sock['udp'][$ns]->last_error;
-                    continue;
-                }
+                    //   
+                    // go through each answer
+                    //
+                    foreach ($response->answer as $index => $rr) {
 
-                //
-                // create the packet object
-                //
-                $response = new Net_DNS2_Packet_Response($result, $size);
-                if (is_null($response)) {
+                        //
+                        // count the SOA records
+                        //
+                        if ($rr->type == 'SOA') {
+                            $soa_count++;
+                        }
+                    }
 
-                    throw new Net_DNS2_Exception(
-                        'empty response object', 
-                        Net_DNS2_Lookups::E_NS_FAILED,
-                        null,
-                        $request
-                    );
-                }
+                    //
+                    // if we have 2 or more SOA records, then we're done;
+                    // otherwise continue out so we read the rest of the 
+                    // packets off the socket
+                    //
+                    if ($soa_count >= 2) {
+                        break;
+                    } else {
+                        continue;
+                    }
 
-                //
-                // check the packet header for a trucated bit; if it was truncated,
-                // then re-send the request as TCP.
-                //
-                if ($response->header->tc == 1) {
+                } else {
 
-                    $tcp_fallback = true;
-                    continue;
-                }
+                    //
+                    // go through all these answers, and look for SOA records
+                    //
+                    foreach ($chunk->answer as $index => $rr) {
+
+                        //
+                        // count the number of SOA records we find
+                        //
+                        if ($rr->type == 'SOA') {
+                            $soa_count++;           
+                        }
 
-                break;
+                        //
+                        // add the records to a single response object
+                        //
+                        $response->answer[] = $rr;                  
+                    }
+
+                    //
+                    // if we've found the second SOA record, we're done
+                    //
+                    if ($soa_count >= 2) {
+                        break;
+                    }
+                }
             }
-        }
 
         //
-        // if $response is null, then we didn't even try once; which shouldn't
-        // actually ever happen
+        // everything other than a AXFR
         //
-        if (is_null($response)) {
+        } else {
 
-            throw new Net_DNS2_Exception(
-                'empty response object', 
-                Net_DNS2_Lookups::E_NS_FAILED,
-                null,
-                $request
-            );
+            $result = $this->sock['tcp'][$_ns]->read($size, ($this->dnssec == true) ? $this->dnssec_payload_size : Net_DNS2_Lookups::DNS_MAX_UDP_SIZE);
+            if ( ($result === false) || ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE) ) {
+
+                throw new Net_DNS2_Exception(
+                    $this->sock['tcp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
+                );
+            }
+
+            //
+            // create the packet object
+            //
+            $response = new Net_DNS2_Packet_Response($result, $size);
         }
 
+        //
+        // store the query time
+        //
+        $response->response_time = microtime(true) - $start_time;
+
         //
         // add the name server that the response came from to the response object,
         // and the socket type that was used.
         //
-        $response->answer_from = $ns;
-        $response->answer_socket_type = $socket_type;
+        $response->answer_from = $_ns;
+        $response->answer_socket_type = Net_DNS2_Socket::SOCK_STREAM;
 
         //
-        // make sure header id's match between the request and response
+        // return the Net_DNS2_Packet_Response object
         //
-        if ($request->header->id != $response->header->id) {
+        return $response;
+    }
 
-            throw new Net_DNS2_Exception(
-                'invalid header: the request and response id do not match.',
-                Net_DNS2_Lookups::E_HEADER_INVALID,
-                null,
-                $request,
-                $response
-            );
+    /**
+     * sends a DNS request using UDP
+     *
+     * @param string  $_ns   the name server to use for the request
+     * @param string  $_data the raw DNS packet data
+     *
+     * @return Net_DNS2_Packet_Response the reponse object
+     * @throws Net_DNS2_Exception
+     * @access private
+     *
+     */
+    private function sendUDPRequest($_ns, $_data)
+    {
+        //
+        // grab the start time
+        //
+        $start_time = microtime(true);
+
+        //
+        // see if we already have an open socket from a previous request; if so, try to use
+        // that instead of opening a new one.
+        //
+        if ( (!isset($this->sock['udp'][$_ns]))
+            || (!($this->sock['udp'][$_ns] instanceof Net_DNS2_Socket))
+        ) {
+
+            //
+            // if the socket library is available, then use that
+            //
+            if ($this->sockets_enabled === true) {
+
+                $this->sock['udp'][$_ns] = new Net_DNS2_Socket_Sockets(
+                    Net_DNS2_Socket::SOCK_DGRAM, $_ns, $this->dns_port, $this->timeout
+                );
+
+            //
+            // otherwise the streams library
+            //
+            } else {
+
+                $this->sock['udp'][$_ns] = new Net_DNS2_Socket_Streams(
+                    Net_DNS2_Socket::SOCK_DGRAM, $_ns, $this->dns_port, $this->timeout
+                );
+            }
+
+            //
+            // if a local IP address / port is set, then add it
+            //
+            if (strlen($this->local_host) > 0) {
+
+                $this->sock['udp'][$_ns]->bindAddress(
+                    $this->local_host, $this->local_port
+                );
+            }
+
+            //
+            // open the socket
+            //
+            if ($this->sock['udp'][$_ns]->open() === false) {
+
+                throw new Net_DNS2_Exception(
+                    $this->sock['udp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
+                );
+            }
         }
 
         //
-        // make sure the response is actually a response
-        // 
-        // 0 = query, 1 = response
+        // write the data to the socket
         //
-        if ($response->header->qr != Net_DNS2_Lookups::QR_RESPONSE) {
+        if ($this->sock['udp'][$_ns]->write($_data) === false) {
 
             throw new Net_DNS2_Exception(
-                'invalid header: the response provided is not a response packet.',
-                Net_DNS2_Lookups::E_HEADER_INVALID,
-                null,
-                $request,
-                $response
+                $this->sock['udp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
             );
         }
 
         //
-        // make sure the response code in the header is ok
+        // read the content, using select to wait for a response
         //
-        if ($response->header->rcode != Net_DNS2_Lookups::RCODE_NOERROR) {
+        $size = 0;
+
+        $result = $this->sock['udp'][$_ns]->read($size, ($this->dnssec == true) ? $this->dnssec_payload_size : Net_DNS2_Lookups::DNS_MAX_UDP_SIZE);
+        if (( $result === false) || ($size < Net_DNS2_Lookups::DNS_HEADER_SIZE)) {
 
             throw new Net_DNS2_Exception(
-                'DNS request failed: ' . 
-                Net_DNS2_Lookups::$result_code_messages[$response->header->rcode],
-                $response->header->rcode,
-                null,
-                $request,
-                $response
+                $this->sock['udp'][$_ns]->last_error, Net_DNS2_Lookups::E_NS_SOCKET_FAILED
             );
         }
 
+        //
+        // create the packet object
+        //
+        $response = new Net_DNS2_Packet_Response($result, $size);
+
+        //
+        // store the query time
+        //
+        $response->response_time = microtime(true) - $start_time;
+
+        //
+        // add the name server that the response came from to the response object,
+        // and the socket type that was used.
+        //
+        $response->answer_from = $_ns;
+        $response->answer_socket_type = Net_DNS2_Socket::SOCK_DGRAM;
+
+        //
+        // return the Net_DNS2_Packet_Response object
+        //
         return $response;
     }
 }
diff --git a/Net_DNS2-1.3.2/Net/DNS2/BitMap.php b/Net_DNS2-1.4.1/Net/DNS2/BitMap.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/BitMap.php
rename to Net_DNS2-1.4.1/Net/DNS2/BitMap.php
index cdc0934a3432e9f7de869a0f59d1013cdd5c89bc..8b42649f2fe0270fd46e5a445c2ddf467e11e8a3 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/BitMap.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/BitMap.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: BitMap.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Cache.php b/Net_DNS2-1.4.1/Net/DNS2/Cache.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Cache.php
rename to Net_DNS2-1.4.1/Net/DNS2/Cache.php
index f27ce3831ce1ed4eb4a50d3d4a924c262a4f90ca..0fed5320c6fdcf93577b8a9c9709c61a8331185a 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Cache.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Cache.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Cache.php 218 2013-11-28 22:34:20Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.1.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Cache/File.php b/Net_DNS2-1.4.1/Net/DNS2/Cache/File.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/Cache/File.php
rename to Net_DNS2-1.4.1/Net/DNS2/Cache/File.php
index 0de797747b11841ccd490f106838b37e971bcb17..d9f7f560d936bfa74e328704a7ef220f60ef2cdc 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Cache/File.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Cache/File.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: File.php 160 2012-07-18 03:57:32Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.1.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Cache/Shm.php b/Net_DNS2-1.4.1/Net/DNS2/Cache/Shm.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Cache/Shm.php
rename to Net_DNS2-1.4.1/Net/DNS2/Cache/Shm.php
index 5737efe71708adce07ad0ec8076c7d9990c759e0..e3e905977deffbf8e8c7ccb87fb8e8ccaca7b11b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Cache/Shm.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Cache/Shm.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Shm.php 160 2012-07-18 03:57:32Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.1.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Exception.php b/Net_DNS2-1.4.1/Net/DNS2/Exception.php
similarity index 91%
rename from Net_DNS2-1.3.2/Net/DNS2/Exception.php
rename to Net_DNS2-1.4.1/Net/DNS2/Exception.php
index b3f809b7f73a39d35f231416de87dcfca48a018c..196223d168b07b58518c4f205c005f700d8b11b0 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Exception.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Exception.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Exception.php 197 2013-04-22 00:28:00Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  */
@@ -92,7 +92,17 @@ class Net_DNS2_Exception extends Exception
         //
         // call the parent constructor
         //
-        parent::__construct($message, $code, $previous);
+        // the "previous" argument was added in PHP 5.3.0
+        //
+        //      https://code.google.com/p/netdns2/issues/detail?id=25
+        //
+        if (version_compare(PHP_VERSION, '5.3.0', '>=') == true) {
+
+            parent::__construct($message, $code, $previous);
+        } else {
+
+            parent::__construct($message, $code);
+        }
     }
 
     /**
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Header.php b/Net_DNS2-1.4.1/Net/DNS2/Header.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Header.php
rename to Net_DNS2-1.4.1/Net/DNS2/Header.php
index 3831d75b55e0d40150de1d8673911d4cf21ae678..74ef6fdf6731175031a2050d404cf8b1ba0e1a5b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Header.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Header.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Header.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Lookups.php b/Net_DNS2-1.4.1/Net/DNS2/Lookups.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/Lookups.php
rename to Net_DNS2-1.4.1/Net/DNS2/Lookups.php
index be80a6c587e210b232e1e7fa8b76ef4824f5b744..242257ce6721f45c1a89b059c50afe4a5d663cfe 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Lookups.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Lookups.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Lookups.php 215 2013-10-28 04:20:36Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -168,6 +168,7 @@ class Net_DNS2_Lookups
     const E_NS_INVALID_FILE     = 200;
     const E_NS_INVALID_ENTRY    = 201;
     const E_NS_FAILED           = 202;
+    const E_NS_SOCKET_FAILED    = 203;
 
     const E_PACKET_INVALID      = 300;
     const E_PARSE_ERROR         = 301;
@@ -273,15 +274,18 @@ class Net_DNS2_Lookups
         'NSEC3PARAM'    => 51,      // RFC 5155
         'TLSA'          => 52,      // RFC 6698
 
-                                    // 52 - 54 unassigned
+                                    // 53 - 54 unassigned
 
         'HIP'           => 55,      // RFC 5205
         'NINFO'         => 56,      // Not implemented
         'RKEY'          => 57,      // Not implemented
-        'TALINK'        => 58,      // IETF (draft-barwood-dnsop-ds-publish-02)
-        'CDS'           => 59,      // IETF (draft-barwood-dnsop-ds-publish-02)
+        'TALINK'        => 58,      // 
+        'CDS'           => 59,      // RFC 7344
+        'CDNSKEY'       => 60,      // RFC 7344
+        'OPENPGPKEY'    => 61,      // IETF (draft-ietf-dane-openpgpkey)
+        'CSYNC'         => 62,      // RFC 7477
 
-                                    // 60 - 98 unassigned
+                                    // 63 - 98 unassigned
 
         'SPF'           => 99,      // RFC 4408
         'UINFO'         => 100,     // no RFC, Not implemented
@@ -383,6 +387,9 @@ class Net_DNS2_Lookups
         55          => 'Net_DNS2_RR_HIP',
         58          => 'Net_DNS2_RR_TALINK',
         59          => 'Net_DNS2_RR_CDS',
+        60          => 'Net_DNS2_RR_CDNSKEY',
+        61          => 'Net_DNS2_RR_OPENPGPKEY',
+        62          => 'Net_DNS2_RR_CSYNC',
         99          => 'Net_DNS2_RR_SPF',
         104         => 'Net_DNS2_RR_NID',
         105         => 'Net_DNS2_RR_L32',
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Packet.php b/Net_DNS2-1.4.1/Net/DNS2/Packet.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Packet.php
rename to Net_DNS2-1.4.1/Net/DNS2/Packet.php
index 359da89d4f6aa86538455c02e11ae4a36f7acc08..f3aacde8c608402d46f8d228b4bd1347284d246d 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Packet.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Packet.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Packet.php 218 2013-11-28 22:34:20Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Packet/Request.php b/Net_DNS2-1.4.1/Net/DNS2/Packet/Request.php
similarity index 89%
rename from Net_DNS2-1.3.2/Net/DNS2/Packet/Request.php
rename to Net_DNS2-1.4.1/Net/DNS2/Packet/Request.php
index 117fc7a98e03b5f1ec585a42d880dd6a80063056..2e013aeca7e668e71f3be72e281bafde7e1ba294 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Packet/Request.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Packet/Request.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Request.php 155 2012-05-06 23:45:23Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -104,9 +104,15 @@ class Net_DNS2_Packet_Request extends Net_DNS2_Packet
         //
         $q = new Net_DNS2_Question();
 
-        $name   = trim(strtolower($name), " \t\n\r\0\x0B.");
-        $type   = strtoupper(trim($type));
-        $class  = strtoupper(trim($class));
+        //
+        // allow queries directly to . for the root name servers
+        //
+        if ($name != '.') {
+            $name = trim(strtolower($name), " \t\n\r\0\x0B.");
+        }
+
+        $type = strtoupper(trim($type));
+        $class = strtoupper(trim($class));
 
         //
         // check that the input string has some data in it
@@ -139,12 +145,15 @@ class Net_DNS2_Packet_Request extends Net_DNS2_Packet
             );
         }
 
-        //
-        // if it's a PTR request for an IP address, then make sure we tack on 
-        // the arpa domain
-        //
         if ($type == 'PTR') {
 
+            //
+            // if it's a PTR request for an IP address, then make sure we tack on
+            // the arpa domain.
+            //
+            // there are other types of PTR requests, so if an IP adress doesn't match,
+            // then just let it flow through and assume it's a hostname
+            //
             if (Net_DNS2::isIPv4($name) == true) {
 
                 //
@@ -174,19 +183,6 @@ class Net_DNS2_Packet_Request extends Net_DNS2_Packet
                         Net_DNS2_Lookups::E_PACKET_INVALID
                     );
                 }
-
-            } else if (preg_match('/arpa$/', $name) == true) {
-
-                //
-                // an already formatted IPv4 or IPv6 address in the arpa domain
-                //
-
-            } else {
-
-                throw new Net_DNS2_Exception(
-                    'unsupported PTR value: ' . $name,
-                    Net_DNS2_Lookups::E_PACKET_INVALID
-                );
             }
         }
 
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Packet/Response.php b/Net_DNS2-1.4.1/Net/DNS2/Packet/Response.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/Packet/Response.php
rename to Net_DNS2-1.4.1/Net/DNS2/Packet/Response.php
index a2cd1f281cde12e6bd967586568f613dab43918d..604a43929bfef7df133a294394a1510e451daf6d 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Packet/Response.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Packet/Response.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Response.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -74,6 +74,11 @@ class Net_DNS2_Packet_Response extends Net_DNS2_Packet
      */
     public $answer_socket_type;
 
+    /*
+     * The query response time in microseconds
+     */
+    public $response_time = 0;
+
     /**
      * Constructor - builds a new Net_DNS2_Packet_Response object
      *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/PrivateKey.php b/Net_DNS2-1.4.1/Net/DNS2/PrivateKey.php
similarity index 94%
rename from Net_DNS2-1.3.2/Net/DNS2/PrivateKey.php
rename to Net_DNS2-1.4.1/Net/DNS2/PrivateKey.php
index 1dca1ce6d225237e48d74d72aca667107391c6ee..35ac58bcce06a72c1b342a7f9130134354e66a76 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/PrivateKey.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/PrivateKey.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: PrivateKey.php 133 2011-12-03 23:42:24Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.1.0
  *
@@ -134,27 +134,27 @@ class Net_DNS2_PrivateKey
     /*
      * DSA: prime
      */
-    //private $_prime;
+    public $prime;
     
     /*
      * DSA: subprime
      */
-    //private $_subprime;
+    public $subprime;
 
     /*
      * DSA: base
      */
-    //private $_base;
+    public $base;
 
     /*
      * DSA: private value
      */
-    //private $_private_value;
+    public $private_value;
 
     /*
      * DSA: public value
      */
-    //private $_public_value;
+    public $public_value;
 
     /**
      * Constructor - base constructor the private key container class
@@ -308,26 +308,26 @@ class Net_DNS2_PrivateKey
             //
             // DSA - this won't work in PHP until the OpenSSL extension is better
             //
-            /*case 'prime(p)':
-                $this->_prime = $value;
+            case 'prime(p)':
+                $this->prime = $value;
                 break;
 
             case 'subprime(q)':
-                $this->_subprime = $value;
+                $this->subprime = $value;
                 break;
 
             case 'base(g)':
-                $this->_base = $value;
+                $this->base = $value;
                 break;
 
             case 'private_value(x)':
-                $this->_private_value = $value;
+                $this->private_value = $value;
                 break;
 
             case 'public_value(y)':
-                $this->_public_value = $value;
+                $this->public_value = $value;
                 break;
-            */
+
             default:
                 throw new Net_DNS2_Exception(
                     'unknown private key data: ' . $key . ': ' . $value,
@@ -348,6 +348,8 @@ class Net_DNS2_PrivateKey
         //
         case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSAMD5:
         case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA1:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA256:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA512:
 
             $args = array(
 
@@ -369,22 +371,22 @@ class Net_DNS2_PrivateKey
         //
         // DSA - this won't work in PHP until the OpenSSL extension is better
         //
-        /*case Net_DNS2_Lookups::DNSSEC_ALGORITHM_DSA:
+        case Net_DNS2_Lookups::DNSSEC_ALGORITHM_DSA:
 
             $args = array(
 
                 'dsa' => array(
 
-                    'p'                 => base64_decode($this->_prime),
-                    'q'                 => base64_decode($this->_subprime),
-                    'g'                 => base64_decode($this->_base),
-                    'priv_key'          => base64_decode($this->_private_value),
-                    'pub_key'           => base64_decode($this->_public_value)
+                    'p'                 => base64_decode($this->prime),
+                    'q'                 => base64_decode($this->subprime),
+                    'g'                 => base64_decode($this->base),
+                    'priv_key'          => base64_decode($this->private_value),
+                    'pub_key'           => base64_decode($this->public_value)
                 )
             );
 
             break;
-        */
+
         default:
             throw new Net_DNS2_Exception(
                 'we only currently support RSAMD5 and RSASHA1 encryption.',
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Question.php b/Net_DNS2-1.4.1/Net/DNS2/Question.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Question.php
rename to Net_DNS2-1.4.1/Net/DNS2/Question.php
index ddae4607b85b84a65f4be5528864efb421883f4b..f1fd6ff00bd9ba261f39ffaf41d18404431f18c0 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Question.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Question.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Question.php 124 2011-12-02 23:23:15Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR.php b/Net_DNS2-1.4.1/Net/DNS2/RR.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR.php
index 55ee7f70a1faba8401dfee7f7aeee97351e686a3..b507772936feb31de06acb8685de3a7f8982898b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: RR.php 188 2013-03-31 01:25:46Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/A.php b/Net_DNS2-1.4.1/Net/DNS2/RR/A.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/A.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/A.php
index f8a0554615bb2b5bdd80d171a347123633ba0646..0e8ed33f677e3e1a158142701f9dc77ea0b2631b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/A.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/A.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: A.php 113 2011-07-25 02:54:19Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/AAAA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/AAAA.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/AAAA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/AAAA.php
index 86c15155d6d3308bf29dd818da921ff1ab92a011..df81370f77d2211b7dde23364e63bcb436ac3ed6 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/AAAA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/AAAA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: AAAA.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/AFSDB.php b/Net_DNS2-1.4.1/Net/DNS2/RR/AFSDB.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/AFSDB.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/AFSDB.php
index 0117a9a09d9372fe3d59ed4268ff8fe9202351f4..724f87f8e863fdde13da9dc0fa95a1c22b7ac66e 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/AFSDB.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/AFSDB.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: AFSDB.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/ANY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/ANY.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/ANY.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/ANY.php
index 915324058ec575cbb18868216181b7345f2fdd5d..617bb3e9f9f7231452e120a3931023a6fb0276dc 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/ANY.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/ANY.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: ANY.php 47 2010-10-24 23:53:08Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/APL.php b/Net_DNS2-1.4.1/Net/DNS2/RR/APL.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/APL.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/APL.php
index da323f86dd72d4c74739fbb01cbdbb048e29f5bb..1584210417d52a6d1b7198d77a43ae01527dda21 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/APL.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/APL.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: APL.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.0.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/ATMA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/ATMA.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/ATMA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/ATMA.php
index d9e51b0e7ed9b08278bd8d4f16b0664e7c3c68bc..4eeca9f10eef05e106aa5db35cb7e4167376870c 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/ATMA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/ATMA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: ATMA.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.1.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/CAA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CAA.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/CAA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/CAA.php
index 81d3601b4eccaf79d26fab407c042adb4cf646a0..05cfba185b2e22a8039b04cbf300535ca561f0ce 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/CAA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CAA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: CAA.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.0
  *
diff --git a/Net_DNS2-1.4.1/Net/DNS2/RR/CDNSKEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CDNSKEY.php
new file mode 100644
index 0000000000000000000000000000000000000000..d3b331c8d7c73b2a8160074f8ce8fe5c1d8efaa9
--- /dev/null
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CDNSKEY.php
@@ -0,0 +1,77 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates. 
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2014, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors 
+ *     may be used to endorse or promote products derived from this 
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2014 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.4.0
+ *
+ */
+
+/**
+ * The CDNSKEY RR is implemented exactly like the DNSKEY record, so
+ * for now we just extend the DNSKEY RR and use it.
+ *
+ * http://www.rfc-editor.org/rfc/rfc7344.txt
+ *
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ * @see      Net_DNS2_RR
+ *
+ */
+class Net_DNS2_RR_CDNSKEY extends Net_DNS2_RR_DNSKEY
+{
+}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * End:
+ */
+?>
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/CDS.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CDS.php
similarity index 95%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/CDS.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/CDS.php
index c9a08adc25252bcd56735e25e48c227c30689401..4f24367d073b215be41e56f6293647d4600886c7 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/CDS.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CDS.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: CDS.php 130 2011-12-03 05:02:37Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.0
  *
@@ -53,7 +53,7 @@
  * The CDS RR is implemented exactly like the DS record, so
  * for now we just extend the DS RR and use it.
  *
- * http://tools.ietf.org/html/draft-barwood-dnsop-ds-publish-02
+ * http://www.rfc-editor.org/rfc/rfc7344.txt
  *
  * @category Networking
  * @package  Net_DNS2
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/CERT.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CERT.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/CERT.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/CERT.php
index 7f3773e382b6bdb7d5645cd51628a53454e3668f..c674831066c6069af7f96b48366ca9a9878fc024 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/CERT.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CERT.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: CERT.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/CNAME.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CNAME.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/CNAME.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/CNAME.php
index 7241f584145dc63680e2856f2d298278ead0e28a..fcd37917f65201d288d19a77c36ffc050e0a9442 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/CNAME.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CNAME.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: CNAME.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.4.1/Net/DNS2/RR/CSYNC.php b/Net_DNS2-1.4.1/Net/DNS2/RR/CSYNC.php
new file mode 100644
index 0000000000000000000000000000000000000000..c19929b10dbfa8440f4990f2752588a25a9fe9b2
--- /dev/null
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/CSYNC.php
@@ -0,0 +1,203 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates. 
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2015, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors 
+ *     may be used to endorse or promote products derived from this 
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2015 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.4.1
+ *
+ */
+
+/**
+ * CSYNC Resource Record - RFC 7477 seciond 2.1.1
+ *
+ *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *    |                  SOA Serial                   |
+ *    |                                               |
+ *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *    |                    Flags                      |
+ *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *    /                 Type Bit Map                  /
+ *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ * @see      Net_DNS2_RR
+ *
+ */
+class Net_DNS2_RR_CSYNC extends Net_DNS2_RR
+{
+    /*
+     * serial number
+     */
+    public $serial;
+
+    /*
+     * flags
+     */
+    public $flags;
+
+    /*
+     * array of RR type names
+     */
+    public $type_bit_maps = array();
+
+    /**
+     * method to return the rdata portion of the packet as a string
+     *
+     * @return  string
+     * @access  protected
+     *
+     */
+    protected function rrToString()
+    {
+        $out = $this->serial . ' ' . $this->flags;
+
+        //
+        // show the RR's
+        //
+        foreach ($this->type_bit_maps as $rr) {
+
+            $out .= ' ' . strtoupper($rr);
+        }
+
+        return $out;
+    }
+
+    /**
+     * parses the rdata portion from a standard DNS config line
+     *
+     * @param array $rdata a string split line of values for the rdata
+     *
+     * @return boolean
+     * @access protected
+     *
+     */
+    protected function rrFromString(array $rdata)
+    {
+        $this->serial   = array_shift($rdata);
+        $this->flags    = array_shift($rdata);
+
+        $this->type_bit_maps = $rdata;
+
+        return true;
+    }
+
+    /**
+     * parses the rdata of the Net_DNS2_Packet object
+     *
+     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
+     *
+     * @return boolean
+     * @access protected
+     *
+     */
+    protected function rrSet(Net_DNS2_Packet &$packet)
+    {
+        if ($this->rdlength > 0) {
+
+            //
+            // unpack the serial and flags values
+            //
+            $x = unpack('@' . $packet->offset . '/Nserial/nflags', $packet->rdata);
+
+            $this->serial   = Net_DNS2::expandUint32($x['serial']);
+            $this->flags    = $x['flags'];
+
+            //
+            // parse out the RR bitmap                 
+            //
+            $this->type_bit_maps = Net_DNS2_BitMap::bitMapToArray(
+                substr($this->rdata, 6)
+            );
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * returns the rdata portion of the DNS packet
+     *
+     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
+     *                                 compressed names
+     *
+     * @return mixed                   either returns a binary packed
+     *                                 string or null on failure
+     * @access protected
+     *
+     */
+    protected function rrGet(Net_DNS2_Packet &$packet)
+    {
+        //
+        // pack the serial and flags values
+        //
+        $data = pack('Nn', $this->serial, $this->flags);
+
+        //
+        // convert the array of RR names to a type bitmap
+        //
+        $data .= Net_DNS2_BitMap::arrayToBitMap($this->type_bit_maps);
+
+        //
+        // advance the offset
+        //
+        $packet->offset += strlen($data);
+
+        return $data;
+    }
+}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * End:
+ */
+?>
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/DHCID.php b/Net_DNS2-1.4.1/Net/DNS2/RR/DHCID.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/DHCID.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/DHCID.php
index 521880b8cf05b24c1bcd8cb9c3744b32b230993d..5c9d65cd72036ae54f0efa2506ec278bbe4a772d 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/DHCID.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/DHCID.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DHCID.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/DLV.php b/Net_DNS2-1.4.1/Net/DNS2/RR/DLV.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/DLV.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/DLV.php
index bb235c2024d2ffed3198793620936118b88c6bd1..d362e78a72bc27f0a3280dd22d968363a0245130 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/DLV.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/DLV.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DLV.php 47 2010-10-24 23:53:08Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/DNAME.php b/Net_DNS2-1.4.1/Net/DNS2/RR/DNAME.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/DNAME.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/DNAME.php
index f5c631d82565221a2630cd9754851f96b337d698..139b211cdcf4b673756c1290260d7bcf532d1a07 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/DNAME.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/DNAME.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DNAME.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/DNSKEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/DNSKEY.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/DNSKEY.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/DNSKEY.php
index d1c08a1e264b5b5c534977c822b1f7cd678e239b..db79205fa75d7be7612396609b5fdec5c7397636 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/DNSKEY.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/DNSKEY.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DNSKEY.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/DS.php b/Net_DNS2-1.4.1/Net/DNS2/RR/DS.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/DS.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/DS.php
index 407828ed6e973c8c9320a7312d546fecb82930c5..4914c69222c242ee61b363b68c8a43ce6ab9c007 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/DS.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/DS.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: DS.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/EID.php b/Net_DNS2-1.4.1/Net/DNS2/RR/EID.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/EID.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/EID.php
index 17cf8fc27cd7dfe9c0f009fa558d499b3b0d922c..6bc0e4a364b16fad5e4e10a171815407768e10c0 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/EID.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/EID.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: EID.php 125 2011-12-03 00:19:49Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/EUI48.php b/Net_DNS2-1.4.1/Net/DNS2/RR/EUI48.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/EUI48.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/EUI48.php
index bc5dd3ac3d3be01533c3717929ebad3fc9913a6d..7c296d20009574090861f38a5cdcfe31fc5ec21f 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/EUI48.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/EUI48.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: EUI48.php 215 2013-10-28 04:20:36Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.2
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/EUI64.php b/Net_DNS2-1.4.1/Net/DNS2/RR/EUI64.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/EUI64.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/EUI64.php
index 8ce4f62c7f1e43efafbf74d8597d77fb40253ece..4323ccadfcdc335a61edbec70601c51641881bd2 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/EUI64.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/EUI64.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: EUI64.php 215 2013-10-28 04:20:36Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.2
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/HINFO.php b/Net_DNS2-1.4.1/Net/DNS2/RR/HINFO.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/HINFO.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/HINFO.php
index 355ec90839cd1ac45052ea5c7637e97b896660d5..e2faf2ced0d79c20d73758341cc15427bd1dfaef 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/HINFO.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/HINFO.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: HINFO.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/HIP.php b/Net_DNS2-1.4.1/Net/DNS2/RR/HIP.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/HIP.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/HIP.php
index 8c0b80be45b078d097011b77cd708b465c9d05a8..4beb95eed5e59d21ef3e17d5016584ae145cb471 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/HIP.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/HIP.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: HIP.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.0.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/IPSECKEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/IPSECKEY.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/IPSECKEY.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/IPSECKEY.php
index 76a4c7fb247c4d10a6b24b4c46132b5db7f70a23..a56d1a64e466409277c6258e97ceb62d6a96270a 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/IPSECKEY.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/IPSECKEY.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: IPSECKEY.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/ISDN.php b/Net_DNS2-1.4.1/Net/DNS2/RR/ISDN.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/ISDN.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/ISDN.php
index 94db77a68deeff5b0b68cccb27e74b8bda77cc08..17b3eb314c1e544569d88738f869bc62b287a0ac 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/ISDN.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/ISDN.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: ISDN.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/KEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/KEY.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/KEY.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/KEY.php
index 6bcb0f596cbe6700cf12646c8575792fb03da634..4c1a3747c7d3314ef3e99f071b55e923930f35d1 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/KEY.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/KEY.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: KEY.php 47 2010-10-24 23:53:08Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/KX.php b/Net_DNS2-1.4.1/Net/DNS2/RR/KX.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/KX.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/KX.php
index 0218c390c2fce8f3f0a93526d76623609875250f..9b90fc7f47fe4ac80eabead516a0c6c1195d0fd0 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/KX.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/KX.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: KX.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/L32.php b/Net_DNS2-1.4.1/Net/DNS2/RR/L32.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/L32.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/L32.php
index b26d7cb9f0c6ba81f6f4ee717cda542a23509fac..db4a10cd721ba33a4013164f3ed88b564ad37039 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/L32.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/L32.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: L32.php 207 2013-06-13 01:19:55Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.1
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/L64.php b/Net_DNS2-1.4.1/Net/DNS2/RR/L64.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/L64.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/L64.php
index 900b433457b39987b97622d667297c6216f0e4eb..26931964b5f6823f335ec8c210c1f0229f0e62c8 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/L64.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/L64.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: L64.php 208 2013-06-13 01:22:36Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.1
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/LOC.php b/Net_DNS2-1.4.1/Net/DNS2/RR/LOC.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/LOC.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/LOC.php
index 7afd2fabb8d77c39422a5a3c4adb390e74ba8339..85ab0765414689e74237bf2bd4b718f0b3d2ab3a 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/LOC.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/LOC.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: LOC.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/LP.php b/Net_DNS2-1.4.1/Net/DNS2/RR/LP.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/LP.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/LP.php
index 7c5356c09bcde506d15de72b2916f48647b267d2..f1dc4fa672a539c8b714ba42f3efbf99a8051f5f 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/LP.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/LP.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: LP.php 207 2013-06-13 01:19:55Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.1
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/MX.php b/Net_DNS2-1.4.1/Net/DNS2/RR/MX.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/MX.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/MX.php
index d75af38dff2974461aa4d000909b4241029bdc56..fad09b91cae595a25cb7559cf22160ecb12094a4 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/MX.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/MX.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: MX.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NAPTR.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NAPTR.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NAPTR.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NAPTR.php
index d05d9da55c3b8686399a55a071334e6f8bc72238..37e3d5eb8e1da27f578972728a8e0ff71ea31e20 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NAPTR.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NAPTR.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NAPTR.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NID.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NID.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NID.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NID.php
index ed4463de5b4f8cd4ffd30edf5e6b96f644abbe7f..f01c504cf07a596ed1d84e12158ee7ffe8207e0b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NID.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NID.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2013 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NID.php 208 2013-06-13 01:22:36Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.3.1
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NIMLOC.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NIMLOC.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NIMLOC.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NIMLOC.php
index 70c421975f96d8eb07bfbd8276ccbb50ea7f1b17..fdc14a625f47c8ec2dfea8e9cea25ecc768f6e3b 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NIMLOC.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NIMLOC.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NIMLOC.php 125 2011-12-03 00:19:49Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NS.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NS.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NS.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NS.php
index 3d006872a0760fdd13ac157ff661d38ccb3e279c..490fb75c8256615a6e1e30c242e55a8e4bbd2002 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NS.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NS.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NS.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NSAP.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NSAP.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NSAP.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NSAP.php
index 4413ebcec50d674298ad9e18fac0f85ff97f1406..b2b433acb56919ba5d336c456fa2ef52cefed460 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NSAP.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NSAP.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NSAP.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NSEC.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NSEC.php
index d87d525423713664aae43371ed35dcbc755fdd73..0559641c1dcf122a94bde049038fb24cbb49e6b4 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NSEC.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3.php
index 71dc028cb5150eceaafcbf4e9b5bd215f9aad833..ff0a678be002c200884345c3427e1ab30da05d53 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NSEC3.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3PARAM.php b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3PARAM.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3PARAM.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3PARAM.php
index 9a67c628081cdd53665f9f583cc46fa650518f1d..f16e7ae312dee892d64eba1823e83d33f37e5a57 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/NSEC3PARAM.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/NSEC3PARAM.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: NSEC3PARAM.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.4.1/Net/DNS2/RR/OPENPGPKEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/OPENPGPKEY.php
new file mode 100644
index 0000000000000000000000000000000000000000..c77db1ccddf421bb67a2c2b4925f235fa3365d04
--- /dev/null
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/OPENPGPKEY.php
@@ -0,0 +1,159 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates. 
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2014, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors 
+ *     may be used to endorse or promote products derived from this 
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2014 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.4.0
+ *
+ */
+
+/**
+ * OPENPGPKEY Resource Record - https://tools.ietf.org/html/draft-ietf-dane-openpgpkey-01
+ *
+ *    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *   /                                                               /
+ *   /                  OpenPGP Public KeyRing                       /
+ *   /                                                               /
+ *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ * @see      Net_DNS2_RR
+ *
+ */
+class Net_DNS2_RR_OPENPGPKEY extends Net_DNS2_RR
+{
+    /*
+     * the public key
+     */
+    public $key;
+
+    /**
+     * method to return the rdata portion of the packet as a string
+     *
+     * @return  string
+     * @access  protected
+     *
+     */
+    protected function rrToString()
+    {
+        return $this->key;
+    }
+
+    /**
+     * parses the rdata portion from a standard DNS config line
+     *
+     * @param array $rdata a string split line of values for the rdata
+     *
+     * @return boolean
+     * @access protected
+     *
+     */
+    protected function rrFromString(array $rdata)
+    {
+        $this->key = array_shift($rdata);
+
+        return true;
+    }
+
+    /**
+     * parses the rdata of the Net_DNS2_Packet object
+     *
+     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
+     *
+     * @return boolean
+     * @access protected
+     *
+     */
+    protected function rrSet(Net_DNS2_Packet &$packet)
+    {
+        if ($this->rdlength > 0) {
+
+            $this->key = base64_encode($this->rdata);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * returns the rdata portion of the DNS packet
+     *
+     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
+     *                                 compressed names
+     *
+     * @return mixed                   either returns a binary packed
+     *                                 string or null on failure
+     * @access protected
+     *
+     */
+    protected function rrGet(Net_DNS2_Packet &$packet)
+    {
+        if (strlen($this->key) > 0) {
+
+            $data = base64_decode($this->key);
+
+            $packet->offset += strlen($data);
+
+            return $data;
+        }
+        
+        return null;
+    }
+}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * End:
+ */
+?>
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/OPT.php b/Net_DNS2-1.4.1/Net/DNS2/RR/OPT.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/OPT.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/OPT.php
index 37422d689f07616071d66bfd1762abf00b85ec83..70c5fcc2581ee35bae13a8f755abfba1f00cae20 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/OPT.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/OPT.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: OPT.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.0.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/PTR.php b/Net_DNS2-1.4.1/Net/DNS2/RR/PTR.php
similarity index 95%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/PTR.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/PTR.php
index cc0b90e782dbf543f43833400ee0a7babc16bfcf..6926d77a8ce43c571fdc77c9a72d95f2fe7a80e2 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/PTR.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/PTR.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: PTR.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -80,7 +80,7 @@ class Net_DNS2_RR_PTR extends Net_DNS2_RR
      */
     protected function rrToString()
     {
-        return $this->cleanString($this->ptrdname) . '.';
+        return rtrim($this->ptrdname, '.') . '.';
     }
 
     /**
@@ -94,7 +94,7 @@ class Net_DNS2_RR_PTR extends Net_DNS2_RR
      */
     protected function rrFromString(array $rdata)
     {
-        $this->ptrdname = $this->cleanString(array_shift($rdata));
+        $this->ptrdname = rtrim(implode(' ', $rdata), '.');
         return true;
     }
 
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/PX.php b/Net_DNS2-1.4.1/Net/DNS2/RR/PX.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/PX.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/PX.php
index 143b8e879d1e5af4d548127148d7fa3fc678ee3a..ae4f05ecc9976866787ee6a8634d048ca38b45e7 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/PX.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/PX.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: PX.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/RP.php b/Net_DNS2-1.4.1/Net/DNS2/RR/RP.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/RP.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/RP.php
index f0b97b7ab968a4923ad0a4c7129b407967289b44..b3fae4e3af4fdaa4c3cade5b609f305ce19b5114 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/RP.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/RP.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: RP.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/RRSIG.php b/Net_DNS2-1.4.1/Net/DNS2/RR/RRSIG.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/RRSIG.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/RRSIG.php
index 6f9aa276e24664607c3ec5db2c5b73725c2a488b..0997aff0da56e0be3ebfc0f44675e76d0675d045 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/RRSIG.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/RRSIG.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: RRSIG.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/RT.php b/Net_DNS2-1.4.1/Net/DNS2/RR/RT.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/RT.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/RT.php
index afbe966951cbb5295c20db024c8a96d35fcecbf7..6128381e5b362f8bb67d90bf79e8a8e56942f67d 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/RT.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/RT.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: RT.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/SIG.php b/Net_DNS2-1.4.1/Net/DNS2/RR/SIG.php
similarity index 89%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/SIG.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/SIG.php
index 4d6202066d0c6ecd425e02c4f8e76fc94c9d13a8..b887a8eba7cc649c1f94d49513a9341b829b1d47 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/SIG.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/SIG.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: SIG.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -362,18 +362,44 @@ class Net_DNS2_RR_SIG extends Net_DNS2_RR
 
                 $algorithm = OPENSSL_ALGO_SHA1;
                 break;
+
+            //
+            // SHA256 (PHP 5.4.8 or higher)
+            //
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA256:
+
+                if (version_compare(PHP_VERSION, '5.4.8', '<') == true) {
+
+                    throw new Net_DNS2_Exception(
+                        'SHA256 support is only available in PHP >= 5.4.8',
+                        Net_DNS2_Lookups::E_OPENSSL_INV_ALGO
+                    );
+                }
+
+                $algorithm = OPENSSL_ALGO_SHA256;
+                break;
+
+            //
+            // SHA512 (PHP 5.4.8 or higher)
+            //
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA512:
+
+                if (version_compare(PHP_VERSION, '5.4.8', '<') == true) {
+
+                    throw new Net_DNS2_Exception(
+                        'SHA512 support is only available in PHP >= 5.4.8',
+                        Net_DNS2_Lookups::E_OPENSSL_INV_ALGO
+                    );
+                }
+
+                $algorithm = OPENSSL_ALGO_SHA512;
+                break;
         
             //
-            // un-supported
+            // unsupported at the moment
             //
             case Net_DNS2_Lookups::DNSSEC_ALGORITHM_DSA:
-                //
-                // DSA won't work in PHP until the OpenSSL extension has 
-                // better DSA support
-                //
             case Net_DNS2_Lookups::DSNSEC_ALGORITHM_RSASHA1NSEC3SHA1:
-            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA256:
-            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA512:
             case Net_DNS2_Lookups::DNSSEC_ALGORITHM_DSANSEC3SHA1:            
             default:
                 throw new Net_DNS2_Exception(
@@ -386,9 +412,7 @@ class Net_DNS2_RR_SIG extends Net_DNS2_RR
             //
             // sign the data
             //
-            if (openssl_sign(
-                $sigdata, $this->signature, $this->private_key->instance, $algorithm
-            ) == false) {
+            if (openssl_sign($sigdata, $this->signature, $this->private_key->instance, $algorithm) == false) {
 
                 throw new Net_DNS2_Exception(
                     openssl_error_string(), 
@@ -397,9 +421,21 @@ class Net_DNS2_RR_SIG extends Net_DNS2_RR
             }
 
             //
-            // add it locally encoded
+            // build the signature value based
+            //
+            switch($this->algorithm) {
+
+            //
+            // RSA- add it directly
             //
-            $this->signature = base64_encode($this->signature);
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSAMD5:
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA1:
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA256:
+            case Net_DNS2_Lookups::DNSSEC_ALGORITHM_RSASHA512:
+
+                $this->signature = base64_encode($this->signature);
+                break;
+            }
         }
 
         //
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/SOA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/SOA.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/SOA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/SOA.php
index 5f92f87407e01f148e34ebe4a58d9e5aababa375..0a3d6e0338cb5d5f205ed0353010301ea3d6be8c 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/SOA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/SOA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: SOA.php 149 2012-03-02 01:08:19Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/SPF.php b/Net_DNS2-1.4.1/Net/DNS2/RR/SPF.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/SPF.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/SPF.php
index 751d93ac808dedf27a01c9e57915c298150532ce..fca447798d010084cc6e40443bc74bb0efa985f5 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/SPF.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/SPF.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: SPF.php 47 2010-10-24 23:53:08Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/SRV.php b/Net_DNS2-1.4.1/Net/DNS2/RR/SRV.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/SRV.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/SRV.php
index 616be99441059adea75f4d5078ea82d69d5e43f0..3792381016e4ea435c19a46b57e35920d71fce45 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/SRV.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/SRV.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: SRV.php 127 2011-12-03 03:29:39Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/SSHFP.php b/Net_DNS2-1.4.1/Net/DNS2/RR/SSHFP.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/SSHFP.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/SSHFP.php
index 13022a6b87bca94252108a285d0524b58484c141..09c0dbcbdcc1a9957f2bf6b557fde7ce9381ee22 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/SSHFP.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/SSHFP.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: SSHFP.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TA.php
similarity index 97%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TA.php
index 0253dbe52099ffc4826a1762ed626cc8fc8c34b9..da59750ce55682578fa14b3ebe0c64cff57eb922 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TA.php 130 2011-12-03 05:02:37Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TALINK.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TALINK.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TALINK.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TALINK.php
index 33e938c5144d76caed2903478ae4f4499fe35456..dfb967355b17cf745836d06f2daead3892e5bb91 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TALINK.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TALINK.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TALINK.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TKEY.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TKEY.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TKEY.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TKEY.php
index 115b8bb39ac8fbed242bfce044519686dce6e13c..31c08cd998dce8e2349c2fb8b3ad6705de7199de 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TKEY.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TKEY.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TKEY.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TLSA.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TLSA.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TLSA.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TLSA.php
index 5eba7b5b19dc4a2909804c8fda0f6a2bbf330963..d3ed74dc24015ee14c14ff5d02709e20290c6f01 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TLSA.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TLSA.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2012 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TLSA.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.5
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TSIG.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TSIG.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TSIG.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TSIG.php
index 472107585b3c5cb27d63c9223088dbb8dcc27298..9366da869564c5bf9fea3afc5e417b14c180cb6e 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TSIG.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TSIG.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TSIG.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/TXT.php b/Net_DNS2-1.4.1/Net/DNS2/RR/TXT.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/TXT.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/TXT.php
index 3e86ce7e35415818a726e4b0da8372fcac930a93..bd106c0377fb0ae04e3261eaafe74ad5d4091450 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/TXT.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/TXT.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: TXT.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/URI.php b/Net_DNS2-1.4.1/Net/DNS2/RR/URI.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/URI.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/URI.php
index aef788b823d8be9e641d0ac041b4b89ee6fcf09e..7c21ec9a58d187541789abd8016299f218718c5f 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/URI.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/URI.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2011 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: URI.php 132 2011-12-03 05:28:54Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.2.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/WKS.php b/Net_DNS2-1.4.1/Net/DNS2/RR/WKS.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/WKS.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/WKS.php
index 437eb52ed7c09708dad044d74bf810d2616d626c..a954368a0a3c3d6c2469c47395b55b756c7af738 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/WKS.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/WKS.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: WKS.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 1.0.1
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/RR/X25.php b/Net_DNS2-1.4.1/Net/DNS2/RR/X25.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/RR/X25.php
rename to Net_DNS2-1.4.1/Net/DNS2/RR/X25.php
index b1e6cfde43bd5f0e5fa54d9387e3f22e0cf9e3ef..4a239e2c94c422f38ddbb0420e8701c4a80f52a3 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/RR/X25.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/RR/X25.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: X25.php 179 2012-11-23 05:49:01Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Resolver.php b/Net_DNS2-1.4.1/Net/DNS2/Resolver.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/Resolver.php
rename to Net_DNS2-1.4.1/Net/DNS2/Resolver.php
index fdb99e04d25277d3f32a064ff8904ee1b9c506db..33497a345ae1f9a0238313f6e79594a38790e783 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Resolver.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Resolver.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Resolver.php 191 2013-04-07 23:28:20Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -82,7 +82,7 @@ class Net_DNS2_Resolver extends Net_DNS2
      * @param string $type  the name of the RR type to lookup
      * @param string $class the name of the RR class to lookup
      *
-     * @return Net_DNS_RR object
+     * @return Net_DNS2_RR object
      * @throws Net_DNS2_Exception
      * @access public
      *
@@ -271,7 +271,7 @@ class Net_DNS2_Resolver extends Net_DNS2
      *
      * @param Net_DNS2_RR $rr the RR object to lookup
      * 
-     * @return Net_DNS_RR object
+     * @return Net_DNS2_RR object
      * @throws Net_DNS2_Exception
      * @access public
      *
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Socket.php b/Net_DNS2-1.4.1/Net/DNS2/Socket.php
similarity index 95%
rename from Net_DNS2-1.3.2/Net/DNS2/Socket.php
rename to Net_DNS2-1.4.1/Net/DNS2/Socket.php
index 090d2cbee45496478ee5aa31a9378eeb6878c585..0e4255c80144cf6227cd7af8018df6329e6977a4 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Socket.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Socket.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Socket.php 176 2012-11-16 02:14:09Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -170,13 +170,14 @@ abstract class Net_DNS2_Socket
     /**   
      * reads a response from a DNS server
      *
-     * @param integer &$size the size of the DNS packet read is passed back
+     * @param integer &$size    the size of the DNS packet read is passed back
+     * @param integer $max_size the max data size returned.
      *
      * @return mixed         returns the data on success and false on error
      * @access public
      *       
      */
-    abstract public function read(&$size);
+    abstract public function read(&$size, $max_size);
 }
 
 /*
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Socket/Sockets.php b/Net_DNS2-1.4.1/Net/DNS2/Socket/Sockets.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/Socket/Sockets.php
rename to Net_DNS2-1.4.1/Net/DNS2/Socket/Sockets.php
index c83e2112891c77966eaf74fcd9d1a9be53d63bf5..707b6532f1cb6c272497b235eb77ec5e0fbd0e8c 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Socket/Sockets.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Socket/Sockets.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Sockets.php 217 2013-11-16 21:44:58Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -249,7 +249,7 @@ class Net_DNS2_Socket_Sockets extends Net_DNS2_Socket
      * @access public
      *
      */
-    public function read(&$size)
+    public function read(&$size, $max_size)
     {
         $read   = array($this->sock);
         $write  = null;
@@ -280,7 +280,7 @@ class Net_DNS2_Socket_Sockets extends Net_DNS2_Socket
         }
 
         $data = '';
-        $length = Net_DNS2_Lookups::DNS_MAX_UDP_SIZE;
+        $length = $max_size;
 
         //
         // if it's a TCP socket, then the first two bytes is the length of the DNS
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Socket/Streams.php b/Net_DNS2-1.4.1/Net/DNS2/Socket/Streams.php
similarity index 98%
rename from Net_DNS2-1.3.2/Net/DNS2/Socket/Streams.php
rename to Net_DNS2-1.4.1/Net/DNS2/Socket/Streams.php
index d257d9c81affc9852cc45f3f7b7e6847d763e777..4cd11fd51de843b393684458c64c0083640bdc66 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Socket/Streams.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Socket/Streams.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Streams.php 217 2013-11-16 21:44:58Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
@@ -53,7 +53,7 @@
  * Socket handling class using the PHP Streams
  *
  * The sockets extension is faster than the stream functions in PHP, but it's
- * not standard. So if the extension is loaded, then the Net_DNS_Socket_Sockets
+ * not standard. So if the extension is loaded, then the Net_DNS2_Socket_Sockets
  * class it used, otherwise, this class it used.
  *   
  * @category Networking
@@ -264,7 +264,7 @@ class Net_DNS2_Socket_Streams extends Net_DNS2_Socket
      * @access public
      *
      */
-    public function read(&$size)
+    public function read(&$size, $max_size)
     {
         $read   = array($this->sock);
         $write  = null;
@@ -291,7 +291,7 @@ class Net_DNS2_Socket_Streams extends Net_DNS2_Socket
         }
 
         $data = '';
-        $length = Net_DNS2_Lookups::DNS_MAX_UDP_SIZE;
+        $length = $max_size;
 
         //
         // if it's a TCP socket, then the first two bytes is the length of the DNS
diff --git a/Net_DNS2-1.3.2/Net/DNS2/Updater.php b/Net_DNS2-1.4.1/Net/DNS2/Updater.php
similarity index 99%
rename from Net_DNS2-1.3.2/Net/DNS2/Updater.php
rename to Net_DNS2-1.4.1/Net/DNS2/Updater.php
index e3446a522d4e7cc7052104d0a5a5bfbee7b90ea1..7d1b2cf09a85c2887612aaa6930fb5f107a580e4 100644
--- a/Net_DNS2-1.3.2/Net/DNS2/Updater.php
+++ b/Net_DNS2-1.4.1/Net/DNS2/Updater.php
@@ -43,7 +43,7 @@
  * @author    Mike Pultz <mike@mikepultz.com>
  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
- * @version   SVN: $Id: Updater.php 198 2013-05-26 05:05:22Z mike.pultz $
+ * @version   SVN: $Id$
  * @link      http://pear.php.net/package/Net_DNS2
  * @since     File available since Release 0.6.0
  *
diff --git a/Net_DNS2-1.4.1/README.md b/Net_DNS2-1.4.1/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2d609190119c65d122dd82753f82c681e9a7108c
--- /dev/null
+++ b/Net_DNS2-1.4.1/README.md
@@ -0,0 +1,32 @@
+# Net\_DNS2 - Native PHP5 DNS Resolver and Updater #
+
+### The main features for this package include: ###
+
+  * Increased performance; most requests are 2-10x faster than Net\_DNS
+  * Near drop-in replacement for Net\_DNS
+  * Uses PHP5 style classes and exceptions
+  * Support for IPv4 and IPv6, TCP and UDP sockets.
+  * Includes a separate, more intuitive "Updater" class for handling dynamic update
+  * Support zone signing using TSIG and SIG(0) for updates and zone transfers
+  * Includes a local cache using shared memory or flat file to improve performance
+  * includes many more RR's, including DNSSEC RR's.
+
+
+## Installing Net\_DNS2 ##
+
+Net\_DNS2 is available via the download section above as a PEAR library, or get it directly from the PEAR site:
+
+http://pear.php.net/package/Net_DNS2
+
+Or you can use the command line PEAR installer:
+
+```
+
+pear install Net_DNS2
+
+```
+
+
+## Using Net\_DNS2 ##
+
+See the Net\_DNS2 Website for more details - http://netdns2.com/
diff --git a/Net_DNS2-1.4.1/tests/AllTests.php b/Net_DNS2-1.4.1/tests/AllTests.php
new file mode 100644
index 0000000000000000000000000000000000000000..001008a9abc8760f9e92ac781efd203cf1df0cdb
--- /dev/null
+++ b/Net_DNS2-1.4.1/tests/AllTests.php
@@ -0,0 +1,114 @@
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates.
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2010, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors
+ *     may be used to endorse or promote products derived from this
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2010 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.0.0
+ *
+ */
+
+error_reporting(E_ALL | E_STRICT);
+
+if (!defined('PHPUNIT_MAIN_METHOD')) {
+    define('PHPUNIT_MAIN_METHOD', 'Net_DNS2_AllTests::main');
+}
+
+require_once 'Net_DNS2_ParserTest.php';
+require_once 'Net_DNS2_ResolverTest.php';
+require_once 'Net_DNS2_DNSSECTest.php';
+
+set_include_path('..:.');
+
+/**
+ * This test suite assumes that Net_DNS2 will be in the include path, otherwise it
+ * will fail. There's no other way to hardcode a include_path in here that would 
+ * make it work everywhere.
+ *
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ * 
+ */
+class Net_DNS2_AllTests
+{
+    /**
+     * the main runner
+     *
+     * @return void
+     * @access public
+     *     
+     */
+    public static function main()
+    {
+        PHPUnit_TextUI_TestRunner::run(self::suite());
+    }
+
+    /**
+     * test suite
+     *
+     * @return void
+     * @access public
+     *     
+     */
+    public static function suite()
+    {
+        $suite = new PHPUnit_Framework_TestSuite('PEAR - Net_DNS2');
+
+        $suite->addTestSuite('Net_DNS2_ParserTest');
+        $suite->addTestSuite('Net_DNS2_ResolverTest');
+        $suite->addTestSuite('Net_DNS2_DNSSECTest');
+
+        return $suite;
+    }
+}
+
+if (PHPUNIT_MAIN_METHOD == 'Net_DNS2_AllTests::main') {
+    Net_DNS2_AllTests::main();
+}
+
+?>
diff --git a/Net_DNS2-1.4.1/tests/Net_DNS2_DNSSECTest.php b/Net_DNS2-1.4.1/tests/Net_DNS2_DNSSECTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f9febfaf4350f727920f0b9a02eb0687f5e38fc6
--- /dev/null
+++ b/Net_DNS2-1.4.1/tests/Net_DNS2_DNSSECTest.php
@@ -0,0 +1,90 @@
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates.
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2010, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors
+ *     may be used to endorse or promote products derived from this
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2010 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.0.0
+ *
+ */
+
+require_once '../Net/DNS2.php';
+
+/**
+ * Test class to test the DNSSEC logic
+ *
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ *
+ */
+class Net_DNS2_DNSSECTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * function to test the TSIG logic
+     *
+     * @return void
+     * @access public
+     *
+     */
+    public function testDNSSEC()
+    {
+        $ns = array('8.8.8.8', '8.8.4.4');
+
+        $r = new Net_DNS2_Resolver(array('nameservers' => $ns));
+
+        $r->dnssec = true;
+
+        $result = $r->query('org', 'SOA', 'IN');
+
+        $this->assertTrue(($result->header->ad == 1));
+        $this->assertTrue(($result->additional[0] instanceof Net_DNS2_RR_OPT));
+        $this->assertTrue(($result->additional[0]->do == 1));
+    }
+};
+
+?>
diff --git a/Net_DNS2-1.3.2/tests/Net_DNS2_ParserTest.php b/Net_DNS2-1.4.1/tests/Net_DNS2_ParserTest.php
similarity index 80%
rename from Net_DNS2-1.3.2/tests/Net_DNS2_ParserTest.php
rename to Net_DNS2-1.4.1/tests/Net_DNS2_ParserTest.php
index 1bf5f355f42892eb881de3d32c60593f2bdcd3ef..a282d02732560a899ff45e1329710cfc038c9055 100644
--- a/Net_DNS2-1.3.2/tests/Net_DNS2_ParserTest.php
+++ b/Net_DNS2-1.4.1/tests/Net_DNS2_ParserTest.php
@@ -1,9 +1,77 @@
 <?php
 
-require_once 'Net/DNS2.php';
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
 
+/**
+ * DNS Library for handling lookups and updates.
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2010, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors
+ *     may be used to endorse or promote products derived from this
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2010 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.0.0
+ *
+ */
+
+require_once '../Net/DNS2.php';
+
+
+/**
+ * Test class to test the parsing code
+ *   
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2
+ *
+ */
 class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
 {
+    /**
+     * function to test the TSIG logic
+     *
+     * @return void
+     * @access public
+     *
+     */
     public function testTSIG()
     {
         //
@@ -43,6 +111,14 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
         //
         $this->assertSame($line, substr($response->additional[0]->__toString(), 0, 58));
     }
+
+    /**
+     * function to test parsing the individual RR's
+     *
+     * @return void
+     * @access public
+     *
+     */
     public function testParser()
     {
         $rrs = array(
@@ -87,6 +163,8 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
             'HIP'           => 'example.com. 300 IN HIP 2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D rvs.example.com. another.example.com. test.domain.org.',
             'TALINK'        => 'example.com. 300 IN TALINK c1.example.com. c3.example.com.',
             'CDS'           => 'example.com. 300 IN CDS 21366 7 2 96eeb2ffd9b00cd4694e78278b5efdab0a80446567b69f634da078f0d90f01ba',
+            'OPENPGPKEY'    => '8d5730bd8d76d417bf974c03f59eedb7af98cb5c3dc73ea8ebbd54b7._openpgpkey.example.com. 300 IN OPENPGPKEY AwEAAYCXh/ZABi8kiJIDXYmyUlHzC0CHeBzqcpyZAIjC7dK1wkRYVcUvIlpTOpnOVVfcC3Py9Ui/x45qKb0LytvK7WYAe3WyOOwk5klwIqRC/0p4luafbd2yhRMF7quOBVqYrLoHwv8i9LrV+r8dhB7rXv/lkTSI6mEZsg5rDfee8Yy1',
+            'CSYNC'         => 'example.com. 300 IN CSYNC 1278700841 3 A NS AAAA',
             'SPF'           => 'example.com. 300 IN SPF "v=spf1 ip4:192.168.0.1/24 mx ?all"',
             'NID'           => 'example.com. 300 IN NID 10 14:4fff:ff20:ee64',
             'L32'           => 'example.com. 300 IN L32 10 10.1.2.0',
@@ -101,7 +179,7 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
             'DLV'           => 'example.com. 300 IN DLV 21366 7 2 96eeb2ffd9b00cd4694e78278b5efdab0a80446567b69f634da078f0d90f01ba',
         );
 
-        foreach($rrs as $rr => $line) {
+        foreach ($rrs as $rr => $line) {
 
             $class_name = 'Net_DNS2_RR_' . $rr;
 
@@ -146,6 +224,14 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
             $this->assertSame($line, $response->answer[0]->__toString());
         }
     }
+
+    /**
+     * function to test the compression logic
+     *
+     * @return void
+     * @access public
+     *
+     */
     public function testCompression()
     {
         //
@@ -175,7 +261,7 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
         //
         // add each RR to the same object, so we can build a build compressed name list
         //
-        foreach($rrs as $rr => $line) {
+        foreach ($rrs as $rr => $line) {
 
             $class_name = 'Net_DNS2_RR_' . $rr;
 
@@ -220,8 +306,8 @@ class Net_DNS2_ParserTest extends PHPUnit_Framework_TestCase
         //
         $response_authority = $response->authority;
 
-        foreach($response_authority as $id => $object)
-        {
+        foreach ($response_authority as $id => $object) {
+
             $response_authority[$id]->rdlength = '';
             $response_authority[$id]->rdata = '';
         }
diff --git a/Net_DNS2-1.4.1/tests/Net_DNS2_ResolverTest.php b/Net_DNS2-1.4.1/tests/Net_DNS2_ResolverTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6b066e8477369ff1843f74eabbe004ce1526e667
--- /dev/null
+++ b/Net_DNS2-1.4.1/tests/Net_DNS2_ResolverTest.php
@@ -0,0 +1,90 @@
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * DNS Library for handling lookups and updates.
+ *
+ * PHP Version 5
+ *
+ * Copyright (c) 2010, Mike Pultz <mike@mikepultz.com>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *
+ *   * Neither the name of Mike Pultz nor the names of his contributors
+ *     may be used to endorse or promote products derived from this
+ *     software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @category  Networking
+ * @package   Net_DNS2
+ * @author    Mike Pultz <mike@mikepultz.com>
+ * @copyright 2010 Mike Pultz <mike@mikepultz.com>
+ * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @version   SVN: $Id$
+ * @link      http://pear.php.net/package/Net_DNS2
+ * @since     File available since Release 1.0.0
+ *
+ */
+
+require_once '../Net/DNS2.php';
+
+/**  
+ * This test uses the Google public DNS servers to perform a resolution test; 
+ * this should work on *nix and Windows, but will require an internet connection.
+ * 
+ * @category Networking
+ * @package  Net_DNS2
+ * @author   Mike Pultz <mike@mikepultz.com>
+ * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
+ * @link     http://pear.php.net/package/Net_DNS2      
+ *
+ */
+class Net_DNS2_ResolverTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * function to test the resolver
+     *
+     * @return void
+     * @access public
+     * 
+     */
+    public function testResolver()
+    {
+        $ns = array('8.8.8.8', '8.8.4.4');
+
+        $r = new Net_DNS2_Resolver(array('nameservers' => $ns));
+
+        $result = $r->query('google.com', 'MX');
+
+        $this->assertSame($result->header->qr, Net_DNS2_Lookups::QR_RESPONSE);
+        $this->assertSame(count($result->question), 1);
+        $this->assertTrue(count($result->answer) > 0);
+        $this->assertTrue($result->answer[0] instanceof Net_DNS2_RR_MX);
+    }
+}
+
+?>
diff --git a/package.xml b/package.xml
index 7f42c08e59e929a0e12b4a9cf0b551fc77e98a24..9c87af43bfbabbc34d77190bd74d2f08b4e45051 100644
--- a/package.xml
+++ b/package.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.9.2" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0     http://pear.php.net/dtd/tasks-1.0.xsd     http://pear.php.net/dtd/package-2.0     http://pear.php.net/dtd/package-2.0.xsd">
+<package packagerversion="1.9.4" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0     http://pear.php.net/dtd/tasks-1.0.xsd     http://pear.php.net/dtd/package-2.0     http://pear.php.net/dtd/package-2.0.xsd">
  <name>Net_DNS2</name>
  <channel>pear.php.net</channel>
  <summary>PHP5 Resolver library used to communicate with a DNS server.</summary>
@@ -12,11 +12,11 @@ This release is (in most cases) 2x - 10x faster than Net_DNS, as well as include
   <email>mike@mikepultz.com</email>
   <active>yes</active>
  </lead>
- <date>2013-11-30</date>
- <time>19:09:01</time>
+ <date>2015-04-13</date>
+ <time>00:55:09</time>
  <version>
-  <release>1.3.2</release>
-  <api>1.3.2</api>
+  <release>1.4.1</release>
+  <api>1.4.1</api>
  </version>
  <stability>
   <release>stable</release>
@@ -24,94 +24,100 @@ This release is (in most cases) 2x - 10x faster than Net_DNS, as well as include
  </stability>
  <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD License</license>
  <notes>
-- added support for the EUI48 and EUI64 resource records (RFC7043)
-- fixed how we handle the return values from socket select() statements; this wasn&apos;t causing a problem, but it wasn&apos;t quite right
-- added some error messaging when the socket times out
-- before we cache the data, unset the rdata value; this was causing some JSON errors to be generated, and we don&apos;t need the data anyway.
+- increased the default DNSSEC payload size value to 4000 bytes per RFC 4035 section 4.1; this is still configurable.
+- fixed a bug where I was still using the DNS_MAX_UDP_SIZE default (512 bytes) for all requests, event DNSSEC, where I should have been using the dnssec_payload_size config value.
+- removed the limitation that PTR records had to look like IP addresses; you can add other things to PTR records, like service discovery objects- RFC 6763.
+- dropped support for using the Sockets library on Windows. There have been too many inconsistencies between versions of Windows; we&apos;ll just default to use the Streams library.
+- fixed the Net_DNS2_RR_PTR class so we can pass ptrdname&apos;s with spaces in them so that we can support DNS-Based Service Discovery (RFC 6763).
+- added support for the CSYNC resource record - see RFC 7477.
  </notes>
  <contents>
   <dir baseinstalldir="/" name="/">
-   <file baseinstalldir="/" md5sum="978d7aded587ee179b176b6bb6b4c413" name="Net/DNS2.php" role="php" />
-   <file baseinstalldir="/" md5sum="668e7cc8f1c22440109fd03eb3e6437b" name="Net/DNS2/BitMap.php" role="php" />
-   <file baseinstalldir="/" md5sum="a58c2f7c621a981d1859506bfd273781" name="Net/DNS2/Cache.php" role="php" />
-   <file baseinstalldir="/" md5sum="96525fedc7e1c726de88e0b8c0941576" name="Net/DNS2/Exception.php" role="php" />
-   <file baseinstalldir="/" md5sum="88acc364631e76974a5d4f309e7574be" name="Net/DNS2/Header.php" role="php" />
-   <file baseinstalldir="/" md5sum="82968282ff244ea065420bd85ea28679" name="Net/DNS2/Lookups.php" role="php" />
-   <file baseinstalldir="/" md5sum="e4172d04181437d6539564a88b742dcf" name="Net/DNS2/Packet.php" role="php" />
-   <file baseinstalldir="/" md5sum="f3d060b849a7770692e3a902b5344388" name="Net/DNS2/PrivateKey.php" role="php" />
-   <file baseinstalldir="/" md5sum="1d88fe97757f44906c8e6d20b44d638f" name="Net/DNS2/Question.php" role="php" />
-   <file baseinstalldir="/" md5sum="5ee50993e50c4f5082be13e63835d3e6" name="Net/DNS2/Resolver.php" role="php" />
-   <file baseinstalldir="/" md5sum="42bbbdfb70dec0332eee12df6e0bc6de" name="Net/DNS2/RR.php" role="php" />
-   <file baseinstalldir="/" md5sum="72f55a43202ad655864756f3734904a7" name="Net/DNS2/Socket.php" role="php" />
-   <file baseinstalldir="/" md5sum="1bcf6067f3560967dbc090f41fd3dcf2" name="Net/DNS2/Updater.php" role="php" />
-   <file baseinstalldir="/" md5sum="ad70b88129897c136b17b7b459fd3777" name="Net/DNS2/Cache/File.php" role="php" />
-   <file baseinstalldir="/" md5sum="8016337c1af51717044d9e4169c7f41c" name="Net/DNS2/Cache/Shm.php" role="php" />
-   <file baseinstalldir="/" md5sum="193dd33a81f2c2e43a82eef9c321982a" name="Net/DNS2/Packet/Request.php" role="php" />
-   <file baseinstalldir="/" md5sum="207547ea72990a7200dad2f8c53b3017" name="Net/DNS2/Packet/Response.php" role="php" />
-   <file baseinstalldir="/" md5sum="85293b9b208dc60be2372951e40fc33f" name="Net/DNS2/RR/A.php" role="php" />
-   <file baseinstalldir="/" md5sum="2fecf2c2a5cfc60515a97904cc8c8a78" name="Net/DNS2/RR/AAAA.php" role="php" />
-   <file baseinstalldir="/" md5sum="9c324b133c3fcc0bb4617ebf05816229" name="Net/DNS2/RR/AFSDB.php" role="php" />
-   <file baseinstalldir="/" md5sum="de71e50719f2b236f5cccf2a520b0382" name="Net/DNS2/RR/ANY.php" role="php" />
-   <file baseinstalldir="/" md5sum="589f8b6b387e42165e2351e590fb6b3b" name="Net/DNS2/RR/APL.php" role="php" />
-   <file baseinstalldir="/" md5sum="a3419e376cfbe35c168e1f475797b692" name="Net/DNS2/RR/ATMA.php" role="php" />
-   <file baseinstalldir="/" md5sum="63f9637185eba3dae5df241132e32f4c" name="Net/DNS2/RR/CAA.php" role="php" />
-   <file baseinstalldir="/" md5sum="f3286360fa268682e9b41f16e0ffd6af" name="Net/DNS2/RR/CDS.php" role="php" />
-   <file baseinstalldir="/" md5sum="a9e60f0f3316ff4b12354ad6438a8ada" name="Net/DNS2/RR/CERT.php" role="php" />
-   <file baseinstalldir="/" md5sum="73b36c7e6513a4609e8936a6b905dc3d" name="Net/DNS2/RR/CNAME.php" role="php" />
-   <file baseinstalldir="/" md5sum="8a83e19a5cf2a02d221280667862a8b3" name="Net/DNS2/RR/DHCID.php" role="php" />
-   <file baseinstalldir="/" md5sum="45c9999a0810b302727fcae682d7d67a" name="Net/DNS2/RR/DLV.php" role="php" />
-   <file baseinstalldir="/" md5sum="26e46c328cef6c694cd95e3536845ed7" name="Net/DNS2/RR/DNAME.php" role="php" />
-   <file baseinstalldir="/" md5sum="1d323b8eb84746786c10eb873c0970c1" name="Net/DNS2/RR/DNSKEY.php" role="php" />
-   <file baseinstalldir="/" md5sum="ce20ade1db6d6a50a0a2ea1794951c81" name="Net/DNS2/RR/DS.php" role="php" />
-   <file baseinstalldir="/" md5sum="a6dcd14184f5468220b3c0c485bab750" name="Net/DNS2/RR/EID.php" role="php" />
-   <file baseinstalldir="/" md5sum="c686c825068a7c43746f32b7cc2ea1c9" name="Net/DNS2/RR/EUI48.php" role="php" />
-   <file baseinstalldir="/" md5sum="9fa0470a8b59d11c6b086b1f0932dc64" name="Net/DNS2/RR/EUI64.php" role="php" />
-   <file baseinstalldir="/" md5sum="75b8ec406a262c4a150be0789e6c8b51" name="Net/DNS2/RR/HINFO.php" role="php" />
-   <file baseinstalldir="/" md5sum="9435c778e93dbec1862c05f0579af858" name="Net/DNS2/RR/HIP.php" role="php" />
-   <file baseinstalldir="/" md5sum="74b66546f605819f8fc4ff41bdf3956a" name="Net/DNS2/RR/IPSECKEY.php" role="php" />
-   <file baseinstalldir="/" md5sum="31f2c5ac9b8659d7a7972d3b19c08551" name="Net/DNS2/RR/ISDN.php" role="php" />
-   <file baseinstalldir="/" md5sum="2a5ac4b379ed680cb0e055732952149e" name="Net/DNS2/RR/KEY.php" role="php" />
-   <file baseinstalldir="/" md5sum="7ebcc5cd1b9b0448547aad8f28c41d41" name="Net/DNS2/RR/KX.php" role="php" />
-   <file baseinstalldir="/" md5sum="ad9fa4ffd8a52b9a3d774fceaac5ccf2" name="Net/DNS2/RR/L32.php" role="php" />
-   <file baseinstalldir="/" md5sum="9c65008634ae0529f73544ef68ed2db7" name="Net/DNS2/RR/L64.php" role="php" />
-   <file baseinstalldir="/" md5sum="28ea7ee67f4c113eb1ff3a176ea5f1fe" name="Net/DNS2/RR/LOC.php" role="php" />
-   <file baseinstalldir="/" md5sum="b85467b1949c190536c7a8a38675b9b4" name="Net/DNS2/RR/LP.php" role="php" />
-   <file baseinstalldir="/" md5sum="feeabe658b578b43032a9c99bf748d41" name="Net/DNS2/RR/MX.php" role="php" />
-   <file baseinstalldir="/" md5sum="3e77846144f4480a34218b959689545d" name="Net/DNS2/RR/NAPTR.php" role="php" />
-   <file baseinstalldir="/" md5sum="e33beac24919afdd60fb34cf0959dda9" name="Net/DNS2/RR/NID.php" role="php" />
-   <file baseinstalldir="/" md5sum="716ded33c55dc80e85c1eca91b97750d" name="Net/DNS2/RR/NIMLOC.php" role="php" />
-   <file baseinstalldir="/" md5sum="7a86703a480a739f68589cdee5a6bdb8" name="Net/DNS2/RR/NS.php" role="php" />
-   <file baseinstalldir="/" md5sum="ee1590f7aaf44623373d8f4582c298ab" name="Net/DNS2/RR/NSAP.php" role="php" />
-   <file baseinstalldir="/" md5sum="87c53f76af538547cdf5b378d6a7df8e" name="Net/DNS2/RR/NSEC.php" role="php" />
-   <file baseinstalldir="/" md5sum="11d74bc65eb1dab014dc421fbadf7ab1" name="Net/DNS2/RR/NSEC3.php" role="php" />
-   <file baseinstalldir="/" md5sum="9bcf008558e41b2a93a265a1e32c07a8" name="Net/DNS2/RR/NSEC3PARAM.php" role="php" />
-   <file baseinstalldir="/" md5sum="5f0de68528ef5dbe57275a9165217984" name="Net/DNS2/RR/OPT.php" role="php" />
-   <file baseinstalldir="/" md5sum="2382591ce2690b9f5c783b9b2083420d" name="Net/DNS2/RR/PTR.php" role="php" />
-   <file baseinstalldir="/" md5sum="3297644c4d55065b5152c8f39da8397c" name="Net/DNS2/RR/PX.php" role="php" />
-   <file baseinstalldir="/" md5sum="88e2498c2a17e69929240048791c0808" name="Net/DNS2/RR/RP.php" role="php" />
-   <file baseinstalldir="/" md5sum="e1a29008a3a69fc97426d29b9306ae7c" name="Net/DNS2/RR/RRSIG.php" role="php" />
-   <file baseinstalldir="/" md5sum="1e80b95bc81515f78ea53cca94727dfc" name="Net/DNS2/RR/RT.php" role="php" />
-   <file baseinstalldir="/" md5sum="3ffb8d6fdef07f33dcf7ca0880722b5a" name="Net/DNS2/RR/SIG.php" role="php" />
-   <file baseinstalldir="/" md5sum="aed01a55f856bfe61572d754ede0b81e" name="Net/DNS2/RR/SOA.php" role="php" />
-   <file baseinstalldir="/" md5sum="44166e6e876735f30d292ce8ecd5d5a7" name="Net/DNS2/RR/SPF.php" role="php" />
-   <file baseinstalldir="/" md5sum="0f06e1ff7449c849562c420fc67e02db" name="Net/DNS2/RR/SRV.php" role="php" />
-   <file baseinstalldir="/" md5sum="f80883b13985fe54f9a80b7aab54c7c2" name="Net/DNS2/RR/SSHFP.php" role="php" />
-   <file baseinstalldir="/" md5sum="12a71c2665009b6fe028f746589d9820" name="Net/DNS2/RR/TA.php" role="php" />
-   <file baseinstalldir="/" md5sum="bec88ed4ec6c09e2a36bce6fcad5d287" name="Net/DNS2/RR/TALINK.php" role="php" />
-   <file baseinstalldir="/" md5sum="d881cba55cf6843eebb75e0e58d02351" name="Net/DNS2/RR/TKEY.php" role="php" />
-   <file baseinstalldir="/" md5sum="34761ad28347ddde9667fadd0700047c" name="Net/DNS2/RR/TLSA.php" role="php" />
-   <file baseinstalldir="/" md5sum="cfd23b5ebecb28b1f41693e3ca32651c" name="Net/DNS2/RR/TSIG.php" role="php" />
-   <file baseinstalldir="/" md5sum="5821c616c760b46670cad188403d609f" name="Net/DNS2/RR/TXT.php" role="php" />
-   <file baseinstalldir="/" md5sum="ad3f5c7131dc70735d86b2b5777946e1" name="Net/DNS2/RR/URI.php" role="php" />
-   <file baseinstalldir="/" md5sum="48e7326c5406377f37174149d82b6215" name="Net/DNS2/RR/WKS.php" role="php" />
-   <file baseinstalldir="/" md5sum="97de458e2cfd3acca103f418ab511b38" name="Net/DNS2/RR/X25.php" role="php" />
-   <file baseinstalldir="/" md5sum="0afc43c4d614aa63af02464f5769d646" name="Net/DNS2/Socket/Sockets.php" role="php" />
-   <file baseinstalldir="/" md5sum="4f00d336823dd44c1631be5ccfc04266" name="Net/DNS2/Socket/Streams.php" role="php" />
-   <file baseinstalldir="/" md5sum="7117b54bd1494b2c3b880c709228b4dc" name="tests/AllTests.php" role="test" />
-   <file baseinstalldir="/" md5sum="6b3b3108d5c11baea6b55224e71d573f" name="tests/Net_DNS2_DNSSECTest.php" role="test" />
-   <file baseinstalldir="/" md5sum="87a85485fc06c37e7a93359b01b6a62f" name="tests/Net_DNS2_ParserTest.php" role="test" />
-   <file baseinstalldir="/" md5sum="77e6eeff2df6fe6360fcd62e3cc7dc40" name="tests/Net_DNS2_ResolverTest.php" role="test" />
+   <file baseinstalldir="/" md5sum="c01ec130223d7667a38e340825885028" name="Net/DNS2.php" role="php" />
+   <file baseinstalldir="/" md5sum="a60f2fcb5ed6ec1d81c4a94a45b3adf7" name="Net/DNS2/BitMap.php" role="php" />
+   <file baseinstalldir="/" md5sum="0b5fad565a09a59e17495e7e4d76cac0" name="Net/DNS2/Cache.php" role="php" />
+   <file baseinstalldir="/" md5sum="68264e0b4d6c30829ad7d46b41d4dc5a" name="Net/DNS2/Exception.php" role="php" />
+   <file baseinstalldir="/" md5sum="dcb7f02189851fdc215dde140ce28383" name="Net/DNS2/Header.php" role="php" />
+   <file baseinstalldir="/" md5sum="30be5582bf7f37008d2708c9a2c76f07" name="Net/DNS2/Lookups.php" role="php" />
+   <file baseinstalldir="/" md5sum="cbf444dfecdc6fbf3287969029c48ca5" name="Net/DNS2/Packet.php" role="php" />
+   <file baseinstalldir="/" md5sum="26e2e2061ba08e1520876a515e9ad511" name="Net/DNS2/PrivateKey.php" role="php" />
+   <file baseinstalldir="/" md5sum="1fa5d7f3a68455ab7c023bf004e2751d" name="Net/DNS2/Question.php" role="php" />
+   <file baseinstalldir="/" md5sum="2e6ae3e974c3f9ed6384ed46a1f9dac5" name="Net/DNS2/Resolver.php" role="php" />
+   <file baseinstalldir="/" md5sum="3d176481b5fdc1a32aac8b005f451053" name="Net/DNS2/RR.php" role="php" />
+   <file baseinstalldir="/" md5sum="22a88ed7b5e1c9c6eb4a9a6bbab2d4c8" name="Net/DNS2/Socket.php" role="php" />
+   <file baseinstalldir="/" md5sum="49d26c34e26b210b40a0f2d5ca420086" name="Net/DNS2/Updater.php" role="php" />
+   <file baseinstalldir="/" md5sum="62c718aee017c3fbc0a59cacffa8b5f4" name="Net/DNS2/Cache/File.php" role="php" />
+   <file baseinstalldir="/" md5sum="1fb0774fe0dea42048c40ce0a5498e85" name="Net/DNS2/Cache/Shm.php" role="php" />
+   <file baseinstalldir="/" md5sum="aa728fd645f221f9ebd6c2709da85881" name="Net/DNS2/Packet/Request.php" role="php" />
+   <file baseinstalldir="/" md5sum="f82736b04af10710da1fc17d62a5dfd9" name="Net/DNS2/Packet/Response.php" role="php" />
+   <file baseinstalldir="/" md5sum="df207aedec72f3b7b0beff3a7af956da" name="Net/DNS2/RR/A.php" role="php" />
+   <file baseinstalldir="/" md5sum="baafb8960905d2cff723b6bd8f422ed4" name="Net/DNS2/RR/AAAA.php" role="php" />
+   <file baseinstalldir="/" md5sum="213aef6d4bf267a2fd43f49b775579f5" name="Net/DNS2/RR/AFSDB.php" role="php" />
+   <file baseinstalldir="/" md5sum="70d5ace71d06980515922de59266b7a5" name="Net/DNS2/RR/ANY.php" role="php" />
+   <file baseinstalldir="/" md5sum="5cf029a7233a9f4a81fe0717befdc3cc" name="Net/DNS2/RR/APL.php" role="php" />
+   <file baseinstalldir="/" md5sum="4f6fa9f6038cf2734c1de76d60f16750" name="Net/DNS2/RR/ATMA.php" role="php" />
+   <file baseinstalldir="/" md5sum="d14c7f98525d0fb7c9e0eadbabe85f73" name="Net/DNS2/RR/CAA.php" role="php" />
+   <file baseinstalldir="/" md5sum="115adecfcc21bd17fa451d636c7f1133" name="Net/DNS2/RR/CDNSKEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="00fb9449af0f84a8d6854c9524c2e928" name="Net/DNS2/RR/CDS.php" role="php" />
+   <file baseinstalldir="/" md5sum="b37385cbc20ca0ca20077f13a5c69c52" name="Net/DNS2/RR/CERT.php" role="php" />
+   <file baseinstalldir="/" md5sum="8b8b21440919a208e1a0d6741c7f1e60" name="Net/DNS2/RR/CNAME.php" role="php" />
+   <file baseinstalldir="/" md5sum="4f4d49653f5e7c1638d6e42b25614e23" name="Net/DNS2/RR/CSYNC.php" role="php" />
+   <file baseinstalldir="/" md5sum="9551ab62b2840617bc8b8c609167daa9" name="Net/DNS2/RR/DHCID.php" role="php" />
+   <file baseinstalldir="/" md5sum="05259c53ea34d1555683bdc1c35cb798" name="Net/DNS2/RR/DLV.php" role="php" />
+   <file baseinstalldir="/" md5sum="12f807006b97fb6f350d50d7eab3d057" name="Net/DNS2/RR/DNAME.php" role="php" />
+   <file baseinstalldir="/" md5sum="041da454c4698760b2bc7a872cab7c82" name="Net/DNS2/RR/DNSKEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="006a7a1e94969122872a05d5dcab38d0" name="Net/DNS2/RR/DS.php" role="php" />
+   <file baseinstalldir="/" md5sum="26c5383db543f3c79559007a3fc3df5d" name="Net/DNS2/RR/EID.php" role="php" />
+   <file baseinstalldir="/" md5sum="3887add32c83fa870d5a9c5aa5869ae4" name="Net/DNS2/RR/EUI48.php" role="php" />
+   <file baseinstalldir="/" md5sum="d3cb0da2b56a179145d9245d412ff6e3" name="Net/DNS2/RR/EUI64.php" role="php" />
+   <file baseinstalldir="/" md5sum="cf9c0b2592e2021b45cb076dc9e77eb0" name="Net/DNS2/RR/HINFO.php" role="php" />
+   <file baseinstalldir="/" md5sum="b37912b4eb4e200ba6e2b2abc4816b07" name="Net/DNS2/RR/HIP.php" role="php" />
+   <file baseinstalldir="/" md5sum="b7785654449664faf1085afef50fb770" name="Net/DNS2/RR/IPSECKEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="541b91635300ce0ce382b16874a200fe" name="Net/DNS2/RR/ISDN.php" role="php" />
+   <file baseinstalldir="/" md5sum="f617e438f320193f712d5af0d3caef34" name="Net/DNS2/RR/KEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="f2dd24a93e3626a73d74ef7afe9d14a1" name="Net/DNS2/RR/KX.php" role="php" />
+   <file baseinstalldir="/" md5sum="0fc418392a6235a2577ea33758210cc1" name="Net/DNS2/RR/L32.php" role="php" />
+   <file baseinstalldir="/" md5sum="a2d847f03cbf2a4cfc9f681637db1d98" name="Net/DNS2/RR/L64.php" role="php" />
+   <file baseinstalldir="/" md5sum="d210e921fd10870c2a6cc7653620d169" name="Net/DNS2/RR/LOC.php" role="php" />
+   <file baseinstalldir="/" md5sum="966ff8feec27fa9926b29c53cb2de7b0" name="Net/DNS2/RR/LP.php" role="php" />
+   <file baseinstalldir="/" md5sum="01258ff879c45d4a9308ad84ba8374fc" name="Net/DNS2/RR/MX.php" role="php" />
+   <file baseinstalldir="/" md5sum="463ac29f1379780467969eca181d07c7" name="Net/DNS2/RR/NAPTR.php" role="php" />
+   <file baseinstalldir="/" md5sum="5623865ce1ad4792ea4fd1bc4e35204f" name="Net/DNS2/RR/NID.php" role="php" />
+   <file baseinstalldir="/" md5sum="22f57feca9b3ea46749bcb76d7fcc51c" name="Net/DNS2/RR/NIMLOC.php" role="php" />
+   <file baseinstalldir="/" md5sum="b9f84e8459467093d997c221a882a566" name="Net/DNS2/RR/NS.php" role="php" />
+   <file baseinstalldir="/" md5sum="8bc697e607da39dd4d035f80e5110650" name="Net/DNS2/RR/NSAP.php" role="php" />
+   <file baseinstalldir="/" md5sum="e3baf5bb9ca3259ab90371860944afd9" name="Net/DNS2/RR/NSEC.php" role="php" />
+   <file baseinstalldir="/" md5sum="9240baed43a0cb95b5f3e3851fd9b632" name="Net/DNS2/RR/NSEC3.php" role="php" />
+   <file baseinstalldir="/" md5sum="d04d56622dd6cfbf943d7dc8b5bb379e" name="Net/DNS2/RR/NSEC3PARAM.php" role="php" />
+   <file baseinstalldir="/" md5sum="29dbe4039917a36432f24570676f8c8a" name="Net/DNS2/RR/OPENPGPKEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="94ac2415d9b04354966c41529ee65165" name="Net/DNS2/RR/OPT.php" role="php" />
+   <file baseinstalldir="/" md5sum="2a10ec2ce75ecf0dde39c30a79257a52" name="Net/DNS2/RR/PTR.php" role="php" />
+   <file baseinstalldir="/" md5sum="df719282e9e7942ff95aba24df75787c" name="Net/DNS2/RR/PX.php" role="php" />
+   <file baseinstalldir="/" md5sum="3bc649235397d380c116034f0be90e6a" name="Net/DNS2/RR/RP.php" role="php" />
+   <file baseinstalldir="/" md5sum="4860d050ca71d81aa747d6a1eb381b3f" name="Net/DNS2/RR/RRSIG.php" role="php" />
+   <file baseinstalldir="/" md5sum="1854c3520f9a7fdab77d13578364194c" name="Net/DNS2/RR/RT.php" role="php" />
+   <file baseinstalldir="/" md5sum="550120e35eaf854d95f00da0c4b8cc34" name="Net/DNS2/RR/SIG.php" role="php" />
+   <file baseinstalldir="/" md5sum="20573547ead5339cb197991d305fb13d" name="Net/DNS2/RR/SOA.php" role="php" />
+   <file baseinstalldir="/" md5sum="41025887dd82c14781de35b938503e7e" name="Net/DNS2/RR/SPF.php" role="php" />
+   <file baseinstalldir="/" md5sum="dda9d5030fdb1977de4cfba58a3cb3b0" name="Net/DNS2/RR/SRV.php" role="php" />
+   <file baseinstalldir="/" md5sum="f854ff60caf46861c3ad031183ae66c7" name="Net/DNS2/RR/SSHFP.php" role="php" />
+   <file baseinstalldir="/" md5sum="641614de862c9b02e405894c96e8ddfd" name="Net/DNS2/RR/TA.php" role="php" />
+   <file baseinstalldir="/" md5sum="43c3d7b5d1dfd6536a0e95fdd7a63561" name="Net/DNS2/RR/TALINK.php" role="php" />
+   <file baseinstalldir="/" md5sum="632607c3307ad5e9c3fa91232dbf9a4b" name="Net/DNS2/RR/TKEY.php" role="php" />
+   <file baseinstalldir="/" md5sum="501b17ab5d0c356d02773c62c69748ea" name="Net/DNS2/RR/TLSA.php" role="php" />
+   <file baseinstalldir="/" md5sum="8c0661c90848c1a3ffc007d8656d705e" name="Net/DNS2/RR/TSIG.php" role="php" />
+   <file baseinstalldir="/" md5sum="d0551a32ecf1ac08b2f42f1042ce1ff1" name="Net/DNS2/RR/TXT.php" role="php" />
+   <file baseinstalldir="/" md5sum="3d4a204508acc1c4c9cc0ec85f630a50" name="Net/DNS2/RR/URI.php" role="php" />
+   <file baseinstalldir="/" md5sum="101703d7f0b9347db6651f35f78a98a6" name="Net/DNS2/RR/WKS.php" role="php" />
+   <file baseinstalldir="/" md5sum="a589db31b862ac5308eaacf9c2223ae1" name="Net/DNS2/RR/X25.php" role="php" />
+   <file baseinstalldir="/" md5sum="6b88e0b40fe820dea5dc28149c98a792" name="Net/DNS2/Socket/Sockets.php" role="php" />
+   <file baseinstalldir="/" md5sum="6c80cb53453ad0837532004c91e14dd7" name="Net/DNS2/Socket/Streams.php" role="php" />
+   <file baseinstalldir="/" md5sum="3830c26904fd0ecdcd9b40af7aed3bb6" name="tests/AllTests.php" role="test" />
+   <file baseinstalldir="/" md5sum="edadf1d417c229b25166677ae608baa7" name="tests/Net_DNS2_DNSSECTest.php" role="test" />
+   <file baseinstalldir="/" md5sum="4ff30101e288ed6084db6795ceaffd49" name="tests/Net_DNS2_ParserTest.php" role="test" />
+   <file baseinstalldir="/" md5sum="3667edbb50ebfa4089bb678168f1899f" name="tests/Net_DNS2_ResolverTest.php" role="test" />
    <file baseinstalldir="/" md5sum="46ec3bdb18dbe41d1c9f345939ea76a6" name="LICENSE" role="doc" />
+   <file baseinstalldir="/" md5sum="029c7ee07807607df1dc22f06a55dbaa" name="README.md" role="data" />
   </dir>
  </contents>
  <dependencies>
@@ -437,5 +443,25 @@ Initial Beta release of Net_DNS2
 - before we cache the data, unset the rdata value; this was causing some JSON errors to be generated, and we don&apos;t need the data anyway.
    </notes>
   </release>
+  <release>
+   <version>
+    <release>1.4.1</release>
+    <api>1.4.1</api>
+   </version>
+   <stability>
+    <release>stable</release>
+    <api>stable</api>
+   </stability>
+   <date>2015-04-12</date>
+   <license uri="http://www.opensource.org/licenses/bsd-license.php">BSD License</license>
+   <notes>
+- increased the default DNSSEC payload size value to 4000 bytes per RFC 4035 section 4.1; this is still configurable.
+- fixed a bug where I was still using the DNS_MAX_UDP_SIZE default (512 bytes) for all requests, event DNSSEC, where I should have been using the dnssec_payload_size config value.
+- removed the limitation that PTR records had to look like IP addresses; you can add other things to PTR records, like service discovery objects- RFC 6763.
+- dropped support for using the Sockets library on Windows. There have been too many inconsistencies between versions of Windows; we&apos;ll just default to use the Streams library.
+- fixed the Net_DNS2_RR_PTR class so we can pass ptrdname&apos;s with spaces in them so that we can support DNS-Based Service Discovery (RFC 6763).
+- added support for the CSYNC resource record - see RFC 7477.
+   </notes>
+  </release>
  </changelog>
 </package>