BIND 10 trac699, updated. 1d6b96dd3f682a4433a02f2f156fd118aac6f0e0 Merge branch 'master' into trac699

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Mar 30 04:04:13 UTC 2011


The branch, trac699 has been updated
       via  1d6b96dd3f682a4433a02f2f156fd118aac6f0e0 (commit)
       via  ece21d1bcb8b6ef6015622427cdc784e951b7396 (commit)
       via  90946cbcad43d13bd6dec1a2a83eb75d019dd511 (commit)
       via  e28f5c6b01d30e48e8de45cb0312d360a44b7ca3 (commit)
       via  d151653e759da7ad45c28914a67988057e8cbd7f (commit)
       via  9eb28db1b6b3c0b6cd76379416726b9931c729d2 (commit)
       via  782a56fbd225e31f6b1341857ad9a5af20df4901 (commit)
       via  3399d44c2d83f81b92a30bec360b3f207029bc3e (commit)
       via  1516f8a92c2366f34a7c880ba6e6becad841e981 (commit)
       via  f6092c3b8c16a7155157ecedd3d5d9b4cd8dcfee (commit)
       via  78986db7192134b31155c85e075e809acba2984c (commit)
       via  c77af8b7ddef2d9198b1a092e2a93aa6bc61b8d2 (commit)
       via  2a4f9f2f6d0831520ddba84030873b70b9577c0c (commit)
       via  db4993d8478cad992ebfe8787edda08a6dd0d347 (commit)
       via  e099dc5e644156de47b9ad45e79a1732e2ba4314 (commit)
       via  ad723802c83996a3286fc5de23ef97c88ace004c (commit)
       via  118edb29441d7299ef16cb752518680b4cbec503 (commit)
       via  7b089ac66b9d15be53a0f874dfe4f2e47cb70c07 (commit)
       via  b5f4af26e1fffd82d4e9a9a2ba31ce9cd44f820e (commit)
       via  1b02466ceefb1190fafd35c717dafc6285a557cd (commit)
       via  012f9e78dc611c72ea213f9bd6743172e1a2ca20 (commit)
       via  c34be1b6a604ffb0a6ef34abfcf9c2fa42451d8c (commit)
       via  f2256e0e6f8260cf8addd1511fe49eaacf22d2bf (commit)
       via  8d638e07f2347d5e713493ffed9659ea5048e872 (commit)
       via  32d47188a5034c0ed3973099ebfe28ffe21ff1ce (commit)
      from  681b1839bca185f19eca8e0fe567bb0012743a79 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   12 +++
 INSTALL                                            |    4 +-
 README                                             |    6 +-
 configure.ac                                       |    2 +-
 doc/guide/bind10-guide.html                        |   76 +++++++++----------
 src/bin/cfgmgr/b10-cfgmgr.8                        |   18 +++++-
 src/bin/cfgmgr/b10-cfgmgr.xml                      |    3 -
 src/bin/cmdctl/cmdctl.py.in                        |    1 -
 src/bin/msgq/tests/msgq_test.py                    |    4 +-
 src/bin/resolver/resolver.cc                       |    3 +
 src/bin/tests/process_rename_test.py.in            |    2 +-
 src/bin/xfrin/xfrin.py.in                          |    1 -
 src/bin/xfrout/xfrout.py.in                        |    1 -
 src/bin/zonemgr/zonemgr.py.in                      |    1 -
 src/lib/asiolink/io_socket.cc                      |    2 -
 src/lib/asiolink/tests/dns_server_unittest.cc      |    1 +
 src/lib/config/tests/testdata/Makefile.am          |    1 +
 src/lib/datasrc/result.h                           |    1 -
 src/lib/datasrc/tests/memory_datasrc_unittest.cc   |    1 -
 src/lib/datasrc/zone.h                             |    1 -
 src/lib/log/README                                 |    4 +-
 src/lib/log/dummylog.cc                            |    2 +-
 src/lib/log/dummylog.h                             |    4 +-
 src/lib/log/logger.h                               |    2 +-
 src/lib/log/logger_support.cc                      |    2 +-
 src/lib/log/logger_support.h                       |    2 +-
 src/lib/log/message_dictionary.cc                  |    2 +-
 src/lib/log/message_reader.cc                      |    2 +-
 src/lib/log/messagedef.mes                         |   10 ++--
 src/lib/log/strutil.h                              |    4 +-
 src/lib/nsas/fetchable.h                           |    2 +-
 src/lib/nsas/nameserver_address.cc                 |    2 +-
 src/lib/nsas/nameserver_entry.cc                   |    3 +
 src/lib/nsas/tests/fetchable_unittest.cc           |    2 +-
 src/lib/nsas/zone_entry.cc                         |    2 +-
 src/lib/python/isc/config/ccsession.py             |    1 -
 src/lib/python/isc/net/parse.py                    |    2 +-
 src/lib/python/isc/net/tests/parse_test.py         |    2 +-
 src/lib/python/isc/util/process.py                 |    2 +-
 src/lib/python/isc/util/tests/process_test.py      |    2 +-
 src/lib/resolve/recursive_query.cc                 |   70 ++++++++++++------
 src/lib/resolve/resolver_interface.h               |    2 +-
 .../resolve/tests/recursive_query_unittest_2.cc    |   26 ++++++-
 tests/system/bindctl/tests.sh                      |    4 +-
 44 files changed, 181 insertions(+), 116 deletions(-)

-----------------------------------------------------------------------
diff --git a/ChangeLog b/ChangeLog
index 000c65e..0ee3d17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+  209.  [func]		jelte
+	Resolver now uses the NSAS when looking for a nameserver to
+	query for any specific zone. This also includes keeping track of
+	the RTT for that nameserver.
+	(Trac #495, git 76022a7e9f3ff339f0f9f10049aa85e5784d72c5)
+
+  208.  [bug]*		jelte
+	Resolver now answers REFUSED on queries that are not for class IN.
+	This includes the various CH TXT queries, which will be added
+	later.
+	(git 012f9e78dc611c72ea213f9bd6743172e1a2ca20)
+
   207.  [func]		jelte
 	Resolver now starts listening on localhost:53 if no configuration
 	is set.
diff --git a/INSTALL b/INSTALL
index 6ab63ea..44c380a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-To build "configure" file:
-    autoreconf
+If using git (not the tarball), build the "configure" file:
+    autoreconf --install
 
 To then build from source:
     ./configure
diff --git a/README b/README
index b10d12e..5320a6e 100644
--- a/README
+++ b/README
@@ -15,9 +15,9 @@ five year plan are described here:
 
 This release includes the bind10 master process, b10-msgq message
 bus, b10-auth authoritative DNS server (with SQLite3 and in-memory
-backends), b10-resolver forwarding DNS server, b10-cmdctl remote
-control daemon, b10-cfgmgr configuration manager, b10-xfrin AXFR
-inbound service, b10-xfrout outgoing AXFR service, b10-zonemgr
+backends), b10-resolver recursive or forwarding DNS server, b10-cmdctl
+remote control daemon, b10-cfgmgr configuration manager, b10-xfrin
+AXFR inbound service, b10-xfrout outgoing AXFR service, b10-zonemgr
 secondary manager, b10-stats statistics collection and reporting
 daemon, and a new libdns++ library for C++ with a python wrapper.
 
diff --git a/configure.ac b/configure.ac
index 7f2b3ea..1c063c4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.59])
-AC_INIT(bind10-devel, 20110224, bind10-dev at isc.org)
+AC_INIT(bind10-devel, 20110322, bind10-dev at isc.org)
 AC_CONFIG_SRCDIR(README)
 AM_INIT_AUTOMAKE
 AC_CONFIG_HEADERS([config.h])
diff --git a/doc/guide/bind10-guide.html b/doc/guide/bind10-guide.html
index fe6bd93..a631a9c 100644
--- a/doc/guide/bind10-guide.html
+++ b/doc/guide/bind10-guide.html
@@ -1,19 +1,19 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>BIND 10 Guide</title><link rel="stylesheet" href="./bind10-guide.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><meta name="description" content="BIND 10 is a Domain Name System (DNS) suite managed by Internet Systems Consortium (ISC). It includes DNS libraries and modular components for controlling authoritative and recursive DNS servers. This is the reference guide for BIND 10 version 20110224. The most up-to-date version of this document, along with other documents for BIND 10, can be found at ."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="BIND 10 Guide"><div class="titlepage"><div><div><h1 class="title"><a name="id1168230298903"></a>BIND 10 Guide</h1></div><div><h2 class="subtitle">Administrator Reference for BIND 10</h2></div><div><p class="releaseinfo">This is the referenc
 e guide for BIND 10 version
-        20110224.</p></div><div><p class="copyright">Copyright © 2010 Internet Systems Consortium, Inc.</p></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>BIND 10 is a Domain Name System (DNS) suite managed by
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>BIND 10 Guide</title><link rel="stylesheet" href="./bind10-guide.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><meta name="description" content="BIND 10 is a Domain Name System (DNS) suite managed by Internet Systems Consortium (ISC). It includes DNS libraries and modular components for controlling authoritative and recursive DNS servers. This is the reference guide for BIND 10 version 20110322. The most up-to-date version of this document, along with other documents for BIND 10, can be found at ."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" title="BIND 10 Guide"><div class="titlepage"><div><div><h1 class="title"><a name="id1168230298903"></a>BIND 10 Guide</h1></div><div><h2 class="subtitle">Administrator Reference for BIND 10</h2></div><div><p class="releaseinfo">This is the referenc
 e guide for BIND 10 version
+        20110322.</p></div><div><p class="copyright">Copyright © 2010 Internet Systems Consortium, Inc.</p></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>BIND 10 is a Domain Name System (DNS) suite managed by
 	Internet Systems Consortium (ISC). It includes DNS libraries
 	and modular components for controlling authoritative and
 	recursive DNS servers.
       </p><p>
-        This is the reference guide for BIND 10 version 20110224.
+        This is the reference guide for BIND 10 version 20110322.
 	The most up-to-date version of this document, along with
-	other documents for BIND 10, can be found at <a class="ulink" href="http://bind10.isc.org/docs" target="_top">http://bind10.isc.org/docs</a>.  </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230299038">Supported Platforms</a></span></dt><dt><span class="section"><a href="#id1168230299065">Required Software</a></span></dt><dt><span class="section"><a href="#starting_stopping">Starting and Stopping the Server</a></span></dt><dt><span class="section"><a href="#managing_once_running">Managing BIND 10</a></span></dt></dl></dd><dt><span class="chapter"><a href="#installation">2. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230284842">Building Requirements</a></span></dt><dt><span class="section"><a href="#quickstart">Quick start</a></span></dt><dt><span class="section"><a href="#install">In
 stallation from source</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285028">Download Tar File</a></span></dt><dt><span class="section"><a href="#id1168230285047">Retrieve from Git</a></span></dt><dt><span class="section"><a href="#id1168230285108">Configure before the build</a></span></dt><dt><span class="section"><a href="#id1168230285205">Build</a></span></dt><dt><span class="section"><a href="#id1168230285221">Install</a></span></dt><dt><span class="section"><a href="#id1168230285244">Install Hierarchy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#bind10">3. Starting BIND10 with <span class="command"><strong>bind10</strong></span></a></span></dt><dd><dl><dt><span class="section"><a href="#start">Starting BIND 10</a></span></dt></dl></dd><dt><span class="chapter"><a href="#msgq">4. Command channel</a></span></dt><dt><span class="chapter"><a href="#cfgmgr">5. Configuration manager</a></span></dt><dt><span class="chapter"><a hr
 ef="#cmdctl">6. Remote control daemon</a></span></dt><dd><dl><dt><span class="section"><a href="#cmdctl.spec">Configuration specification for b10-cmdctl</a></span></dt></dl></dd><dt><span class="chapter"><a href="#bindctl">7. Control and configure user interface</a></span></dt><dt><span class="chapter"><a href="#authserver">8. Authoritative Server</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285822">Server Configurations</a></span></dt><dt><span class="section"><a href="#id1168230285888">Data Source Backends</a></span></dt><dt><span class="section"><a href="#id1168230285918">Loading Master Zones Files</a></span></dt></dl></dd><dt><span class="chapter"><a href="#xfrin">9. Incoming Zone Transfers</a></span></dt><dt><span class="chapter"><a href="#xfrout">10. Outbound Zone Transfers</a></span></dt><dt><span class="chapter"><a href="#zonemgr">11. Secondary Manager</a></span></dt><dt><span class="chapter"><a href="#resolverserver">12. Recursive Name Server<
 /a></span></dt><dt><span class="chapter"><a href="#statistics">13. Statistics</a></span></dt></dl></div><div class="chapter" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230299038">Supported Platforms</a></span></dt><dt><span class="section"><a href="#id1168230299065">Required Software</a></span></dt><dt><span class="section"><a href="#starting_stopping">Starting and Stopping the Server</a></span></dt><dt><span class="section"><a href="#managing_once_running">Managing BIND 10</a></span></dt></dl></div><p>
+	other documents for BIND 10, can be found at <a class="ulink" href="http://bind10.isc.org/docs" target="_top">http://bind10.isc.org/docs</a>.  </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230299038">Supported Platforms</a></span></dt><dt><span class="section"><a href="#id1168230299065">Required Software</a></span></dt><dt><span class="section"><a href="#starting_stopping">Starting and Stopping the Server</a></span></dt><dt><span class="section"><a href="#managing_once_running">Managing BIND 10</a></span></dt></dl></dd><dt><span class="chapter"><a href="#installation">2. Installation</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230284842">Building Requirements</a></span></dt><dt><span class="section"><a href="#quickstart">Quick start</a></span></dt><dt><span class="section"><a href="#install">In
 stallation from source</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285021">Download Tar File</a></span></dt><dt><span class="section"><a href="#id1168230285041">Retrieve from Git</a></span></dt><dt><span class="section"><a href="#id1168230285101">Configure before the build</a></span></dt><dt><span class="section"><a href="#id1168230285198">Build</a></span></dt><dt><span class="section"><a href="#id1168230285214">Install</a></span></dt><dt><span class="section"><a href="#id1168230285238">Install Hierarchy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#bind10">3. Starting BIND10 with <span class="command"><strong>bind10</strong></span></a></span></dt><dd><dl><dt><span class="section"><a href="#start">Starting BIND 10</a></span></dt></dl></dd><dt><span class="chapter"><a href="#msgq">4. Command channel</a></span></dt><dt><span class="chapter"><a href="#cfgmgr">5. Configuration manager</a></span></dt><dt><span class="chapter"><a hr
 ef="#cmdctl">6. Remote control daemon</a></span></dt><dd><dl><dt><span class="section"><a href="#cmdctl.spec">Configuration specification for b10-cmdctl</a></span></dt></dl></dd><dt><span class="chapter"><a href="#bindctl">7. Control and configure user interface</a></span></dt><dt><span class="chapter"><a href="#authserver">8. Authoritative Server</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285812">Server Configurations</a></span></dt><dt><span class="section"><a href="#id1168230285877">Data Source Backends</a></span></dt><dt><span class="section"><a href="#id1168230285908">Loading Master Zones Files</a></span></dt></dl></dd><dt><span class="chapter"><a href="#xfrin">9. Incoming Zone Transfers</a></span></dt><dt><span class="chapter"><a href="#xfrout">10. Outbound Zone Transfers</a></span></dt><dt><span class="chapter"><a href="#zonemgr">11. Secondary Manager</a></span></dt><dt><span class="chapter"><a href="#resolverserver">12. Recursive Name Server<
 /a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230286296">Forwarding</a></span></dt></dl></dd><dt><span class="chapter"><a href="#statistics">13. Statistics</a></span></dt></dl></div><div class="chapter" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230299038">Supported Platforms</a></span></dt><dt><span class="section"><a href="#id1168230299065">Required Software</a></span></dt><dt><span class="section"><a href="#starting_stopping">Starting and Stopping the Server</a></span></dt><dt><span class="section"><a href="#managing_once_running">Managing BIND 10</a></span></dt></dl></div><p>
       BIND is the popular implementation of a DNS server, developer
       interfaces, and DNS tools.
       BIND 10 is a rewrite of BIND 9.  BIND 10 is written in C++ and Python
       and provides a modular environment for serving and maintaining DNS.
     </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
         This guide covers the experimental prototype of
-        BIND 10 version 20110224.
+        BIND 10 version 20110322.
       </p></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
         BIND 10 provides a EDNS0- and DNSSEC-capable
         authoritative DNS server and a caching recursive name server
@@ -132,7 +132,7 @@
       and, of course, DNS. These include detailed developer
       documentation and code examples.
 
-    </p></div><div class="chapter" title="Chapter 2. Installation"><div class="titlepage"><div><div><h2 class="title"><a name="installation"></a>Chapter 2. Installation</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230284842">Building Requirements</a></span></dt><dt><span class="section"><a href="#quickstart">Quick start</a></span></dt><dt><span class="section"><a href="#install">Installation from source</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285028">Download Tar File</a></span></dt><dt><span class="section"><a href="#id1168230285047">Retrieve from Git</a></span></dt><dt><span class="section"><a href="#id1168230285108">Configure before the build</a></span></dt><dt><span class="section"><a href="#id1168230285205">Build</a></span></dt><dt><span class="section"><a href="#id1168230285221">Install</a></span></dt><dt><span class="section"><a href="#id1168230285244">Install Hierarchy<
 /a></span></dt></dl></dd></dl></div><div class="section" title="Building Requirements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230284842"></a>Building Requirements</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+    </p></div><div class="chapter" title="Chapter 2. Installation"><div class="titlepage"><div><div><h2 class="title"><a name="installation"></a>Chapter 2. Installation</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230284842">Building Requirements</a></span></dt><dt><span class="section"><a href="#quickstart">Quick start</a></span></dt><dt><span class="section"><a href="#install">Installation from source</a></span></dt><dd><dl><dt><span class="section"><a href="#id1168230285021">Download Tar File</a></span></dt><dt><span class="section"><a href="#id1168230285041">Retrieve from Git</a></span></dt><dt><span class="section"><a href="#id1168230285101">Configure before the build</a></span></dt><dt><span class="section"><a href="#id1168230285198">Build</a></span></dt><dt><span class="section"><a href="#id1168230285214">Install</a></span></dt><dt><span class="section"><a href="#id1168230285238">Install Hierarchy<
 /a></span></dt></dl></dd></dl></div><div class="section" title="Building Requirements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230284842"></a>Building Requirements</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
             Some operating systems have split their distribution packages into
             a run-time and a development package.  You will need to install
             the development package versions, which include header files and
@@ -158,10 +158,6 @@
           and deploying BIND 10 as an authoritative name server using
           its defaults. For troubleshooting, full customizations and further
           details, see the respective chapters in the BIND 10 guide.
-        </p></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
-          The development prototype of the b10-auth server listens on
-          0.0.0.0 (all interfaces) port 5300. (This is not the standard
-          domain service port.)
         </p></div><p>
         To quickly get started with BIND 10, follow these steps.
       </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
@@ -181,7 +177,7 @@
           </p></li><li class="listitem"><p>Start the server:
             </p><pre class="screen">$ <strong class="userinput"><code>/usr/local/sbin/bind10</code></strong></pre><p>
           </p></li><li class="listitem"><p>Test it; for example:
-            </p><pre class="screen">$ <strong class="userinput"><code>dig @127.0.0.1 -p 5300 -c CH -t TXT authors.bind</code></strong></pre><p>
+            </p><pre class="screen">$ <strong class="userinput"><code>dig @127.0.0.1 -c CH -t TXT authors.bind</code></strong></pre><p>
          </p></li><li class="listitem"><p>Load desired zone file(s), for example:
             </p><pre class="screen">$ <strong class="userinput"><code>b10-loadzone <em class="replaceable"><code>your.zone.example.org</code></em></code></strong></pre><p>
           </p></li><li class="listitem">
@@ -192,14 +188,14 @@
         the Git code revision control system or as a downloadable
         tar file. It may also be available in pre-compiled ready-to-use
         packages from operating system vendors.
-      </p><div class="section" title="Download Tar File"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285028"></a>Download Tar File</h3></div></div></div><p>
+      </p><div class="section" title="Download Tar File"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285021"></a>Download Tar File</h3></div></div></div><p>
           Downloading a release tar file is the recommended method to
           obtain the source code.
         </p><p>
           The BIND 10 releases are available as tar file downloads from
           <a class="ulink" href="ftp://ftp.isc.org/isc/bind10/" target="_top">ftp://ftp.isc.org/isc/bind10/</a>.
           Periodic development snapshots may also be available.
-        </p></div><div class="section" title="Retrieve from Git"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285047"></a>Retrieve from Git</h3></div></div></div><p>
+        </p></div><div class="section" title="Retrieve from Git"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285041"></a>Retrieve from Git</h3></div></div></div><p>
           Downloading this "bleeding edge" code is recommended only for
           developers or advanced users.  Using development code in a production
           environment is not recommended.
@@ -233,7 +229,7 @@
           <span class="command"><strong>autoheader</strong></span>,
           <span class="command"><strong>automake</strong></span>,
           and related commands.
-        </p></div><div class="section" title="Configure before the build"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285108"></a>Configure before the build</h3></div></div></div><p>
+        </p></div><div class="section" title="Configure before the build"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285101"></a>Configure before the build</h3></div></div></div><p>
           BIND 10 uses the GNU Build System to discover build environment
           details.
           To generate the makefiles using the defaults, simply run:
@@ -264,16 +260,16 @@
         </p><p>
           If the configure fails, it may be due to missing or old
           dependencies.
-        </p></div><div class="section" title="Build"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285205"></a>Build</h3></div></div></div><p>
+        </p></div><div class="section" title="Build"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285198"></a>Build</h3></div></div></div><p>
     After the configure step is complete, to build the executables
     from the C++ code and prepare the Python scripts, run:
 
           </p><pre class="screen">$ <strong class="userinput"><code>make</code></strong></pre><p>
-        </p></div><div class="section" title="Install"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285221"></a>Install</h3></div></div></div><p>
+        </p></div><div class="section" title="Install"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285214"></a>Install</h3></div></div></div><p>
           To install the BIND 10 executables, support files,
           and documentation, run:
           </p><pre class="screen">$ <strong class="userinput"><code>make install</code></strong></pre><p>
-        </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The install step may require superuser privileges.</p></div></div><div class="section" title="Install Hierarchy"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285244"></a>Install Hierarchy</h3></div></div></div><p>
+        </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The install step may require superuser privileges.</p></div></div><div class="section" title="Install Hierarchy"><div class="titlepage"><div><div><h3 class="title"><a name="id1168230285238"></a>Install Hierarchy</h3></div></div></div><p>
           The following is the layout of the complete BIND 10 installation:
           </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
                 <code class="filename">bin/</code> —
@@ -490,15 +486,12 @@ shutdown
       the details and relays (over a <span class="command"><strong>b10-msgq</strong></span> command
       channel) the configuration on to the specified module.
     </p><p>
-    </p></div><div class="chapter" title="Chapter 8. Authoritative Server"><div class="titlepage"><div><div><h2 class="title"><a name="authserver"></a>Chapter 8. Authoritative Server</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230285822">Server Configurations</a></span></dt><dt><span class="section"><a href="#id1168230285888">Data Source Backends</a></span></dt><dt><span class="section"><a href="#id1168230285918">Loading Master Zones Files</a></span></dt></dl></div><p>
+    </p></div><div class="chapter" title="Chapter 8. Authoritative Server"><div class="titlepage"><div><div><h2 class="title"><a name="authserver"></a>Chapter 8. Authoritative Server</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230285812">Server Configurations</a></span></dt><dt><span class="section"><a href="#id1168230285877">Data Source Backends</a></span></dt><dt><span class="section"><a href="#id1168230285908">Loading Master Zones Files</a></span></dt></dl></div><p>
       The <span class="command"><strong>b10-auth</strong></span> is the authoritative DNS server.
       It supports EDNS0 and DNSSEC. It supports IPv6.
       Normally it is started by the <span class="command"><strong>bind10</strong></span> master
       process.
-    </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
-      This development prototype release listens on all interfaces
-      and the non-standard port 5300.
-    </p></div><div class="section" title="Server Configurations"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285822"></a>Server Configurations</h2></div></div></div><p>
+    </p><div class="section" title="Server Configurations"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285812"></a>Server Configurations</h2></div></div></div><p>
         <span class="command"><strong>b10-auth</strong></span> is configured via the
         <span class="command"><strong>b10-cfgmgr</strong></span> configuration manager.
         The module name is <span class="quote">“<span class="quote">Auth</span>”</span>.
@@ -518,7 +511,7 @@ This may be a temporary setting until then.
         </p><div class="variablelist"><dl><dt><span class="term">shutdown</span></dt><dd>Stop the authoritative DNS server.
               </dd></dl></div><p>
 
-      </p></div><div class="section" title="Data Source Backends"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285888"></a>Data Source Backends</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+      </p></div><div class="section" title="Data Source Backends"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285877"></a>Data Source Backends</h2></div></div></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
         For the development prototype release, <span class="command"><strong>b10-auth</strong></span>
         supports a SQLite3 data source backend and in-memory data source
         backend.
@@ -532,7 +525,7 @@ This may be a temporary setting until then.
         The default is <code class="filename">/usr/local/var/</code>.)
   This data file location may be changed by defining the
   <span class="quote">“<span class="quote">database_file</span>”</span> configuration.
-      </p></div><div class="section" title="Loading Master Zones Files"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285918"></a>Loading Master Zones Files</h2></div></div></div><p>
+      </p></div><div class="section" title="Loading Master Zones Files"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230285908"></a>Loading Master Zones Files</h2></div></div></div><p>
         RFC 1035 style DNS master zone files may imported
         into a BIND 10 data source by using the
         <span class="command"><strong>b10-loadzone</strong></span> utility.
@@ -562,10 +555,9 @@ This may be a temporary setting until then.
         all records from that prior zone disappear and a whole new set
         appears.
       </p></div></div><div class="chapter" title="Chapter 9. Incoming Zone Transfers"><div class="titlepage"><div><div><h2 class="title"><a name="xfrin"></a>Chapter 9. Incoming Zone Transfers</h2></div></div></div><p>
-      The <span class="command"><strong>b10-xfrin</strong></span> process is started by
-      <span class="command"><strong>bind10</strong></span>.
-      It can be manually triggered to request an AXFR zone
-      transfer. When received, it is stored in the BIND 10
+      Incoming zones are transferred using the <span class="command"><strong>b10-xfrin</strong></span>
+      process which is started by <span class="command"><strong>bind10</strong></span>.
+      When received, the zone is stored in the BIND 10
       data store, and its records can be served by
       <span class="command"><strong>b10-auth</strong></span>.
       In combination with <span class="command"><strong>b10-zonemgr</strong></span> (for
@@ -574,6 +566,9 @@ This may be a temporary setting until then.
     </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
      The current development release of BIND 10 only supports
      AXFR. (IXFR is not supported.) 
+
+
+
     </p></div><p>
        To manually trigger a zone transfer to retrieve a remote zone,
        you may use the <span class="command"><strong>bindctl</strong></span> utility.
@@ -608,7 +603,7 @@ This may be a temporary setting until then.
     </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
      Access control (such as allowing notifies) is not yet provided.
      The primary/secondary service is not yet complete.
-    </p></div></div><div class="chapter" title="Chapter 12. Recursive Name Server"><div class="titlepage"><div><div><h2 class="title"><a name="resolverserver"></a>Chapter 12. Recursive Name Server</h2></div></div></div><p>
+    </p></div></div><div class="chapter" title="Chapter 12. Recursive Name Server"><div class="titlepage"><div><div><h2 class="title"><a name="resolverserver"></a>Chapter 12. Recursive Name Server</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id1168230286296">Forwarding</a></span></dt></dl></div><p>
       The <span class="command"><strong>b10-resolver</strong></span> process is started by
       <span class="command"><strong>bind10</strong></span>.
 
@@ -637,26 +632,27 @@ This may be a temporary setting until then.
 > <strong class="userinput"><code>config set Resolver/listen_on [{ "address": "127.0.0.1", "port": 53 }]</code></strong>
 > <strong class="userinput"><code>config commit</code></strong>
 </pre><p>
-    </p><p>
-      To enable forwarding, the upstream address and port must be
-      configured to forward queries to, such as:
+    </p><div class="section" title="Forwarding"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id1168230286296"></a>Forwarding</h2></div></div></div><p>
 
-      </p><pre class="screen">
+        To enable forwarding, the upstream address and port must be
+        configured to forward queries to, such as:
+
+        </p><pre class="screen">
 > <strong class="userinput"><code>config set Resolver/forward_addresses [{ "address": "<em class="replaceable"><code>192.168.1.1</code></em>", "port": 53 }]</code></strong>
 > <strong class="userinput"><code>config commit</code></strong>
 </pre><p>
 
-      (Replace <em class="replaceable"><code>192.168.1.1</code></em> to point to your
-      full resolver.)
-    </p><p>
-      Normal iterative name service can be re-enabled by clearing the
-      forwarding address(es); for example:
+        (Replace <em class="replaceable"><code>192.168.1.1</code></em> to point to your
+        full resolver.)
+      </p><p>
+        Normal iterative name service can be re-enabled by clearing the
+        forwarding address(es); for example:
 
-      </p><pre class="screen">
+        </p><pre class="screen">
 > <strong class="userinput"><code>config set Resolver/forward_addresses []</code></strong>
 > <strong class="userinput"><code>config commit</code></strong>
 </pre><p>
-    </p></div><div class="chapter" title="Chapter 13. Statistics"><div class="titlepage"><div><div><h2 class="title"><a name="statistics"></a>Chapter 13. Statistics</h2></div></div></div><p>
+      </p></div></div><div class="chapter" title="Chapter 13. Statistics"><div class="titlepage"><div><div><h2 class="title"><a name="statistics"></a>Chapter 13. Statistics</h2></div></div></div><p>
       The <span class="command"><strong>b10-stats</strong></span> process is started by
       <span class="command"><strong>bind10</strong></span>.
       It periodically collects statistics data from various modules
diff --git a/src/bin/cfgmgr/b10-cfgmgr.8 b/src/bin/cfgmgr/b10-cfgmgr.8
index 03371af..719f4c6 100644
--- a/src/bin/cfgmgr/b10-cfgmgr.8
+++ b/src/bin/cfgmgr/b10-cfgmgr.8
@@ -20,6 +20,9 @@
 .\" -----------------------------------------------------------------
 .SH "NAME"
 b10-cfgmgr \- Configuration manager
+.SH "SYNOPSIS"
+.HP \w'\fBb10\-cfgmgr\fR\ 'u
+\fBb10\-cfgmgr\fR [\fB\-c\fR\fB\fIconfig\-filename\fR\fR] [\fB\-p\fR\fB\fIdata_path\fR\fR]
 .SH "DESCRIPTION"
 .PP
 The
@@ -43,8 +46,21 @@ The daemon may be cleanly stopped by sending the SIGTERM signal to the process\&
 When it exits, it saves its current configuration to
 /usr/local/var/bind10\-devel/b10\-config\&.db\&.
 
+.SH "ARGUMENTS"
 .PP
-The daemon has no command line options\&. It ignores any arguments\&.
+The arguments are as follows:
+.PP
+\fB\-c\fR\fIconfig\-filename\fR, \fB\-\-config\-filename\fR \fIconfig\-filename\fR
+.RS 4
+The configuration database filename to use\&. Can be either absolute or relative to data path\&.
+.sp
+Defaults to b10\-config\&.db
+.RE
+.PP
+\fB\-p\fR\fIdata\-path\fR, \fB\-\-data\-path\fR \fIdata\-path\fR
+.RS 4
+The path where BIND 10 looks for files\&. The configuration file is looked for here, if it is relative\&. If it is absolute, the path is ignored\&.
+.RE
 .SH "FILES"
 .PP
 /usr/local/var/bind10\-devel/b10\-config\&.db
diff --git a/src/bin/cfgmgr/b10-cfgmgr.xml b/src/bin/cfgmgr/b10-cfgmgr.xml
index 08a6a97..785a058 100644
--- a/src/bin/cfgmgr/b10-cfgmgr.xml
+++ b/src/bin/cfgmgr/b10-cfgmgr.xml
@@ -84,10 +84,7 @@
 <!-- TODO: does it periodically save configuration? -->
     </para>
 
-    <para>
-      The daemon has no command line options.  It ignores any arguments.
 <!-- TODO: add a verbose or quiet switch so it is not so noisy -->
-    </para>
   </refsect1>
 
   <refsect1>
diff --git a/src/bin/cmdctl/cmdctl.py.in b/src/bin/cmdctl/cmdctl.py.in
index b996596..f1c1021 100755
--- a/src/bin/cmdctl/cmdctl.py.in
+++ b/src/bin/cmdctl/cmdctl.py.in
@@ -1,7 +1,6 @@
 #!@PYTHON@
 
 # Copyright (C) 2010  Internet Systems Consortium.
-# Copyright (C) 2010  CZ NIC
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/bin/msgq/tests/msgq_test.py b/src/bin/msgq/tests/msgq_test.py
index 59fcf41..f926845 100644
--- a/src/bin/msgq/tests/msgq_test.py
+++ b/src/bin/msgq/tests/msgq_test.py
@@ -117,7 +117,7 @@ class SendNonblock(unittest.TestCase):
     Tests that the whole thing will not get blocked if someone does not read.
     """
 
-    def terminate_check(self, task, timeout = 10):
+    def terminate_check(self, task, timeout=30):
         """
         Runs task in separate process (task is a function) and checks
         it terminates sooner than timeout.
@@ -194,7 +194,7 @@ class SendNonblock(unittest.TestCase):
             length = len(data)
             queue_pid = os.fork()
             if queue_pid == 0:
-                signal.alarm(30)
+                signal.alarm(120)
                 msgq.setup_poller()
                 msgq.register_socket(queue)
                 msgq.run()
diff --git a/src/bin/resolver/resolver.cc b/src/bin/resolver/resolver.cc
index 7c70395..2322076 100644
--- a/src/bin/resolver/resolver.cc
+++ b/src/bin/resolver/resolver.cc
@@ -457,6 +457,9 @@ Resolver::processMessage(const IOMessage& io_message,
         } else if (qtype == RRType::IXFR()) {
             makeErrorMessage(query_message, answer_message,
                              buffer, Rcode::NOTIMP());
+        } else if (question->getClass() != RRClass::IN()) {
+            makeErrorMessage(query_message, answer_message,
+                             buffer, Rcode::REFUSED());
         } else {
             // The RecursiveQuery object will post the "resume" event to the
             // DNSServer when an answer arrives, so we don't have to do it now.
diff --git a/src/bin/tests/process_rename_test.py.in b/src/bin/tests/process_rename_test.py.in
index 81ea085..4b45210 100644
--- a/src/bin/tests/process_rename_test.py.in
+++ b/src/bin/tests/process_rename_test.py.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2010  CZ NIC
+# Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/bin/xfrin/xfrin.py.in b/src/bin/xfrin/xfrin.py.in
index fdbc990..10a866e 100755
--- a/src/bin/xfrin/xfrin.py.in
+++ b/src/bin/xfrin/xfrin.py.in
@@ -1,7 +1,6 @@
 #!@PYTHON@
 
 # Copyright (C) 2010  Internet Systems Consortium.
-# Copyright (C) 2010  CZ NIC
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/bin/xfrout/xfrout.py.in b/src/bin/xfrout/xfrout.py.in
index f420d4b..b3f9e95 100755
--- a/src/bin/xfrout/xfrout.py.in
+++ b/src/bin/xfrout/xfrout.py.in
@@ -1,7 +1,6 @@
 #!@PYTHON@
 
 # Copyright (C) 2010  Internet Systems Consortium.
-# Copyright (C) 2010  CZ NIC
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/bin/zonemgr/zonemgr.py.in b/src/bin/zonemgr/zonemgr.py.in
index f9659a3..2cededf 100755
--- a/src/bin/zonemgr/zonemgr.py.in
+++ b/src/bin/zonemgr/zonemgr.py.in
@@ -1,7 +1,6 @@
 #!@PYTHON@
 
 # Copyright (C) 2010  Internet Systems Consortium.
-# Copyright (C) 2010  CZ NIC
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/asiolink/io_socket.cc b/src/lib/asiolink/io_socket.cc
index fb325e9..c386ca1 100644
--- a/src/lib/asiolink/io_socket.cc
+++ b/src/lib/asiolink/io_socket.cc
@@ -1,5 +1,3 @@
-// Copyright (C) 2010  CZ NIC
-// Copyed from other version of auth/asiolink.cc which is:
 // Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
diff --git a/src/lib/asiolink/tests/dns_server_unittest.cc b/src/lib/asiolink/tests/dns_server_unittest.cc
index 4f58652..5b8b683 100644
--- a/src/lib/asiolink/tests/dns_server_unittest.cc
+++ b/src/lib/asiolink/tests/dns_server_unittest.cc
@@ -144,6 +144,7 @@ class SimpleClient : public ServerStopper {
     {
         wait_for_response_timer_.reset(new deadline_timer(service));
         received_data_ = new char[MAX_DATA_LEN];
+        received_data_len_ = 0;
         wait_server_time_out_ = wait_server_time_out;
     }
 
diff --git a/src/lib/config/tests/testdata/Makefile.am b/src/lib/config/tests/testdata/Makefile.am
index a16b106..94c087d 100644
--- a/src/lib/config/tests/testdata/Makefile.am
+++ b/src/lib/config/tests/testdata/Makefile.am
@@ -21,6 +21,7 @@ EXTRA_DIST += data22_6.data
 EXTRA_DIST += data22_7.data
 EXTRA_DIST += data22_8.data
 EXTRA_DIST += data22_9.data
+EXTRA_DIST += data22_10.data
 EXTRA_DIST += spec1.spec
 EXTRA_DIST += spec2.spec
 EXTRA_DIST += spec3.spec
diff --git a/src/lib/datasrc/result.h b/src/lib/datasrc/result.h
index 201cbcc..f7ca363 100644
--- a/src/lib/datasrc/result.h
+++ b/src/lib/datasrc/result.h
@@ -1,4 +1,3 @@
-// Copyright (C) 2010  CZ NIC
 // Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc
index 16d749c..83fbb58 100644
--- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc
+++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc
@@ -1,5 +1,4 @@
 // Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
-// Copyright (C) 2011  CZ NIC
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/datasrc/zone.h b/src/lib/datasrc/zone.h
index f70274f..1252c94 100644
--- a/src/lib/datasrc/zone.h
+++ b/src/lib/datasrc/zone.h
@@ -1,4 +1,3 @@
-// Copyright (C) 2010  CZ NIC
 // Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
diff --git a/src/lib/log/README b/src/lib/log/README
index 072649e..ed11b5b 100644
--- a/src/lib/log/README
+++ b/src/lib/log/README
@@ -158,7 +158,7 @@ The symbols define the keys in the global message dictionary.
 The namespace enclosing the symbols is set by the $NAMESPACE directive.
 
 The "PREFIX_" part of the symbol name is the string defined in the $PREFIX
-the argument to the directive.  So "$PREFIX MSG_" would prefix the identifer
+the argument to the directive.  So "$PREFIX MSG_" would prefix the identifier
 ABC with "MSG_" to give the symbol MSG_ABC.  Similarly "$PREFIX E" would
 prefix it with "E" to give the symbol EABC.  If no $PREFIX is given, no
 prefix appears (so the symbol in this example would be ABC).
@@ -330,7 +330,7 @@ When logging events, make a distinction between events related to the server
 and events related to DNS messages received.  Caution needs to be exercised
 with the latter as, if the logging is enabled in the normal course of events,
 such logging could be a denial of service vector. For example, suppose that
-the main authoritiative service logger were to log both zone loading and
+the main authoritative service logger were to log both zone loading and
 unloading as INFO and a warning message if it received an invalid packet. An
 attacker could make the INFO messages unusable by flooding the server with
 malformed packets.
diff --git a/src/lib/log/dummylog.cc b/src/lib/log/dummylog.cc
index dda0578..5f025e1 100644
--- a/src/lib/log/dummylog.cc
+++ b/src/lib/log/dummylog.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/log/dummylog.h b/src/lib/log/dummylog.h
index 87da9ac..ef5af13 100644
--- a/src/lib/log/dummylog.h
+++ b/src/lib/log/dummylog.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
@@ -38,7 +38,7 @@ extern std::string dprefix;
  * places where logging should happen. When it is removed, compiler will do
  * our work of finding the places.
  *
- * The only thing it does is printing the dprogram prefix, message and
+ * The only thing it does is printing the program prefix, message and
  * a newline if denabled is true.
  *
  * There are no tests for this function, since it is only temporary and
diff --git a/src/lib/log/logger.h b/src/lib/log/logger.h
index 691eb73..88e88e2 100644
--- a/src/lib/log/logger.h
+++ b/src/lib/log/logger.h
@@ -73,7 +73,7 @@ public:
     /// deletion of the underlying log4cxx data structures when the logger is
     /// deleted.  Setting it false for externally-declared loggers inhibits
     /// their deletion; so at program exit the memory is not reclaimed during
-    /// program rundown, only when the process is delected.  Setting it true
+    /// program rundown, only when the process is selected.  Setting it true
     /// for loggers that will be deleted in the normal running of the program
     /// enables their deletion - which causes no issues as the problem only
     /// manifests itself during program rundown.
diff --git a/src/lib/log/logger_support.cc b/src/lib/log/logger_support.cc
index 1ac4481..f8bf075 100644
--- a/src/lib/log/logger_support.cc
+++ b/src/lib/log/logger_support.cc
@@ -21,7 +21,7 @@
 /// appropriate).
 /// b) Reads in the local message file is one has been supplied.
 ///
-/// These functions will be replaced once the code has bneen written to obtain
+/// These functions will be replaced once the code has been written to obtain
 /// the logging parameters from the configuration database.
 
 #include <algorithm>
diff --git a/src/lib/log/logger_support.h b/src/lib/log/logger_support.h
index 57d8383..6b5fdec 100644
--- a/src/lib/log/logger_support.h
+++ b/src/lib/log/logger_support.h
@@ -34,7 +34,7 @@ namespace log {
 ///
 /// \param root Name of the root logger
 /// \param severity Severity at which to log
-/// \param dbglevel Debug severiy (ignored if "severity" is not "DEBUG")
+/// \param dbglevel Debug severity (ignored if "severity" is not "DEBUG")
 /// \param file Name of the local message file.
 void initLogger(const std::string& root, isc::log::Severity severity,
     int dbglevel, const char* file);
diff --git a/src/lib/log/message_dictionary.cc b/src/lib/log/message_dictionary.cc
index c091369..deb8232 100644
--- a/src/lib/log/message_dictionary.cc
+++ b/src/lib/log/message_dictionary.cc
@@ -109,5 +109,5 @@ MessageDictionary::globalDictionary() {
 
 
 
-} // namspace log
+} // namespace log
 } // namespace isc
diff --git a/src/lib/log/message_reader.cc b/src/lib/log/message_reader.cc
index 7ae7ae0..4402b0e 100644
--- a/src/lib/log/message_reader.cc
+++ b/src/lib/log/message_reader.cc
@@ -186,7 +186,7 @@ MessageReader::parseNamespace(const vector<string>& tokens) {
 
 // Process message.  By the time this method is called, the line has been
 // stripped of leading and trailing spaces, and we believe that it is a line
-// defining a message.  The first token on the line is convered to uppercase
+// defining a message.  The first token on the line is converted to uppercase
 // and becomes the message ID; the rest of the line is the message text.
 
 void
diff --git a/src/lib/log/messagedef.mes b/src/lib/log/messagedef.mes
index 55b3e7c..3599388 100644
--- a/src/lib/log/messagedef.mes
+++ b/src/lib/log/messagedef.mes
@@ -37,12 +37,12 @@ DUPMSGID  duplicate message ID (%s) in compiled code
 DUPLNS    duplicate $NAMESPACE directive found
 + When reading a message file, more than one $NAMESPACE directive was found.  In
 + this version of the code, such a condition is regarded as an error and the
-+ read will be abandonded.
++ read will be abandoned.
 
 DUPLPRFX    duplicate $PREFIX directive found
 + When reading a message file, more than one $PREFIX directive was found.  In
 + this version of the code, such a condition is regarded as an error and the
-+ read will be abandonded.
++ read will be abandoned.
 
 IDNOTFND    could not replace message for '%s': no such message identification
 + During start-up a local message file was read.  A line with the listed
@@ -53,7 +53,7 @@ IDNOTFND    could not replace message for '%s': no such message identification
 + identification has been removed.
 +
 + This message may appear a number of times in the file, once for every such
-+ unknown mnessage identification.
++ unknown message identification.
 
 MSGRDERR    error reading from message file %s: %s
 + The specified error was encountered reading from the named message file.
@@ -69,9 +69,9 @@ NSEXTRARG  $NAMESPACE directive has too many arguments
 
 NSINVARG    $NAMESPACE directive has an invalid argument ('%s')
 + The $NAMESPACE argument should be a valid C++ namespace.  The reader does a
-+ cursory check on its validity, checking that the characters in the namspace
++ cursory check on its validity, checking that the characters in the namespace
 + are correct.  The error is generated when the reader finds an invalid
-+ character. (Valid are alphanumeric characters, underscroes and colons.)
++ character. (Valid are alphanumeric characters, underscores and colons.)
 
 NOMSGTXT    a line containing a message ID ('%s') and nothing else was found
 + Message definitions comprise lines starting with a message identification (a
diff --git a/src/lib/log/strutil.h b/src/lib/log/strutil.h
index f44b0d0..087410f 100644
--- a/src/lib/log/strutil.h
+++ b/src/lib/log/strutil.h
@@ -79,7 +79,7 @@ std::vector<std::string> tokens(const std::string& text,
 ///
 /// Used in uppercase() to pass as an argument to std::transform().  The
 /// function std::toupper() can't be used as it takes an "int" as its argument;
-/// this confuses the template expansion mechanism because defererencing a
+/// this confuses the template expansion mechanism because dereferencing a
 /// string::iterator returns a char.
 ///
 /// \param chr Character to be upper-cased.
@@ -104,7 +104,7 @@ inline void uppercase(std::string& text) {
 ///
 /// Used in lowercase() to pass as an argument to std::transform().  The
 /// function std::tolower() can't be used as it takes an "int" as its argument;
-/// this confuses the template expansion mechanism because defererencing a
+/// this confuses the template expansion mechanism because dereferencing a
 /// string::iterator returns a char.
 ///
 /// \param chr Character to be lower-cased.
diff --git a/src/lib/nsas/fetchable.h b/src/lib/nsas/fetchable.h
index e828611..461cfca 100644
--- a/src/lib/nsas/fetchable.h
+++ b/src/lib/nsas/fetchable.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/nsas/nameserver_address.cc b/src/lib/nsas/nameserver_address.cc
index b76d7b8..19d18c5 100644
--- a/src/lib/nsas/nameserver_address.cc
+++ b/src/lib/nsas/nameserver_address.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/nsas/nameserver_entry.cc b/src/lib/nsas/nameserver_entry.cc
index 367ea0a..40d5cd7 100644
--- a/src/lib/nsas/nameserver_entry.cc
+++ b/src/lib/nsas/nameserver_entry.cc
@@ -174,6 +174,9 @@ NameserverEntry::updateAddressRTTAtIndex(uint32_t rtt, size_t index,
     uint32_t old_rtt = addresses_[family][index].getRTT();
     uint32_t new_rtt = (uint32_t)(old_rtt * UPDATE_RTT_ALPHA + rtt *
         (1 - UPDATE_RTT_ALPHA));
+    if (new_rtt == 0) {
+        new_rtt = 1;
+    }
     addresses_[family][index].setRTT(new_rtt);
 }
 
diff --git a/src/lib/nsas/tests/fetchable_unittest.cc b/src/lib/nsas/tests/fetchable_unittest.cc
index f94cd16..4e9f3b4 100644
--- a/src/lib/nsas/tests/fetchable_unittest.cc
+++ b/src/lib/nsas/tests/fetchable_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/nsas/zone_entry.cc b/src/lib/nsas/zone_entry.cc
index 35cb79a..3af70a8 100644
--- a/src/lib/nsas/zone_entry.cc
+++ b/src/lib/nsas/zone_entry.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/python/isc/config/ccsession.py b/src/lib/python/isc/config/ccsession.py
index 0e602b7..942bf79 100644
--- a/src/lib/python/isc/config/ccsession.py
+++ b/src/lib/python/isc/config/ccsession.py
@@ -1,5 +1,4 @@
 # Copyright (C) 2009  Internet Systems Consortium.
-# Copyright (C) 2010  CZ NIC
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/python/isc/net/parse.py b/src/lib/python/isc/net/parse.py
index 86d95aa..30edadc 100644
--- a/src/lib/python/isc/net/parse.py
+++ b/src/lib/python/isc/net/parse.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010  CZ NIC
+# Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/python/isc/net/tests/parse_test.py b/src/lib/python/isc/net/tests/parse_test.py
index 53fca16..ba97da6 100644
--- a/src/lib/python/isc/net/tests/parse_test.py
+++ b/src/lib/python/isc/net/tests/parse_test.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010  CZ NIC
+# Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/python/isc/util/process.py b/src/lib/python/isc/util/process.py
index 25775af..84a2259 100644
--- a/src/lib/python/isc/util/process.py
+++ b/src/lib/python/isc/util/process.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010  CZ NIC
+# Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/python/isc/util/tests/process_test.py b/src/lib/python/isc/util/tests/process_test.py
index ffe8371..5005aa0 100644
--- a/src/lib/python/isc/util/tests/process_test.py
+++ b/src/lib/python/isc/util/tests/process_test.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010  CZ NIC
+# Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 #
 # Permission to use, copy, modify, and distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/resolve/recursive_query.cc b/src/lib/resolve/recursive_query.cc
index b68d80f..0ee5813 100644
--- a/src/lib/resolve/recursive_query.cc
+++ b/src/lib/resolve/recursive_query.cc
@@ -27,6 +27,7 @@
 #include <dns/question.h>
 #include <dns/message.h>
 #include <dns/opcode.h>
+#include <dns/exceptions.h>
 
 #include <resolve/resolve.h>
 #include <cache/resolver_cache.h>
@@ -280,6 +281,7 @@ private:
         if (test_server_.second != 0) {
             dlog("Sending upstream query (" + question_.toText() +
                  ") to test server at " + test_server_.first);
+            gettimeofday(&current_ns_qsent_time, NULL);
             ++outstanding_events_;
             IOFetch query(protocol, io_, question_,
                 test_server_.first,
@@ -292,6 +294,7 @@ private:
             dlog("Sending upstream query (" + question_.toText() +
                 ") to " + upstream_->at(serverIndex).first);
             ++outstanding_events_;
+            gettimeofday(&current_ns_qsent_time, NULL);
             IOFetch query(protocol, io_, question_,
                 upstream_->at(serverIndex).first,
                 upstream_->at(serverIndex).second, buffer_, this,
@@ -607,34 +610,57 @@ public:
             // Update the NSAS with the time it took
             struct timeval cur_time;
             gettimeofday(&cur_time, NULL);
-            uint32_t rtt;
-            if (cur_time.tv_sec >= current_ns_qsent_time.tv_sec ||
-                cur_time.tv_usec > current_ns_qsent_time.tv_usec) {
+            uint32_t rtt = 0;
+
+            // Only calculate RTT if it is positive
+            if (cur_time.tv_sec > current_ns_qsent_time.tv_sec ||
+                (cur_time.tv_sec == current_ns_qsent_time.tv_sec &&
+                 cur_time.tv_usec > current_ns_qsent_time.tv_usec)) {
                 rtt = 1000 * (cur_time.tv_sec - current_ns_qsent_time.tv_sec);
                 rtt += (cur_time.tv_usec - current_ns_qsent_time.tv_usec) / 1000;
-            } else {
-                rtt = 1;
             }
 
             dlog("RTT: " + boost::lexical_cast<std::string>(rtt));
             current_ns_address.updateRTT(rtt);
-            
-            Message incoming(Message::PARSE);
-            InputBuffer ibuf(buffer_->getData(), buffer_->getLength());
-            incoming.fromWire(ibuf);
-
-            buffer_->clear();
-            if (recursive_mode() &&
-                incoming.getRcode() == Rcode::NOERROR()) {
-                done_ = handleRecursiveAnswer(incoming);
-            } else {
-                isc::resolve::copyResponseMessage(incoming, answer_message_);
-                done_ = true;
-            }
-            
-            if (done_) {
-                callCallback(true);
-                stop();
+
+            try {
+                Message incoming(Message::PARSE);
+                InputBuffer ibuf(buffer_->getData(), buffer_->getLength());
+
+                incoming.fromWire(ibuf);
+
+                buffer_->clear();
+                if (recursive_mode() &&
+                    incoming.getRcode() == Rcode::NOERROR()) {
+                    done_ = handleRecursiveAnswer(incoming);
+                } else {
+                    isc::resolve::copyResponseMessage(incoming, answer_message_);
+                    done_ = true;
+                }
+                if (done_) {
+                    callCallback(true);
+                    stop();
+                }
+            } catch (const isc::dns::DNSProtocolError& dpe) {
+                dlog("DNS Protocol error in answer for " +
+                     question_.toText() + " " +
+                     question_.getType().toText() + ": " +
+                     dpe.what());
+                // Right now, we treat this similar to timeouts
+                // (except we don't store RTT)
+                // We probably want to make this an integral part
+                // of the fetch data process. (TODO)
+                if (retries_--) {
+                    dlog("Retrying");
+                    send();
+                } else {
+                    dlog("Giving up");
+                    if (!callback_called_) {
+                        makeSERVFAIL();
+                        callCallback(true);
+                    }
+                    stop();
+                }
             }
         } else if (!done_ && retries_--) {
             // Query timed out, but we have some retries, so send again
diff --git a/src/lib/resolve/resolver_interface.h b/src/lib/resolve/resolver_interface.h
index e08bb64..1d01e90 100644
--- a/src/lib/resolve/resolver_interface.h
+++ b/src/lib/resolve/resolver_interface.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2010  CZ NIC
+// Copyright (C) 2010  Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
diff --git a/src/lib/resolve/tests/recursive_query_unittest_2.cc b/src/lib/resolve/tests/recursive_query_unittest_2.cc
index 21798b1..643c5a3 100644
--- a/src/lib/resolve/tests/recursive_query_unittest_2.cc
+++ b/src/lib/resolve/tests/recursive_query_unittest_2.cc
@@ -107,8 +107,10 @@ public:
         UDP_ROOT = 1,               ///< Query root server over UDP
         UDP_ORG = 2,                ///< Query ORG server over UDP
         TCP_ORG = 3,                ///< Query ORG server over TCP
-        UDP_EXAMPLE_ORG = 4,        ///< Query EXAMPLE.ORG server over UDP
-        COMPLETE = 5                ///< Query is complete
+        UDP_EXAMPLE_ORG_BAD = 4,    ///< Query EXAMPLE.ORG server over UDP
+                                    ///< (return malformed packet)
+        UDP_EXAMPLE_ORG = 5,        ///< Query EXAMPLE.ORG server over UDP
+        COMPLETE = 6                ///< Query is complete
     };
 
     // Common stuff
@@ -289,6 +291,10 @@ public:
         Message msg(Message::RENDER);
         setCommonMessage(msg, qid);
 
+        // In the case of UDP_EXAMPLE_ORG_BAD, we shall mangle the
+        // response
+        bool mangle_response = false;
+
         // Set up state-dependent bits:
         switch (expected_) {
         case UDP_ROOT:
@@ -309,6 +315,14 @@ public:
             expected_ = TCP_ORG;
             break;
 
+         case UDP_EXAMPLE_ORG_BAD:
+            // Return the answer to the question.
+            setAnswerWwwExampleOrg(msg);
+            // Mangle the response to enfore another query
+            mangle_response = true;
+            expected_ = UDP_EXAMPLE_ORG;
+            break;
+
          case UDP_EXAMPLE_ORG:
             // Return the answer to the question.
             setAnswerWwwExampleOrg(msg);
@@ -324,6 +338,12 @@ public:
         MessageRenderer renderer(*udp_send_buffer_);
         msg.toWire(renderer);
 
+        if (mangle_response) {
+            // mangle the packet a bit
+            // set additional to one more
+            udp_send_buffer_->writeUint8At(3, 11);
+        }
+
         // Return a message back to the IOFetch object (after setting the
         // expected length of data for the check in the send handler).
         udp_length_ = udp_send_buffer_->getLength();
@@ -454,7 +474,7 @@ public:
         // readiness for the next read. (If any - at present, there is only
         // one read in the test, although extensions to this test suite could
         // change that.)
-        expected_ = UDP_EXAMPLE_ORG;
+        expected_ = UDP_EXAMPLE_ORG_BAD;
         tcp_cumulative_ = 0;
 
         // Unless we go through a callback loop we cannot simply use
diff --git a/tests/system/bindctl/tests.sh b/tests/system/bindctl/tests.sh
index 354f349..6923c41 100755
--- a/tests/system/bindctl/tests.sh
+++ b/tests/system/bindctl/tests.sh
@@ -31,7 +31,7 @@ grep 192.0.2.1 dig.out.$n > /dev/null || status=1
 if [ $status != 0 ]; then echo "I:failed"; fi
 n=`expr $n + 1`
 
-echo "I:Checking BIND 10 statistics after a pose ($n)"
+echo "I:Checking BIND 10 statistics after a pause ($n)"
 # wait for 2sec to make sure b10-stats gets the latest statistics.
 # note that we set statistics-interval to 1.
 sleep 2
@@ -67,7 +67,7 @@ grep 192.0.2.1 dig.out.$n > /dev/null || status=1
 if [ $status != 0 ]; then echo "I:failed"; fi
 n=`expr $n + 1`
 
-echo "I:Rechecking BIND 10 statistics after a pose ($n)"
+echo "I:Rechecking BIND 10 statistics after a pause ($n)"
 sleep 2
 echo 'Stats show
 ' | $RUN_BINDCTL \




More information about the bind10-changes mailing list