<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY mdash  "&#x2014;" >
<!ENTITY % version SYSTEM "version.ent">
%version;
]>
<!--
     This XML document is generated using the system_messages.py tool
     based on the .mes message files.

     Do not edit this file.
-->
<book>
  <?xml-stylesheet href="bind10-guide.css" type="text/css"?>

  <bookinfo>
    <title>BIND 10 Messages Manual</title>

    <copyright>
      <year>2011-2012</year><holder>Internet Systems Consortium, Inc.</holder>
    </copyright>

    <abstract>
      <para>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.
      </para>
      <para>
        This is the messages manual for BIND 10 version &__VERSION__;.
	    The most up-to-date version of this document, along with
	    other documents for BIND 10, can be found at
        <ulink url="http://bind10.isc.org/docs"/>.
      </para>
    </abstract>

    <releaseinfo>This is the messages manual for BIND 10 version
        &__VERSION__;.</releaseinfo>
  </bookinfo>

  <chapter id="intro">
    <title>Introduction</title>
    <para>
      This document lists each message that can be logged by the
      programs in the BIND 10 package.  Each entry in this manual
      is of the form:
      <screen>IDENTIFICATION message-text</screen>
      ... where "IDENTIFICATION" is the message identification included
      in each message logged and "message-text" is the accompanying
      message text.  The "message-text" may include placeholders of the
      form "%1", "%2" etc.; these parameters are replaced by relevant
      values when the message is logged.
    </para>
    <para>
      Each entry is also accompanied by a description giving more
      information about the circumstances that result in the message
      being logged.
    </para>
    <para>
      For information on configuring and using BIND 10 logging,
      refer to the <ulink url="bind10-guide.html">BIND 10 Guide</ulink>.
    </para>
  </chapter>

  <chapter id="messages">
    <title>BIND 10 Messages</title>
    <para>
      <variablelist>

<varlistentry id="ASIODNS_FD_ADD_TCP">
<term>ASIODNS_FD_ADD_TCP adding a new TCP server by opened fd %1</term>
<listitem><para>
A debug message informing about installing a file descriptor as a server.
The file descriptor number is noted.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_FD_ADD_UDP">
<term>ASIODNS_FD_ADD_UDP adding a new UDP server by opened fd %1</term>
<listitem><para>
A debug message informing about installing a file descriptor as a server.
The file descriptor number is noted.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_FETCH_COMPLETED">
<term>ASIODNS_FETCH_COMPLETED upstream fetch to %1(%2) has now completed</term>
<listitem><para>
A debug message, this records that the upstream fetch (a query made by the
resolver on behalf of its client) to the specified address has completed.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_FETCH_STOPPED">
<term>ASIODNS_FETCH_STOPPED upstream fetch to %1(%2) has been stopped</term>
<listitem><para>
An external component has requested the halting of an upstream fetch.  This
is an allowed operation, and the message should only appear if debug is
enabled.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_OPEN_SOCKET">
<term>ASIODNS_OPEN_SOCKET error %1 opening %2 socket to %3(%4)</term>
<listitem><para>
The asynchronous I/O code encountered an error when trying to open a socket
of the specified protocol in order to send a message to the target address.
The number of the system error that caused the problem is given in the
message.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_READ_DATA">
<term>ASIODNS_READ_DATA error %1 reading %2 data from %3(%4)</term>
<listitem><para>
The asynchronous I/O code encountered an error when trying to read data from
the specified address on the given protocol.  The number of the system
error that caused the problem is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_READ_TIMEOUT">
<term>ASIODNS_READ_TIMEOUT receive timeout while waiting for data from %1(%2)</term>
<listitem><para>
An upstream fetch from the specified address timed out.  This may happen for
any number of reasons and is most probably a problem at the remote server
or a problem on the network.  The message will only appear if debug is
enabled.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_SEND_DATA">
<term>ASIODNS_SEND_DATA error %1 sending data using %2 to %3(%4)</term>
<listitem><para>
The asynchronous I/O code encountered an error when trying to send data to
the specified address on the given protocol.  The number of the system
error that caused the problem is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_UNKNOWN_ORIGIN">
<term>ASIODNS_UNKNOWN_ORIGIN unknown origin for ASIO error code %1 (protocol: %2, address %3)</term>
<listitem><para>
An internal consistency check on the origin of a message from the
asynchronous I/O module failed. This may indicate an internal error;
please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_UNKNOWN_RESULT">
<term>ASIODNS_UNKNOWN_RESULT unknown result (%1) when IOFetch::stop() was executed for I/O to %2(%3)</term>
<listitem><para>
An internal error indicating that the termination method of the resolver's
upstream fetch class was called with an unknown result code (which is
given in the message).  Please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_AXFR_ERROR">
<term>AUTH_AXFR_ERROR error handling AXFR request: %1</term>
<listitem><para>
This is a debug message produced by the authoritative server when it
has encountered an error processing an AXFR request. The message gives
the reason for the error, and the server will return a SERVFAIL code to
the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_AXFR_UDP">
<term>AUTH_AXFR_UDP AXFR query received over UDP</term>
<listitem><para>
This is a debug message output when the authoritative server has received
an AXFR query over UDP. Use of UDP for AXFRs is not permitted by the
protocol, so the server will return a FORMERR error to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_COMMAND_FAILED">
<term>AUTH_COMMAND_FAILED execution of command channel instruction '%1' failed: %2</term>
<listitem><para>
Execution of the specified command by the authoritative server failed. The
message contains the reason for the failure.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_CONFIG_CHANNEL_CREATED">
<term>AUTH_CONFIG_CHANNEL_CREATED configuration session channel created</term>
<listitem><para>
This is a debug message indicating that authoritative server has created
the channel to the configuration manager.  It is issued during server
startup is an indication that the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_CONFIG_CHANNEL_ESTABLISHED">
<term>AUTH_CONFIG_CHANNEL_ESTABLISHED configuration session channel established</term>
<listitem><para>
This is a debug message indicating that authoritative server
has established communication the configuration manager over the
previously-created channel. It is issued during server startup is an
indication that the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_CONFIG_CHANNEL_STARTED">
<term>AUTH_CONFIG_CHANNEL_STARTED configuration session channel started</term>
<listitem><para>
This is a debug message, issued when the authoritative server has
posted a request to be notified when new configuration information is
available. It is issued during server startup is an indication that
the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_CONFIG_LOAD_FAIL">
<term>AUTH_CONFIG_LOAD_FAIL load of configuration failed: %1</term>
<listitem><para>
An attempt to configure the server with information from the configuration
database during the startup sequence has failed. (The reason for
the failure is given in the message.) The server will continue its
initialization although it may not be configured in the desired way.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_CONFIG_UPDATE_FAIL">
<term>AUTH_CONFIG_UPDATE_FAIL update of configuration failed: %1</term>
<listitem><para>
At attempt to update the configuration the server with information
from the configuration database has failed, the reason being given in
the message.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_DATA_SOURCE">
<term>AUTH_DATA_SOURCE data source database file: %1</term>
<listitem><para>
This is a debug message produced by the authoritative server when it accesses a
datebase data source, listing the file that is being accessed.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_DNS_SERVICES_CREATED">
<term>AUTH_DNS_SERVICES_CREATED DNS services created</term>
<listitem><para>
This is a debug message indicating that the component that will handling
incoming queries for the authoritative server (DNSServices) has been
successfully created. It is issued during server startup is an indication
that the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_HEADER_PARSE_FAIL">
<term>AUTH_HEADER_PARSE_FAIL unable to parse header in received DNS packet: %1</term>
<listitem><para>
This is a debug message, generated by the authoritative server when an
attempt to parse the header of a received DNS packet has failed. (The
reason for the failure is given in the message.) The server will drop the
packet.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_INVALID_STATISTICS_DATA">
<term>AUTH_INVALID_STATISTICS_DATA invalid specification of statistics data specified</term>
<listitem><para>
An error was encountered when the authoritiative server specified
statistics data which is invalid for the auth specification file.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_LOAD_TSIG">
<term>AUTH_LOAD_TSIG loading TSIG keys</term>
<listitem><para>
This is a debug message indicating that the authoritative server
has requested the keyring holding TSIG keys from the configuration
database. It is issued during server startup is an indication that the
initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_LOAD_ZONE">
<term>AUTH_LOAD_ZONE loaded zone %1/%2</term>
<listitem><para>
This debug message is issued during the processing of the 'loadzone' command
when the authoritative server has successfully loaded the named zone of the
named class.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_MEM_DATASRC_DISABLED">
<term>AUTH_MEM_DATASRC_DISABLED memory data source is disabled for class %1</term>
<listitem><para>
This is a debug message reporting that the authoritative server has
discovered that the memory data source is disabled for the given class.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_MEM_DATASRC_ENABLED">
<term>AUTH_MEM_DATASRC_ENABLED memory data source is enabled for class %1</term>
<listitem><para>
This is a debug message reporting that the authoritative server has
discovered that the memory data source is enabled for the given class.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_NOTIFY_QUESTIONS">
<term>AUTH_NOTIFY_QUESTIONS invalid number of questions (%1) in incoming NOTIFY</term>
<listitem><para>
This debug message is logged by the authoritative server when it receives
a NOTIFY packet that contains zero or more than one question. (A valid
NOTIFY packet contains one question.) The server will return a FORMERR
error to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_NOTIFY_RRTYPE">
<term>AUTH_NOTIFY_RRTYPE invalid question RR type (%1) in incoming NOTIFY</term>
<listitem><para>
This debug message is logged by the authoritative server when it receives
a NOTIFY packet that an RR type of something other than SOA in the
question section. (The RR type received is included in the message.) The
server will return a FORMERR error to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_NO_STATS_SESSION">
<term>AUTH_NO_STATS_SESSION session interface for statistics is not available</term>
<listitem><para>
The authoritative server had no session with the statistics module at the
time it attempted to send it data: the attempt has been abandoned. This
could be an error in configuration.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_NO_XFRIN">
<term>AUTH_NO_XFRIN received NOTIFY but XFRIN session is not running</term>
<listitem><para>
This is a debug message produced by the authoritative server when it receives
a NOTIFY packet but the XFRIN process is not running. The packet will be
dropped and nothing returned to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_PACKET_PARSE_ERROR">
<term>AUTH_PACKET_PARSE_ERROR unable to parse received DNS packet: %1</term>
<listitem><para>
This is a debug message, generated by the authoritative server when an
attempt to parse a received DNS packet has failed due to something other
than a protocol error. The reason for the failure is given in the message;
the server will return a SERVFAIL error code to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_PACKET_PROTOCOL_ERROR">
<term>AUTH_PACKET_PROTOCOL_ERROR DNS packet protocol error: %1. Returning %2</term>
<listitem><para>
This is a debug message, generated by the authoritative server when an
attempt to parse a received DNS packet has failed due to a protocol error.
The reason for the failure is given in the message, as is the error code
that will be returned to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_PACKET_RECEIVED">
<term>AUTH_PACKET_RECEIVED message received:\n%1</term>
<listitem><para>
This is a debug message output by the authoritative server when it
receives a valid DNS packet.
</para><para>
Note: This message includes the packet received, rendered in the form of
multiple lines of text. For this reason, it is suggested that this log message
not be routed to the syslog file, where the multiple lines could confuse
programs that expect a format of one message per line.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_PROCESS_FAIL">
<term>AUTH_PROCESS_FAIL message processing failure: %1</term>
<listitem><para>
This message is generated by the authoritative server when it has
encountered an internal error whilst processing a received packet:
the cause of the error is included in the message.
</para><para>
The server will return a SERVFAIL error code to the sender of the packet.
This message indicates a potential error in the server.  Please open a
bug ticket for this issue.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_RECEIVED_COMMAND">
<term>AUTH_RECEIVED_COMMAND command '%1' received</term>
<listitem><para>
This is a debug message issued when the authoritative server has received
a command on the command channel.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_RECEIVED_SENDSTATS">
<term>AUTH_RECEIVED_SENDSTATS command 'sendstats' received</term>
<listitem><para>
This is a debug message issued when the authoritative server has received
a command from the statistics module to send it data. The 'sendstats'
command is handled differently to other commands, which is why the debug
message associated with it has its own code.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_RESPONSE_FAILURE">
<term>AUTH_RESPONSE_FAILURE exception while building response to query: %1</term>
<listitem><para>
This is a debug message, generated by the authoritative server when an
attempt to create a response to a received DNS packet has failed. The
reason for the failure is given in the log message. A SERVFAIL response
is sent back. The most likely cause of this is an error in the data
source implementation; it is either creating bad responses or raising
exceptions itself.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_RESPONSE_FAILURE_UNKNOWN">
<term>AUTH_RESPONSE_FAILURE_UNKNOWN unknown exception while building response to query</term>
<listitem><para>
This debug message is similar to AUTH_RESPONSE_FAILURE, but further
details about the error are unknown, because it was signaled by something
which is not an exception. This is definitely a bug.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_RESPONSE_RECEIVED">
<term>AUTH_RESPONSE_RECEIVED received response message, ignoring</term>
<listitem><para>
This is a debug message, this is output if the authoritative server
receives a DNS packet with the QR bit set, i.e. a DNS response. The
server ignores the packet as it only responds to question packets.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SEND_ERROR_RESPONSE">
<term>AUTH_SEND_ERROR_RESPONSE sending an error response (%1 bytes):\n%2</term>
<listitem><para>
This is a debug message recording that the authoritative server is sending
an error response to the originator of the query. A previous message will
have recorded details of the failure.
</para><para>
Note: This message includes the packet sent, rendered in the form of
multiple lines of text. For this reason, it is suggested that this log message
not be routed to the syslog file, where the multiple lines could confuse
programs that expect a format of one message per line.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SEND_NORMAL_RESPONSE">
<term>AUTH_SEND_NORMAL_RESPONSE sending an error response (%1 bytes):\n%2</term>
<listitem><para>
This is a debug message recording that the authoritative server is sending
a response to the originator of a query.
</para><para>
Note: This message includes the packet sent, rendered in the form of
multiple lines of text. For this reason, it is suggested that this log message
not be routed to the syslog file, where the multiple lines could confuse
programs that expect a format of one message per line.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SERVER_CREATED">
<term>AUTH_SERVER_CREATED server created</term>
<listitem><para>
An informational message indicating that the authoritative server process has
been created and is initializing. The AUTH_SERVER_STARTED message will be
output when initialization has successfully completed and the server starts
accepting queries.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SERVER_FAILED">
<term>AUTH_SERVER_FAILED server failed: %1</term>
<listitem><para>
The authoritative server has encountered a fatal error and is terminating. The
reason for the failure is included in the message.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SERVER_STARTED">
<term>AUTH_SERVER_STARTED server started</term>
<listitem><para>
Initialization of the authoritative server has completed successfully
and it is entering the main loop, waiting for queries to arrive.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SHUTDOWN">
<term>AUTH_SHUTDOWN asked to stop, doing so</term>
<listitem><para>
This is a debug message indicating the server was asked to shut down and it is
complying to the request.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_SQLITE3">
<term>AUTH_SQLITE3 nothing to do for loading sqlite3</term>
<listitem><para>
This is a debug message indicating that the authoritative server has
found that the data source it is loading is an SQLite3 data source,
so no further validation is needed.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_CHANNEL_CREATED">
<term>AUTH_STATS_CHANNEL_CREATED STATS session channel created</term>
<listitem><para>
This is a debug message indicating that the authoritative server has
created a channel to the statistics process.  It is issued during server
startup is an indication that the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_CHANNEL_ESTABLISHED">
<term>AUTH_STATS_CHANNEL_ESTABLISHED STATS session channel established</term>
<listitem><para>
This is a debug message indicating that the authoritative server
has established communication over the previously created statistics
channel.  It is issued during server startup is an indication that the
initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_COMMS">
<term>AUTH_STATS_COMMS communication error in sending statistics data: %1</term>
<listitem><para>
An error was encountered when the authoritative server tried to send data
to the statistics daemon. The message includes additional information
describing the reason for the failure.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_TIMEOUT">
<term>AUTH_STATS_TIMEOUT timeout while sending statistics data: %1</term>
<listitem><para>
The authoritative server sent data to the statistics daemon but received
no acknowledgement within the specified time. The message includes
additional information describing the reason for the failure.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_TIMER_DISABLED">
<term>AUTH_STATS_TIMER_DISABLED statistics timer has been disabled</term>
<listitem><para>
This is a debug message indicating that the statistics timer has been
disabled in the authoritative server and no statistics information is
being produced.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_STATS_TIMER_SET">
<term>AUTH_STATS_TIMER_SET statistics timer set to %1 second(s)</term>
<listitem><para>
This is a debug message indicating that the statistics timer has been
enabled and that the authoritative server will produce statistics data
at the specified interval.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_UNSUPPORTED_OPCODE">
<term>AUTH_UNSUPPORTED_OPCODE unsupported opcode: %1</term>
<listitem><para>
This is a debug message, produced when a received DNS packet being
processed by the authoritative server has been found to contain an
unsupported opcode. (The opcode is included in the message.) The server
will return an error code of NOTIMPL to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_XFRIN_CHANNEL_CREATED">
<term>AUTH_XFRIN_CHANNEL_CREATED XFRIN session channel created</term>
<listitem><para>
This is a debug message indicating that the authoritative server has
created a channel to the XFRIN (Transfer-in) process.  It is issued
during server startup is an indication that the initialization is
proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_XFRIN_CHANNEL_ESTABLISHED">
<term>AUTH_XFRIN_CHANNEL_ESTABLISHED XFRIN session channel established</term>
<listitem><para>
This is a debug message indicating that the authoritative server has
established communication over the previously-created channel to the
XFRIN (Transfer-in) process.  It is issued during server startup is an
indication that the initialization is proceeding normally.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_ZONEMGR_COMMS">
<term>AUTH_ZONEMGR_COMMS error communicating with zone manager: %1</term>
<listitem><para>
This is a debug message output during the processing of a NOTIFY request.
An error (listed in the message) has been encountered whilst communicating
with the zone manager. The NOTIFY request will not be honored.
</para></listitem>
</varlistentry>

<varlistentry id="AUTH_ZONEMGR_ERROR">
<term>AUTH_ZONEMGR_ERROR received error response from zone manager: %1</term>
<listitem><para>
This is a debug message output during the processing of a NOTIFY
request. The zone manager component has been informed of the request,
but has returned an error response (which is included in the message). The
NOTIFY request will not be honored.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CHECK_MSGQ_ALREADY_RUNNING">
<term>BIND10_CHECK_MSGQ_ALREADY_RUNNING checking if msgq is already running</term>
<listitem><para>
The boss process is starting up and will now check if the message bus
daemon is already running. If so, it will not be able to start, as it
needs a dedicated message bus.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_FAILED">
<term>BIND10_COMPONENT_FAILED component %1 (pid %2) failed: %3</term>
<listitem><para>
The process terminated, but the bind10 boss didn't expect it to, which means
it must have failed.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_RESTART">
<term>BIND10_COMPONENT_RESTART component %1 is about to restart</term>
<listitem><para>
The named component failed previously and we will try to restart it to provide
as flawless service as possible, but it should be investigated what happened,
as it could happen again.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_START">
<term>BIND10_COMPONENT_START component %1 is starting</term>
<listitem><para>
The named component is about to be started by the boss process.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_START_EXCEPTION">
<term>BIND10_COMPONENT_START_EXCEPTION component %1 failed to start: %2</term>
<listitem><para>
An exception (mentioned in the message) happened during the startup of the
named component. The componet is not considered started and further actions
will be taken about it.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_STOP">
<term>BIND10_COMPONENT_STOP component %1 is being stopped</term>
<listitem><para>
A component is about to be asked to stop willingly by the boss.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_COMPONENT_UNSATISFIED">
<term>BIND10_COMPONENT_UNSATISFIED component %1 is required to run and failed</term>
<listitem><para>
A component failed for some reason (see previous messages). It is either a core
component or needed component that was just started. In any case, the system
can't continue without it and will terminate.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_BUILD">
<term>BIND10_CONFIGURATOR_BUILD building plan '%1' -&gt; '%2'</term>
<listitem><para>
A debug message. This indicates that the configurator is building a plan
how to change configuration from the older one to newer one. This does no
real work yet, it just does the planning what needs to be done.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_PLAN_INTERRUPTED">
<term>BIND10_CONFIGURATOR_PLAN_INTERRUPTED configurator plan interrupted, only %1 of %2 done</term>
<listitem><para>
There was an exception during some planned task. The plan will not continue and
only some tasks of the plan were completed. The rest is aborted. The exception
will be propagated.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_RECONFIGURE">
<term>BIND10_CONFIGURATOR_RECONFIGURE reconfiguring running components</term>
<listitem><para>
A different configuration of which components should be running is being
installed. All components that are no longer needed will be stopped and
newly introduced ones started. This happens at startup, when the configuration
is read the first time, or when an operator changes configuration of the boss.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_RUN">
<term>BIND10_CONFIGURATOR_RUN running plan of %1 tasks</term>
<listitem><para>
A debug message. The configurator is about to execute a plan of actions it
computed previously.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_START">
<term>BIND10_CONFIGURATOR_START bind10 component configurator is starting up</term>
<listitem><para>
The part that cares about starting and stopping the right component from the
boss process is starting up. This happens only once at the startup of the
boss process. It will start the basic set of processes now (the ones boss
needs to read the configuration), the rest will be started after the
configuration is known.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_STOP">
<term>BIND10_CONFIGURATOR_STOP bind10 component configurator is shutting down</term>
<listitem><para>
The part that cares about starting and stopping processes in the boss is
shutting down. All started components will be shut down now (more precisely,
asked to terminate by their own, if they fail to comply, other parts of
the boss process will try to force them).
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_CONFIGURATOR_TASK">
<term>BIND10_CONFIGURATOR_TASK performing task %1 on %2</term>
<listitem><para>
A debug message. The configurator is about to perform one task of the plan it
is currently executing on the named component.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_INVALID_STATISTICS_DATA">
<term>BIND10_INVALID_STATISTICS_DATA invalid specification of statistics data specified</term>
<listitem><para>
An error was encountered when the boss module specified
statistics data which is invalid for the boss specification file.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_INVALID_USER">
<term>BIND10_INVALID_USER invalid user: %1</term>
<listitem><para>
The boss process was started with the -u option, to drop root privileges
and continue running as the specified user, but the user is unknown.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_KILLING_ALL_PROCESSES">
<term>BIND10_KILLING_ALL_PROCESSES killing all started processes</term>
<listitem><para>
The boss module was not able to start every process it needed to start
during startup, and will now kill the processes that did get started.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_KILL_PROCESS">
<term>BIND10_KILL_PROCESS killing process %1</term>
<listitem><para>
The boss module is sending a kill signal to process with the given name,
as part of the process of killing all started processes during a failed
startup, as described for BIND10_KILLING_ALL_PROCESSES
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_LOST_SOCKET_CONSUMER">
<term>BIND10_LOST_SOCKET_CONSUMER consumer %1 of sockets disconnected, considering all its sockets closed</term>
<listitem><para>
A connection from one of the applications which requested a socket was
closed. This means the application has terminated, so all the sockets it was
using are now closed and bind10 process can release them as well, unless the
same sockets are used by yet another application.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_MSGQ_ALREADY_RUNNING">
<term>BIND10_MSGQ_ALREADY_RUNNING msgq daemon already running, cannot start</term>
<listitem><para>
There already appears to be a message bus daemon running. Either an
old process was not shut down correctly, and needs to be killed, or
another instance of BIND10, with the same msgq domain socket, is
running, which needs to be stopped.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_MSGQ_DISAPPEARED">
<term>BIND10_MSGQ_DISAPPEARED msgq channel disappeared</term>
<listitem><para>
While listening on the message bus channel for messages, it suddenly
disappeared. The msgq daemon may have died. This might lead to an
inconsistent state of the system, and BIND 10 will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_NO_SOCKET">
<term>BIND10_NO_SOCKET couldn't send a socket for token %1 because of error: %2</term>
<listitem><para>
An error occurred when the bind10 process was asked to send a socket file
descriptor. The error is mentioned, most common reason is that the request
is invalid and may not come from bind10 process at all.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_PROCESS_ENDED">
<term>BIND10_PROCESS_ENDED process %2 of %1 ended with status %3</term>
<listitem><para>
This indicates a process started previously terminated. The process id
and component owning the process are indicated, as well as the exit code.
This doesn't distinguish if the process was supposed to terminate or not.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_READING_BOSS_CONFIGURATION">
<term>BIND10_READING_BOSS_CONFIGURATION reading boss configuration</term>
<listitem><para>
The boss process is starting up, and will now process the initial
configuration, as received from the configuration manager.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_RECEIVED_COMMAND">
<term>BIND10_RECEIVED_COMMAND received command: %1</term>
<listitem><para>
The boss module received a command and shall now process it. The command
is printed.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_RECEIVED_NEW_CONFIGURATION">
<term>BIND10_RECEIVED_NEW_CONFIGURATION received new configuration: %1</term>
<listitem><para>
The boss module received a configuration update and is going to apply
it now. The new configuration is printed.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_RECEIVED_SIGNAL">
<term>BIND10_RECEIVED_SIGNAL received signal %1</term>
<listitem><para>
The boss module received the given signal.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_RESURRECTED_PROCESS">
<term>BIND10_RESURRECTED_PROCESS resurrected %1 (PID %2)</term>
<listitem><para>
The given process has been restarted successfully, and is now running
with the given process id.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_RESURRECTING_PROCESS">
<term>BIND10_RESURRECTING_PROCESS resurrecting dead %1 process...</term>
<listitem><para>
The given process has ended unexpectedly, and is now restarted.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SELECT_ERROR">
<term>BIND10_SELECT_ERROR error in select() call: %1</term>
<listitem><para>
There was a fatal error in the call to select(), used to see if a child
process has ended or if there is a message on the message bus. This
should not happen under normal circumstances and is considered fatal,
so BIND 10 will now shut down. The specific error is printed.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SEND_SIGKILL">
<term>BIND10_SEND_SIGKILL sending SIGKILL to %1 (PID %2)</term>
<listitem><para>
The boss module is sending a SIGKILL signal to the given process.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SEND_SIGTERM">
<term>BIND10_SEND_SIGTERM sending SIGTERM to %1 (PID %2)</term>
<listitem><para>
The boss module is sending a SIGTERM signal to the given process.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SETUID">
<term>BIND10_SETUID setting UID to %1</term>
<listitem><para>
The boss switches the user it runs as to the given UID.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SHUTDOWN">
<term>BIND10_SHUTDOWN stopping the server</term>
<listitem><para>
The boss process received a command or signal telling it to shut down.
It will send a shutdown command to each process. The processes that do
not shut down will then receive a SIGTERM signal. If that doesn't work,
it shall send SIGKILL signals to the processes still alive.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SHUTDOWN_COMPLETE">
<term>BIND10_SHUTDOWN_COMPLETE all processes ended, shutdown complete</term>
<listitem><para>
All child processes have been stopped, and the boss process will now
stop itself.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_BAD_CAUSE">
<term>BIND10_SOCKCREATOR_BAD_CAUSE unknown error cause from socket creator: %1</term>
<listitem><para>
The socket creator reported an error when creating a socket. But the function
which failed is unknown (not one of 'S' for socket or 'B' for bind).
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_BAD_RESPONSE">
<term>BIND10_SOCKCREATOR_BAD_RESPONSE unknown response for socket request: %1</term>
<listitem><para>
The boss requested a socket from the creator, but the answer is unknown. This
looks like a programmer error.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_EOF">
<term>BIND10_SOCKCREATOR_EOF eof while expecting data from socket creator</term>
<listitem><para>
There should be more data from the socket creator, but it closed the socket.
It probably crashed.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_INIT">
<term>BIND10_SOCKCREATOR_INIT initializing socket creator parser</term>
<listitem><para>
The boss module initializes routines for parsing the socket creator
protocol.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_KILL">
<term>BIND10_SOCKCREATOR_KILL killing the socket creator</term>
<listitem><para>
The socket creator is being terminated the aggressive way, by sending it
sigkill. This should not happen usually.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_TERMINATE">
<term>BIND10_SOCKCREATOR_TERMINATE terminating socket creator</term>
<listitem><para>
The boss module sends a request to terminate to the socket creator.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKCREATOR_TRANSPORT_ERROR">
<term>BIND10_SOCKCREATOR_TRANSPORT_ERROR transport error when talking to the socket creator: %1</term>
<listitem><para>
Either sending or receiving data from the socket creator failed with the given
error. The creator probably crashed or some serious OS-level problem happened,
as the communication happens only on local host.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKET_CREATED">
<term>BIND10_SOCKET_CREATED successfully created socket %1</term>
<listitem><para>
The socket creator successfully created and sent a requested socket, it has
the given file number.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKET_ERROR">
<term>BIND10_SOCKET_ERROR error on %1 call in the creator: %2/%3</term>
<listitem><para>
The socket creator failed to create the requested socket. It failed on the
indicated OS API function with given error.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_SOCKET_GET">
<term>BIND10_SOCKET_GET requesting socket [%1]:%2 of type %3 from the creator</term>
<listitem><para>
The boss forwards a request for a socket to the socket creator.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTED_CC">
<term>BIND10_STARTED_CC started configuration/command session</term>
<listitem><para>
Debug message given when BIND 10 has successfull started the object that
handles configuration and commands.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTED_PROCESS">
<term>BIND10_STARTED_PROCESS started %1</term>
<listitem><para>
The given process has successfully been started.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTED_PROCESS_PID">
<term>BIND10_STARTED_PROCESS_PID started %1 (PID %2)</term>
<listitem><para>
The given process has successfully been started, and has the given PID.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTING">
<term>BIND10_STARTING starting BIND10: %1</term>
<listitem><para>
Informational message on startup that shows the full version.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTING_CC">
<term>BIND10_STARTING_CC starting configuration/command session</term>
<listitem><para>
Informational message given when BIND 10 is starting the session object
that handles configuration and commands.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTING_PROCESS">
<term>BIND10_STARTING_PROCESS starting process %1</term>
<listitem><para>
The boss module is starting the given process.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTING_PROCESS_PORT">
<term>BIND10_STARTING_PROCESS_PORT starting process %1 (to listen on port %2)</term>
<listitem><para>
The boss module is starting the given process, which will listen on the
given port number.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTING_PROCESS_PORT_ADDRESS">
<term>BIND10_STARTING_PROCESS_PORT_ADDRESS starting process %1 (to listen on %2#%3)</term>
<listitem><para>
The boss module is starting the given process, which will listen on the
given address and port number (written as &lt;address&gt;#&lt;port&gt;).
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTUP_COMPLETE">
<term>BIND10_STARTUP_COMPLETE BIND 10 started</term>
<listitem><para>
All modules have been successfully started, and BIND 10 is now running.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTUP_ERROR">
<term>BIND10_STARTUP_ERROR error during startup: %1</term>
<listitem><para>
There was a fatal error when BIND10 was trying to start. The error is
shown, and BIND10 will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTUP_UNEXPECTED_MESSAGE">
<term>BIND10_STARTUP_UNEXPECTED_MESSAGE unrecognised startup message %1</term>
<listitem><para>
During the startup process, a number of messages are exchanged between the
Boss process and the processes it starts.  This error is output when a
message received by the Boss process is recognised as being of the
correct format but is unexpected.  It may be that processes are starting
of sequence.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STARTUP_UNRECOGNISED_MESSAGE">
<term>BIND10_STARTUP_UNRECOGNISED_MESSAGE unrecognised startup message %1</term>
<listitem><para>
During the startup process, a number of messages are exchanged between the
Boss process and the processes it starts.  This error is output when a
message received by the Boss process is not recognised.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_START_AS_NON_ROOT_AUTH">
<term>BIND10_START_AS_NON_ROOT_AUTH starting b10-auth as a user, not root. This might fail.</term>
<listitem><para>
The authoritative server is being started or restarted without root privileges.
If the module needs these privileges, it may have problems starting.
Note that this issue should be resolved by the pending 'socket-creator'
process; once that has been implemented, modules should not need root
privileges anymore. See tickets #800 and #801 for more information.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_START_AS_NON_ROOT_RESOLVER">
<term>BIND10_START_AS_NON_ROOT_RESOLVER starting b10-resolver as a user, not root. This might fail.</term>
<listitem><para>
The resolver is being started or restarted without root privileges.
If the module needs these privileges, it may have problems starting.
Note that this issue should be resolved by the pending 'socket-creator'
process; once that has been implemented, modules should not need root
privileges anymore. See tickets #800 and #801 for more information.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_STOP_PROCESS">
<term>BIND10_STOP_PROCESS asking %1 to shut down</term>
<listitem><para>
The boss module is sending a shutdown command to the given module over
the message channel.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_UNKNOWN_CHILD_PROCESS_ENDED">
<term>BIND10_UNKNOWN_CHILD_PROCESS_ENDED unknown child pid %1 exited</term>
<listitem><para>
An unknown child process has exited. The PID is printed, but no further
action will be taken by the boss process.
</para></listitem>
</varlistentry>

<varlistentry id="BIND10_WAIT_CFGMGR">
<term>BIND10_WAIT_CFGMGR waiting for configuration manager process to initialize</term>
<listitem><para>
The configuration manager process is so critical to operation of BIND 10
that after starting it, the Boss module will wait for it to initialize
itself before continuing.  This debug message is produced during the
wait and may be output zero or more times depending on how long it takes
the configuration manager to start up.  The total length of time Boss
will wait for the configuration manager before reporting an error is
set with the command line --wait switch, which has a default value of
ten seconds.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_ENTRY_MISSING_RRSET">
<term>CACHE_ENTRY_MISSING_RRSET missing RRset to generate message for %1</term>
<listitem><para>
The cache tried to generate the complete answer message. It knows the structure
of the message, but some of the RRsets to be put there are not in cache (they
probably expired already). Therefore it pretends the message was not found.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_LOCALZONE_FOUND">
<term>CACHE_LOCALZONE_FOUND found entry with key %1 in local zone data</term>
<listitem><para>
Debug message, noting that the requested data was successfully found in the
local zone data of the cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_LOCALZONE_UNKNOWN">
<term>CACHE_LOCALZONE_UNKNOWN entry with key %1 not found in local zone data</term>
<listitem><para>
Debug message. The requested data was not found in the local zone data.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_LOCALZONE_UPDATE">
<term>CACHE_LOCALZONE_UPDATE updating local zone element at key %1</term>
<listitem><para>
Debug message issued when there's update to the local zone section of cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_DEINIT">
<term>CACHE_MESSAGES_DEINIT deinitialized message cache</term>
<listitem><para>
Debug message. It is issued when the server deinitializes the message cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_EXPIRED">
<term>CACHE_MESSAGES_EXPIRED found an expired message entry for %1 in the message cache</term>
<listitem><para>
Debug message. The requested data was found in the message cache, but it
already expired. Therefore the cache removes the entry and pretends it found
nothing.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_FOUND">
<term>CACHE_MESSAGES_FOUND found a message entry for %1 in the message cache</term>
<listitem><para>
Debug message. We found the whole message in the cache, so it can be returned
to user without any other lookups.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_INIT">
<term>CACHE_MESSAGES_INIT initialized message cache for %1 messages of class %2</term>
<listitem><para>
Debug message issued when a new message cache is issued. It lists the class
of messages it can hold and the maximum size of the cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_REMOVE">
<term>CACHE_MESSAGES_REMOVE removing old instance of %1/%2/%3 first</term>
<listitem><para>
Debug message. This may follow CACHE_MESSAGES_UPDATE and indicates that, while
updating, the old instance is being removed prior of inserting a new one.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_UNCACHEABLE">
<term>CACHE_MESSAGES_UNCACHEABLE not inserting uncacheable message %1/%2/%3</term>
<listitem><para>
Debug message, noting that the given message can not be cached. This is because
there's no SOA record in the message. See RFC 2308 section 5 for more
information.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_UNKNOWN">
<term>CACHE_MESSAGES_UNKNOWN no entry for %1 found in the message cache</term>
<listitem><para>
Debug message. The message cache didn't find any entry for the given key.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_MESSAGES_UPDATE">
<term>CACHE_MESSAGES_UPDATE updating message entry %1/%2/%3</term>
<listitem><para>
Debug message issued when the message cache is being updated with a new
message. Either the old instance is removed or, if none is found, new one
is created.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_DEEPEST">
<term>CACHE_RESOLVER_DEEPEST looking up deepest NS for %1/%2</term>
<listitem><para>
Debug message. The resolver cache is looking up the deepest known nameserver,
so the resolution doesn't have to start from the root.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_INIT">
<term>CACHE_RESOLVER_INIT initializing resolver cache for class %1</term>
<listitem><para>
Debug message. The resolver cache is being created for this given class.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_INIT_INFO">
<term>CACHE_RESOLVER_INIT_INFO initializing resolver cache for class %1</term>
<listitem><para>
Debug message, the resolver cache is being created for this given class. The
difference from CACHE_RESOLVER_INIT is only in different format of passed
information, otherwise it does the same.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_LOCAL_MSG">
<term>CACHE_RESOLVER_LOCAL_MSG message for %1/%2 found in local zone data</term>
<listitem><para>
Debug message. The resolver cache found a complete message for the user query
in the zone data.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_LOCAL_RRSET">
<term>CACHE_RESOLVER_LOCAL_RRSET RRset for %1/%2 found in local zone data</term>
<listitem><para>
Debug message. The resolver cache found a requested RRset in the local zone
data.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_LOOKUP_MSG">
<term>CACHE_RESOLVER_LOOKUP_MSG looking up message in resolver cache for %1/%2</term>
<listitem><para>
Debug message. The resolver cache is trying to find a message to answer the
user query.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_LOOKUP_RRSET">
<term>CACHE_RESOLVER_LOOKUP_RRSET looking up RRset in resolver cache for %1/%2</term>
<listitem><para>
Debug message. The resolver cache is trying to find an RRset (which usually
originates as internally from resolver).
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_NO_QUESTION">
<term>CACHE_RESOLVER_NO_QUESTION answer message for %1/%2 has empty question section</term>
<listitem><para>
The cache tried to fill in found data into the response message. But it
discovered the message contains no question section, which is invalid.
This is likely a programmer error, please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UNKNOWN_CLASS_MSG">
<term>CACHE_RESOLVER_UNKNOWN_CLASS_MSG no cache for class %1</term>
<listitem><para>
Debug message. While trying to lookup a message in the resolver cache, it was
discovered there's no cache for this class at all. Therefore no message is
found.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UNKNOWN_CLASS_RRSET">
<term>CACHE_RESOLVER_UNKNOWN_CLASS_RRSET no cache for class %1</term>
<listitem><para>
Debug message. While trying to lookup an RRset in the resolver cache, it was
discovered there's no cache for this class at all. Therefore no data is found.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UPDATE_MSG">
<term>CACHE_RESOLVER_UPDATE_MSG updating message for %1/%2/%3</term>
<listitem><para>
Debug message. The resolver is updating a message in the cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UPDATE_RRSET">
<term>CACHE_RESOLVER_UPDATE_RRSET updating RRset for %1/%2/%3</term>
<listitem><para>
Debug message. The resolver is updating an RRset in the cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_MSG">
<term>CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_MSG no cache for class %1</term>
<listitem><para>
Debug message. While trying to insert a message into the cache, it was
discovered that there's no cache for the class of message. Therefore
the message will not be cached.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_RRSET">
<term>CACHE_RESOLVER_UPDATE_UNKNOWN_CLASS_RRSET no cache for class %1</term>
<listitem><para>
Debug message. While trying to insert an RRset into the cache, it was
discovered that there's no cache for the class of the RRset. Therefore
the message will not be cached.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_EXPIRED">
<term>CACHE_RRSET_EXPIRED found expired RRset %1/%2/%3</term>
<listitem><para>
Debug message. The requested data was found in the RRset cache. However, it is
expired, so the cache removed it and is going to pretend nothing was found.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_INIT">
<term>CACHE_RRSET_INIT initializing RRset cache for %1 RRsets of class %2</term>
<listitem><para>
Debug message. The RRset cache to hold at most this many RRsets for the given
class is being created.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_LOOKUP">
<term>CACHE_RRSET_LOOKUP looking up %1/%2/%3 in RRset cache</term>
<listitem><para>
Debug message. The resolver is trying to look up data in the RRset cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_NOT_FOUND">
<term>CACHE_RRSET_NOT_FOUND no RRset found for %1/%2/%3 in cache</term>
<listitem><para>
Debug message which can follow CACHE_RRSET_LOOKUP. This means the data is not
in the cache.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_REMOVE_OLD">
<term>CACHE_RRSET_REMOVE_OLD removing old RRset for %1/%2/%3 to make space for new one</term>
<listitem><para>
Debug message which can follow CACHE_RRSET_UPDATE. During the update, the cache
removed an old instance of the RRset to replace it with the new one.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_UNTRUSTED">
<term>CACHE_RRSET_UNTRUSTED not replacing old RRset for %1/%2/%3, it has higher trust level</term>
<listitem><para>
Debug message which can follow CACHE_RRSET_UPDATE. The cache already holds the
same RRset, but from more trusted source, so the old one is kept and new one
ignored.
</para></listitem>
</varlistentry>

<varlistentry id="CACHE_RRSET_UPDATE">
<term>CACHE_RRSET_UPDATE updating RRset %1/%2/%3 in the cache</term>
<listitem><para>
Debug message. The RRset is updating its data with this given RRset.
</para></listitem>
</varlistentry>

<varlistentry id="CC_ASYNC_READ_FAILED">
<term>CC_ASYNC_READ_FAILED asynchronous read failed</term>
<listitem><para>
This marks a low level error, we tried to read data from the message queue
daemon asynchronously, but the ASIO library returned an error.
</para></listitem>
</varlistentry>

<varlistentry id="CC_CONN_ERROR">
<term>CC_CONN_ERROR error connecting to message queue (%1)</term>
<listitem><para>
It is impossible to reach the message queue daemon for the reason given. It
is unlikely there'll be reason for whatever program this currently is to
continue running, as the communication with the rest of BIND 10 is vital
for the components.
</para></listitem>
</varlistentry>

<varlistentry id="CC_DISCONNECT">
<term>CC_DISCONNECT disconnecting from message queue daemon</term>
<listitem><para>
The library is disconnecting from the message queue daemon. This debug message
indicates that the program is trying to shut down gracefully.
</para></listitem>
</varlistentry>

<varlistentry id="CC_ESTABLISH">
<term>CC_ESTABLISH trying to establish connection with message queue daemon at %1</term>
<listitem><para>
This debug message indicates that the command channel library is about to
connect to the message queue daemon, which should be listening on the UNIX-domain
socket listed in the output.
</para></listitem>
</varlistentry>

<varlistentry id="CC_ESTABLISHED">
<term>CC_ESTABLISHED successfully connected to message queue daemon</term>
<listitem><para>
This debug message indicates that the connection was successfully made, this
should follow CC_ESTABLISH.
</para></listitem>
</varlistentry>

<varlistentry id="CC_GROUP_RECEIVE">
<term>CC_GROUP_RECEIVE trying to receive a message</term>
<listitem><para>
Debug message, noting that a message is expected to come over the command
channel.
</para></listitem>
</varlistentry>

<varlistentry id="CC_GROUP_RECEIVED">
<term>CC_GROUP_RECEIVED message arrived ('%1', '%2')</term>
<listitem><para>
Debug message, noting that we successfully received a message (its envelope and
payload listed). This follows CC_GROUP_RECEIVE, but might happen some time
later, depending if we waited for it or just polled.
</para></listitem>
</varlistentry>

<varlistentry id="CC_GROUP_SEND">
<term>CC_GROUP_SEND sending message '%1' to group '%2'</term>
<listitem><para>
Debug message, we're about to send a message over the command channel.
</para></listitem>
</varlistentry>

<varlistentry id="CC_INVALID_LENGTHS">
<term>CC_INVALID_LENGTHS invalid length parameters (%1, %2)</term>
<listitem><para>
This happens when garbage comes over the command channel or some kind of
confusion happens in the program. The data received from the socket make no
sense if we interpret it as lengths of message. The first one is total length
of the message; the second is the length of the header. The header
and its length (2 bytes) is counted in the total length.
</para></listitem>
</varlistentry>

<varlistentry id="CC_LENGTH_NOT_READY">
<term>CC_LENGTH_NOT_READY length not ready</term>
<listitem><para>
There should be data representing the length of message on the socket, but it
is not there.
</para></listitem>
</varlistentry>

<varlistentry id="CC_NO_MESSAGE">
<term>CC_NO_MESSAGE no message ready to be received yet</term>
<listitem><para>
The program polled for incoming messages, but there was no message waiting.
This is a debug message which may happen only after CC_GROUP_RECEIVE.
</para></listitem>
</varlistentry>

<varlistentry id="CC_NO_MSGQ">
<term>CC_NO_MSGQ unable to connect to message queue (%1)</term>
<listitem><para>
It isn't possible to connect to the message queue daemon, for reason listed.
It is unlikely any program will be able continue without the communication.
</para></listitem>
</varlistentry>

<varlistentry id="CC_READ_ERROR">
<term>CC_READ_ERROR error reading data from command channel (%1)</term>
<listitem><para>
A low level error happened when the library tried to read data from the
command channel socket. The reason is listed.
</para></listitem>
</varlistentry>

<varlistentry id="CC_READ_EXCEPTION">
<term>CC_READ_EXCEPTION error reading data from command channel (%1)</term>
<listitem><para>
We received an exception while trying to read data from the command
channel socket. The reason is listed.
</para></listitem>
</varlistentry>

<varlistentry id="CC_REPLY">
<term>CC_REPLY replying to message from '%1' with '%2'</term>
<listitem><para>
Debug message, noting we're sending a response to the original message
with the given envelope.
</para></listitem>
</varlistentry>

<varlistentry id="CC_SET_TIMEOUT">
<term>CC_SET_TIMEOUT setting timeout to %1ms</term>
<listitem><para>
Debug message. A timeout for which the program is willing to wait for a reply
is being set.
</para></listitem>
</varlistentry>

<varlistentry id="CC_START_READ">
<term>CC_START_READ starting asynchronous read</term>
<listitem><para>
Debug message. From now on, when a message (or command) comes, it'll wake the
program and the library will automatically pass it over to correct place.
</para></listitem>
</varlistentry>

<varlistentry id="CC_SUBSCRIBE">
<term>CC_SUBSCRIBE subscribing to communication group %1</term>
<listitem><para>
Debug message. The program wants to receive messages addressed to this group.
</para></listitem>
</varlistentry>

<varlistentry id="CC_TIMEOUT">
<term>CC_TIMEOUT timeout reading data from command channel</term>
<listitem><para>
The program waited too long for data from the command channel (usually when it
sent a query to different program and it didn't answer for whatever reason).
</para></listitem>
</varlistentry>

<varlistentry id="CC_UNSUBSCRIBE">
<term>CC_UNSUBSCRIBE unsubscribing from communication group %1</term>
<listitem><para>
Debug message. The program no longer wants to receive messages addressed to
this group.
</para></listitem>
</varlistentry>

<varlistentry id="CC_WRITE_ERROR">
<term>CC_WRITE_ERROR error writing data to command channel (%1)</term>
<listitem><para>
A low level error happened when the library tried to write data to the command
channel socket.
</para></listitem>
</varlistentry>

<varlistentry id="CC_ZERO_LENGTH">
<term>CC_ZERO_LENGTH invalid message length (0)</term>
<listitem><para>
The library received a message length being zero, which makes no sense, since
all messages must contain at least the envelope.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_AUTOMATIC_CONFIG_DATABASE_UPDATE">
<term>CFGMGR_AUTOMATIC_CONFIG_DATABASE_UPDATE Updating configuration database from version %1 to %2</term>
<listitem><para>
An older version of the configuration database has been found, from which
there was an automatic upgrade path to the current version. These changes
are now applied, and no action from the administrator is necessary.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_BAD_UPDATE_RESPONSE_FROM_MODULE">
<term>CFGMGR_BAD_UPDATE_RESPONSE_FROM_MODULE Unable to parse response from module %1: %2</term>
<listitem><para>
The configuration manager sent a configuration update to a module, but
the module responded with an answer that could not be parsed. The answer
message appears to be invalid JSON data, or not decodable to a string.
This is likely to be a problem in the module in question. The update is
assumed to have failed, and will not be stored.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_CC_SESSION_ERROR">
<term>CFGMGR_CC_SESSION_ERROR Error connecting to command channel: %1</term>
<listitem><para>
The configuration manager daemon was unable to connect to the messaging
system. The most likely cause is that msgq is not running.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_DATA_READ_ERROR">
<term>CFGMGR_DATA_READ_ERROR error reading configuration database from disk: %1</term>
<listitem><para>
There was a problem reading the persistent configuration data as stored
on disk. The file may be corrupted, or it is of a version from where
there is no automatic upgrade path. The file needs to be repaired or
removed. The configuration manager daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_IOERROR_WHILE_WRITING_CONFIGURATION">
<term>CFGMGR_IOERROR_WHILE_WRITING_CONFIGURATION Unable to write configuration file; configuration not stored: %1</term>
<listitem><para>
There was an IO error from the system while the configuration manager
was trying to write the configuration database to disk. The specific
error is given. The most likely cause is that the directory where
the file is stored does not exist, or is not writable. The updated
configuration is not stored.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_OSERROR_WHILE_WRITING_CONFIGURATION">
<term>CFGMGR_OSERROR_WHILE_WRITING_CONFIGURATION Unable to write configuration file; configuration not stored: %1</term>
<listitem><para>
There was an OS error from the system while the configuration manager
was trying to write the configuration database to disk. The specific
error is given. The most likely cause is that the system does not have
write access to the configuration database file. The updated
configuration is not stored.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_RENAMED_CONFIG_FILE">
<term>CFGMGR_RENAMED_CONFIG_FILE renamed configuration file %1 to %2, will create new %1</term>
<listitem><para>
BIND 10 has been started with the command to clear the configuration file.
The existing file is backed up to the given file name, so that data is not
immediately lost if this was done by accident.
</para></listitem>
</varlistentry>

<varlistentry id="CFGMGR_STOPPED_BY_KEYBOARD">
<term>CFGMGR_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the cfgmgr daemon. The
daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_BAD_CONFIG_DATA">
<term>CMDCTL_BAD_CONFIG_DATA error in config data: %1</term>
<listitem><para>
There was an error reading the updated configuration data. The specific
error is printed.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_BAD_PASSWORD">
<term>CMDCTL_BAD_PASSWORD bad password for user: %1</term>
<listitem><para>
A login attempt was made to b10-cmdctl, but the password was wrong.
Users can be managed with the tool b10-cmdctl-usermgr.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_CC_SESSION_ERROR">
<term>CMDCTL_CC_SESSION_ERROR error reading from cc channel: %1</term>
<listitem><para>
There was a problem reading from the command and control channel. The
most likely cause is that the message bus daemon is not running.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_CC_SESSION_TIMEOUT">
<term>CMDCTL_CC_SESSION_TIMEOUT timeout on cc channel</term>
<listitem><para>
A timeout occurred when waiting for essential data from the cc session.
This usually occurs when b10-cfgmgr is not running or not responding.
Since we are waiting for essential information, this is a fatal error,
and the cmdctl daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_COMMAND_ERROR">
<term>CMDCTL_COMMAND_ERROR error in command %1 to module %2: %3</term>
<listitem><para>
An error was encountered sending the given command to the given module.
Either there was a communication problem with the module, or the module
was not able to process the command, and sent back an error. The
specific error is printed in the message.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_COMMAND_SENT">
<term>CMDCTL_COMMAND_SENT command '%1' to module '%2' was sent</term>
<listitem><para>
This debug message indicates that the given command has been sent to
the given module.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_NO_SUCH_USER">
<term>CMDCTL_NO_SUCH_USER username not found in user database: %1</term>
<listitem><para>
A login attempt was made to b10-cmdctl, but the username was not known.
Users can be added with the tool b10-cmdctl-usermgr.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_NO_USER_ENTRIES_READ">
<term>CMDCTL_NO_USER_ENTRIES_READ failed to read user information, all users will be denied</term>
<listitem><para>
The b10-cmdctl daemon was unable to find any user data in the user
database file. Either it was unable to read the file (in which case
this message follows a message CMDCTL_USER_DATABASE_READ_ERROR
containing a specific error), or the file was empty. Users can be added
with the tool b10-cmdctl-usermgr.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_SEND_COMMAND">
<term>CMDCTL_SEND_COMMAND sending command %1 to module %2</term>
<listitem><para>
This debug message indicates that the given command is being sent to
the given module.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_SSL_SETUP_FAILURE_USER_DENIED">
<term>CMDCTL_SSL_SETUP_FAILURE_USER_DENIED failed to create an SSL connection (user denied): %1</term>
<listitem><para>
The user was denied because the SSL connection could not successfully
be set up. The specific error is given in the log message. Possible
causes may be that the ssl request itself was bad, or the local key or
certificate file could not be read.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_STARTED">
<term>CMDCTL_STARTED cmdctl is listening for connections on %1:%2</term>
<listitem><para>
The cmdctl daemon has started and is now listening for connections.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_STOPPED_BY_KEYBOARD">
<term>CMDCTL_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the cmdctl daemon. The
daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_UNCAUGHT_EXCEPTION">
<term>CMDCTL_UNCAUGHT_EXCEPTION uncaught exception: %1</term>
<listitem><para>
The b10-cmdctl daemon encountered an uncaught exception and
will now shut down. This is indicative of a programming error and
should not happen under normal circumstances. The exception message
is printed.
</para></listitem>
</varlistentry>

<varlistentry id="CMDCTL_USER_DATABASE_READ_ERROR">
<term>CMDCTL_USER_DATABASE_READ_ERROR failed to read user database file %1: %2</term>
<listitem><para>
The b10-cmdctl daemon was unable to read the user database file. The
file may be unreadable for the daemon, or it may be corrupted. In the
latter case, it can be recreated with b10-cmdctl-usermgr. The specific
error is printed in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_CCSESSION_MSG">
<term>CONFIG_CCSESSION_MSG error in CC session message: %1</term>
<listitem><para>
There was a problem with an incoming message on the command and control
channel. The message does not appear to be a valid command, and is
missing a required element or contains an unknown data format. This
most likely means that another BIND10 module is sending a bad message.
The message itself is ignored by this module.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_CCSESSION_MSG_INTERNAL">
<term>CONFIG_CCSESSION_MSG_INTERNAL error handling CC session message: %1</term>
<listitem><para>
There was an internal problem handling an incoming message on the command
and control channel. An unexpected exception was thrown, details of
which are appended to the message. The module will continue to run,
but will not send back an answer.
</para><para>
The most likely cause of this error is a programming error.  Please raise
a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_CCSESSION_STOPPING">
<term>CONFIG_CCSESSION_STOPPING error sending stopping message: %1</term>
<listitem><para>
There was a problem when sending a message signaling that the module using
this CCSession is stopping. This message is sent so that the rest of the
system is aware that the module is no longer running. Apart from logging
this message, the error itself is ignored, and the ModuleCCSession is
still stopped. The specific exception message is printed.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_CCSESSION_STOPPING_UNKNOWN">
<term>CONFIG_CCSESSION_STOPPING_UNKNOWN unknown error sending stopping message</term>
<listitem><para>
Similar to CONFIG_CCSESSION_STOPPING, but in this case the exception that
is seen is not a standard exception, and further information is unknown.
This is a bug.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_GET_FAIL">
<term>CONFIG_GET_FAIL error getting configuration from cfgmgr: %1</term>
<listitem><para>
The configuration manager returned an error when this module requested
the configuration. The full error message answer from the configuration
manager is appended to the log error. The most likely cause is that
the module is of a different (command specification) version than the
running configuration manager.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_GET_FAILED">
<term>CONFIG_GET_FAILED error getting configuration from cfgmgr: %1</term>
<listitem><para>
The configuration manager returned an error response when the module
requested its configuration. The full error message answer from the
configuration manager is appended to the log error.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_JSON_PARSE">
<term>CONFIG_JSON_PARSE JSON parse error in %1: %2</term>
<listitem><para>
There was an error parsing the JSON file. The given file does not appear
to be in valid JSON format. Please verify that the filename is correct
and that the contents are valid JSON.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_LOG_CONFIG_ERRORS">
<term>CONFIG_LOG_CONFIG_ERRORS error(s) in logging configuration: %1</term>
<listitem><para>
There was a logging configuration update, but the internal validator
for logging configuration found that it contained errors. The errors
are shown, and the update is ignored.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_LOG_EXPLICIT">
<term>CONFIG_LOG_EXPLICIT will use logging configuration for explicitly-named logger %1</term>
<listitem><para>
This is a debug message.  When processing the "loggers" part of the
configuration file, the configuration library found an entry for the named
logger that matches the logger specification for the program.  The logging
configuration for the program will be updated with the information.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_LOG_IGNORE_EXPLICIT">
<term>CONFIG_LOG_IGNORE_EXPLICIT ignoring logging configuration for explicitly-named logger %1</term>
<listitem><para>
This is a debug message.  When processing the "loggers" part of the
configuration file, the configuration library found an entry for the
named logger.  As this does not match the logger specification for the
program, it has been ignored.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_LOG_IGNORE_WILD">
<term>CONFIG_LOG_IGNORE_WILD ignoring logging configuration for wildcard logger %1</term>
<listitem><para>
This is a debug message.  When processing the "loggers" part of the
configuration file, the configuration library found the named wildcard
entry (one containing the "*" character) that matched a logger already
matched by an explicitly named entry.  The configuration is ignored.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_LOG_WILD_MATCH">
<term>CONFIG_LOG_WILD_MATCH will use logging configuration for wildcard logger %1</term>
<listitem><para>
This is a debug message.  When processing the "loggers" part of
the configuration file, the configuration library found the named
wildcard entry (one containing the "*" character) that matches a logger
specification in the program. The logging configuration for the program
will be updated with the information.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_MOD_SPEC_FORMAT">
<term>CONFIG_MOD_SPEC_FORMAT module specification error in %1: %2</term>
<listitem><para>
The given file does not appear to be a valid specification file: details
are included in the message. Please verify that the filename is correct
and that its contents are a valid BIND10 module specification.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_MOD_SPEC_REJECT">
<term>CONFIG_MOD_SPEC_REJECT module specification rejected by cfgmgr: %1</term>
<listitem><para>
The specification file for this module was rejected by the configuration
manager. The full error message answer from the configuration manager is
appended to the log error. The most likely cause is that the module is of
a different (specification file) version than the running configuration
manager.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_OPEN_FAIL">
<term>CONFIG_OPEN_FAIL error opening %1: %2</term>
<listitem><para>
There was an error opening the given file. The reason for the failure
is included in the message.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_SESSION_STOPPING_FAILED">
<term>CONFIG_SESSION_STOPPING_FAILED error sending stopping message: %1</term>
<listitem><para>
There was a problem when sending a message signaling that the module using
this CCSession is stopping. This message is sent so that the rest of the
system is aware that the module is no longer running. Apart from logging
this message, the error itself is ignored, and the ModuleCCSession is
still stopped. The specific exception message is printed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_BAD_NSEC3_NAME">
<term>DATASRC_BAD_NSEC3_NAME NSEC3 record has a bad owner name '%1'</term>
<listitem><para>
The software refuses to load NSEC3 records into a wildcard domain or
the owner name has two or more labels below the zone origin.
It isn't explicitly forbidden, but no sane zone wouldn have such names
for NSEC3.  BIND 9 also refuses NSEC3 at wildcard, so this behavior is
compatible with BIND 9.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_CREATE">
<term>DATASRC_CACHE_CREATE creating the hotspot cache</term>
<listitem><para>
This is a debug message issued during startup when the hotspot cache
is created.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_DESTROY">
<term>DATASRC_CACHE_DESTROY destroying the hotspot cache</term>
<listitem><para>
Debug information. The hotspot cache is being destroyed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_DISABLE">
<term>DATASRC_CACHE_DISABLE disabling the hotspot cache</term>
<listitem><para>
A debug message issued when the hotspot cache is disabled.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_ENABLE">
<term>DATASRC_CACHE_ENABLE enabling the hotspot cache</term>
<listitem><para>
A debug message issued when the hotspot cache is enabled.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_EXPIRED">
<term>DATASRC_CACHE_EXPIRED item '%1' in the hotspot cache has expired</term>
<listitem><para>
A debug message issued when a hotspot cache lookup located the item but it
had expired.  The item was removed and the program proceeded as if the item
had not been found.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_FOUND">
<term>DATASRC_CACHE_FOUND the item '%1' was found</term>
<listitem><para>
Debug information. An item was successfully located in the hotspot cache.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_FULL">
<term>DATASRC_CACHE_FULL hotspot cache is full, dropping oldest</term>
<listitem><para>
Debug information. After inserting an item into the hotspot cache, the
maximum number of items was exceeded, so the least recently used item will
be dropped. This should be directly followed by CACHE_REMOVE.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_INSERT">
<term>DATASRC_CACHE_INSERT inserting item '%1' into the hotspot cache</term>
<listitem><para>
A debug message indicating that a new item is being inserted into the hotspot
cache.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_NOT_FOUND">
<term>DATASRC_CACHE_NOT_FOUND the item '%1' was not found in the hotspot cache</term>
<listitem><para>
A debug message issued when hotspot cache was searched for the specified
item but it was not found.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_OLD_FOUND">
<term>DATASRC_CACHE_OLD_FOUND older instance of hotspot cache item '%1' found, replacing</term>
<listitem><para>
Debug information. While inserting an item into the hotspot cache, an older
instance of an item with the same name was found; the old instance will be
removed. This will be directly followed by CACHE_REMOVE.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_REMOVE">
<term>DATASRC_CACHE_REMOVE removing '%1' from the hotspot cache</term>
<listitem><para>
Debug information. An item is being removed from the hotspot cache.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_SLOTS">
<term>DATASRC_CACHE_SLOTS setting the hotspot cache size to '%1', dropping '%2' items</term>
<listitem><para>
The maximum allowed number of items of the hotspot cache is set to the given
number. If there are too many, some of them will be dropped. The size of 0
means no limit.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_COVER_NSEC_UNSUPPORTED">
<term>DATASRC_DATABASE_COVER_NSEC_UNSUPPORTED %1 doesn't support DNSSEC when asked for NSEC data covering %2</term>
<listitem><para>
The datasource tried to provide an NSEC proof that the named domain does not
exist, but the database backend doesn't support DNSSEC. No proof is included
in the answer as a result.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FIND_RECORDS">
<term>DATASRC_DATABASE_FIND_RECORDS looking in datasource %1 for record %2/%3/%4</term>
<listitem><para>
Debug information. The database data source is looking up records with the given
name and type in the database.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FIND_TTL_MISMATCH">
<term>DATASRC_DATABASE_FIND_TTL_MISMATCH TTL values differ in %1 for elements of %2/%3/%4, setting to %5</term>
<listitem><para>
The datasource backend provided resource records for the given RRset with
different TTL values. This isn't allowed on the wire and is considered
an error, so we set it to the lowest value we found (but we don't modify the
database). The data in database should be checked and fixed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_ANY">
<term>DATASRC_DATABASE_FOUND_ANY search in datasource %1 resulted in returning all records of %2</term>
<listitem><para>
The data returned by the database backend contained data for the given domain
name, so all the RRsets of the domain are returned.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_CNAME">
<term>DATASRC_DATABASE_FOUND_CNAME search in datasource %1 for %2/%3/%4 found CNAME, resulting in %5</term>
<listitem><para>
When searching the domain for a name a CNAME was found at that name.
Even though it was not the RR type being sought, it is returned.  (The
caller may want to continue the lookup by replacing the query name with
the canonical name and restarting the query with the original RR type.)
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_DELEGATION">
<term>DATASRC_DATABASE_FOUND_DELEGATION Found delegation at %2 in %1</term>
<listitem><para>
When searching for a domain, the program met a delegation to a different zone
at the given domain name. It will return that one instead.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_DELEGATION_EXACT">
<term>DATASRC_DATABASE_FOUND_DELEGATION_EXACT search in datasource %1 for %2/%3/%4 found delegation at %5</term>
<listitem><para>
The program found the domain requested, but it is a delegation point to a
different zone, therefore it is not authoritative for this domain name.
It will return the NS record instead.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_DNAME">
<term>DATASRC_DATABASE_FOUND_DNAME Found DNAME at %2 in %1</term>
<listitem><para>
When searching for a domain, the program met a DNAME redirection to a different
place in the domain space at the given domain name. It will return that one
instead.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_EMPTY_NONTERMINAL">
<term>DATASRC_DATABASE_FOUND_EMPTY_NONTERMINAL empty non-terminal %2 in %1</term>
<listitem><para>
The domain name does not have any RRs associated with it, so it doesn't
exist in the database.  However, it has a subdomain, so it does exist
in the DNS address space. This type of domain is known an an "empty
non-terminal" and so we return NXRRSET instead of NXDOMAIN.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_NXDOMAIN">
<term>DATASRC_DATABASE_FOUND_NXDOMAIN search in datasource %1 resulted in NXDOMAIN for %2/%3/%4</term>
<listitem><para>
The data returned by the database backend did not contain any data for the given
domain name, class and type.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_NXRRSET">
<term>DATASRC_DATABASE_FOUND_NXRRSET search in datasource %1 for %2/%3/%4 resulted in NXRRSET</term>
<listitem><para>
The data returned by the database backend contained data for the given domain
name and class, but not for the given type.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_NXRRSET_NSEC">
<term>DATASRC_DATABASE_FOUND_NXRRSET_NSEC search in datasource %1 for %2/%3/%4 resulted in RRset %5</term>
<listitem><para>
A search in the database for RRs for the specified name, type and class has
located RRs that match the name and class but not the type.  DNSSEC information
has been requested and returned.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_FOUND_RRSET">
<term>DATASRC_DATABASE_FOUND_RRSET search in datasource %1 resulted in RRset %5</term>
<listitem><para>
The data returned by the database backend contained data for the given domain
name, and it either matches the type or has a relevant type. The RRset that is
returned is printed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_ITERATE">
<term>DATASRC_DATABASE_ITERATE iterating zone %1</term>
<listitem><para>
The program is reading the whole zone, eg. not searching for data, but going
through each of the RRsets there.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_ITERATE_END">
<term>DATASRC_DATABASE_ITERATE_END iterating zone finished</term>
<listitem><para>
While iterating through the zone, the program reached end of the data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_ITERATE_NEXT">
<term>DATASRC_DATABASE_ITERATE_NEXT next RRset in zone is %1/%2</term>
<listitem><para>
While iterating through the zone, the program extracted next RRset from it.
The name and RRtype of the RRset is indicated in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_ITERATE_TTL_MISMATCH">
<term>DATASRC_DATABASE_ITERATE_TTL_MISMATCH TTL values differ for RRs of %1/%2/%3, setting to %4</term>
<listitem><para>
While iterating through the zone, the time to live for RRs of the given RRset
were found to be different. This isn't allowed on the wire and is considered
an error, so we set it to the lowest value we found (but we don't modify the
database). The data in database should be checked and fixed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_JOURNALREADER_END">
<term>DATASRC_DATABASE_JOURNALREADER_END %1/%2 on %3 from %4 to %5</term>
<listitem><para>
This is a debug message indicating that the program (successfully)
reaches the end of sequences of a zone's differences.  The zone's name
and class, database name, and the start and end serials are shown in
the message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_JOURNALREADER_NEXT">
<term>DATASRC_DATABASE_JOURNALREADER_NEXT %1/%2 in %3/%4 on %5</term>
<listitem><para>
This is a debug message indicating that the program retrieves one
difference in difference sequences of a zone and successfully converts
it to an RRset.  The zone's name and class, database name, and the
name and RR type of the retrieved diff are shown in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_JOURNALREADER_START">
<term>DATASRC_DATABASE_JOURNALREADER_START %1/%2 on %3 from %4 to %5</term>
<listitem><para>
This is a debug message indicating that the program starts reading
a zone's difference sequences from a database-based data source.  The
zone's name and class, database name, and the start and end serials
are shown in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_JOURNALREADR_BADDATA">
<term>DATASRC_DATABASE_JOURNALREADR_BADDATA failed to convert a diff to RRset in %1/%2 on %3 between %4 and %5: %6</term>
<listitem><para>
This is an error message indicating that a zone's diff is broken and
the data source library failed to convert it to a valid RRset.  The
most likely cause of this is that someone has manually modified the
zone's diff in the database and inserted invalid data as a result.
The zone's name and class, database name, and the start and end
serials, and an additional detail of the error are shown in the
message.  The administrator should examine the diff in the database
to find any invalid data and fix it.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_NO_MATCH">
<term>DATASRC_DATABASE_NO_MATCH not match for %2/%3/%4 in %1</term>
<listitem><para>
No match (not even a wildcard) was found in the named data source for the given
name/type/class in the data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_UPDATER_COMMIT">
<term>DATASRC_DATABASE_UPDATER_COMMIT updates committed for '%1/%2' on %3</term>
<listitem><para>
Debug information.  A set of updates to a zone has been successfully
committed to the corresponding database backend.  The zone name,
its class and the database name are printed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_UPDATER_CREATED">
<term>DATASRC_DATABASE_UPDATER_CREATED zone updater created for '%1/%2' on %3</term>
<listitem><para>
Debug information.  A zone updater object is created to make updates to
the shown zone on the shown backend database.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_UPDATER_DESTROYED">
<term>DATASRC_DATABASE_UPDATER_DESTROYED zone updater destroyed for '%1/%2' on %3</term>
<listitem><para>
Debug information.  A zone updater object is destroyed, either successfully
or after failure of, making updates to the shown zone on the shown backend
database.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_UPDATER_ROLLBACK">
<term>DATASRC_DATABASE_UPDATER_ROLLBACK zone updates roll-backed for '%1/%2' on %3</term>
<listitem><para>
A zone updater is being destroyed without committing the changes.
This would typically mean the update attempt was aborted due to some
error, but may also be a bug of the application that forgets committing
the changes.  The intermediate changes made through the updater won't
be applied to the underlying database.  The zone name, its class, and
the underlying database name are shown in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_UPDATER_ROLLBACKFAIL">
<term>DATASRC_DATABASE_UPDATER_ROLLBACKFAIL failed to roll back zone updates for '%1/%2' on %3: %4</term>
<listitem><para>
A zone updater is being destroyed without committing the changes to
the database, and attempts to rollback incomplete updates, but it
unexpectedly fails.  The higher level implementation does not expect
it to fail, so this means either a serious operational error in the
underlying data source (such as a system failure of a database) or
software bug in the underlying data source implementation.  In either
case if this message is logged the administrator should carefully
examine the underlying data source to see what exactly happens and
whether the data is still valid.  The zone name, its class, and the
underlying database name as well as the error message thrown from the
database module are shown in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_ANY">
<term>DATASRC_DATABASE_WILDCARD_ANY search in datasource %1 resulted in wildcard match type ANY on %2</term>
<listitem><para>
The database doesn't contain directly matching name.  When searching
for a wildcard match, a wildcard record matching the name of the query
containing some RRsets was found. All the RRsets of the node are returned.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_CANCEL_NS">
<term>DATASRC_DATABASE_WILDCARD_CANCEL_NS canceled wildcard match on %3 because %2 contains NS (data source %1)</term>
<listitem><para>
The database was queried to provide glue data and it didn't find direct match.
It could create it from given wildcard, but matching wildcards is forbidden
under a zone cut, which was found. Therefore the delegation will be returned
instead.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_CANCEL_SUB">
<term>DATASRC_DATABASE_WILDCARD_CANCEL_SUB wildcard %2 can't be used to construct %3 because %4 exists in %1</term>
<listitem><para>
The answer could be constructed using the wildcard, but the given subdomain
exists, therefore this name is something like empty non-terminal (actually,
from the protocol point of view, it is empty non-terminal, but the code
discovers it differently).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_CNAME">
<term>DATASRC_DATABASE_WILDCARD_CNAME search in datasource %1 for %2/%3/%4 found wildcard CNAME at %5, resulting in %6</term>
<listitem><para>
The database doesn't contain directly matching name.  When searching
for a wildcard match, a CNAME RR was found at a wildcard record
matching the name.  This is returned as the result of the search.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_EMPTY">
<term>DATASRC_DATABASE_WILDCARD_EMPTY found subdomains of %2 which is a wildcard match for %3 in %1</term>
<listitem><para>
The given wildcard matches the name being sough but it as an empty
nonterminal (e.g. there's nothing at *.example.com but something like
subdomain.*.example.org, do exist: so *.example.org exists in the
namespace but has no RRs assopciated with it). This will produce NXRRSET.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_MATCH">
<term>DATASRC_DATABASE_WILDCARD_MATCH search in datasource %1 resulted in wildcard match at %5 with RRset %6</term>
<listitem><para>
The database doesn't contain directly matching name.  When searching
for a wildcard match, a wildcard record matching the name and type of
the query was found. The data at this point is returned.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_NS">
<term>DATASRC_DATABASE_WILDCARD_NS search in datasource %1 for %2/%3/%4 found wildcard delegation at %5, resulting in %6</term>
<listitem><para>
The database doesn't contain directly matching name.  When searching
for a wildcard match, an NS RR was found at a wildcard record matching
the name.  This is returned as the result of the search.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DATABASE_WILDCARD_NXRRSET">
<term>DATASRC_DATABASE_WILDCARD_NXRRSET search in datasource %1 for %2/%3/%4 resulted in wildcard NXRRSET at %5</term>
<listitem><para>
The database doesn't contain directly matching name.  When searching
for a wildcard match, a matching wildcard entry was found but it did
not contain RRs the requested type.  AN NXRRSET indication is returned.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_DO_QUERY">
<term>DATASRC_DO_QUERY handling query for '%1/%2'</term>
<listitem><para>
A debug message indicating that a query for the given name and RR type is being
processed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_ADD_RRSET">
<term>DATASRC_MEM_ADD_RRSET adding RRset '%1/%2' into zone '%3'</term>
<listitem><para>
Debug information. An RRset is being added to the in-memory data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_ADD_WILDCARD">
<term>DATASRC_MEM_ADD_WILDCARD adding wildcards for '%1'</term>
<listitem><para>
This is a debug message issued during the processing of a wildcard
name. The internal domain name tree is scanned and some nodes are
specially marked to allow the wildcard lookup to succeed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_ADD_ZONE">
<term>DATASRC_MEM_ADD_ZONE adding zone '%1/%2'</term>
<listitem><para>
Debug information. A zone is being added into the in-memory data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_ANY_SUCCESS">
<term>DATASRC_MEM_ANY_SUCCESS ANY query for '%1' successful</term>
<listitem><para>
Debug information. The domain was found and an ANY type query is being answered
by providing everything found inside the domain.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_CNAME">
<term>DATASRC_MEM_CNAME CNAME at the domain '%1'</term>
<listitem><para>
Debug information. The requested domain is an alias to a different domain,
returning the CNAME instead.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_CNAME_COEXIST">
<term>DATASRC_MEM_CNAME_COEXIST can't add data to CNAME in domain '%1'</term>
<listitem><para>
This is the same problem as in MEM_CNAME_TO_NONEMPTY, but it happened the
other way around -- adding some other data to CNAME.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_CNAME_TO_NONEMPTY">
<term>DATASRC_MEM_CNAME_TO_NONEMPTY can't add CNAME to domain with other data in '%1'</term>
<listitem><para>
Someone or something tried to add a CNAME into a domain that already contains
some other data. But the protocol forbids coexistence of CNAME with anything
(RFC 1034, section 3.6.2). This indicates a problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_CREATE">
<term>DATASRC_MEM_CREATE creating zone '%1' in '%2' class</term>
<listitem><para>
Debug information. A representation of a zone for the in-memory data source is
being created.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DELEG_FOUND">
<term>DATASRC_MEM_DELEG_FOUND delegation found at '%1'</term>
<listitem><para>
Debug information. A delegation point was found above the requested record.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DESTROY">
<term>DATASRC_MEM_DESTROY destroying zone '%1' in '%2' class</term>
<listitem><para>
Debug information. A zone from in-memory data source is being destroyed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DNAME_ENCOUNTERED">
<term>DATASRC_MEM_DNAME_ENCOUNTERED encountered a DNAME</term>
<listitem><para>
Debug information. While searching for the requested domain, a DNAME was
encountered on the way.  This may lead to redirection to a different domain and
stop the search.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DNAME_FOUND">
<term>DATASRC_MEM_DNAME_FOUND DNAME found at '%1'</term>
<listitem><para>
Debug information. A DNAME was found instead of the requested information.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DNAME_NS">
<term>DATASRC_MEM_DNAME_NS DNAME and NS can't coexist in non-apex domain '%1'</term>
<listitem><para>
A request was made for DNAME and NS records to be put into the same
domain which is not the apex (the top of the zone). This is forbidden
by RFC 2672 (section 3) and indicates a problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DOMAIN_EMPTY">
<term>DATASRC_MEM_DOMAIN_EMPTY requested domain '%1' is empty</term>
<listitem><para>
Debug information. The requested domain exists in the tree of domains, but
it is empty. Therefore it doesn't contain the requested resource type.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_DUP_RRSET">
<term>DATASRC_MEM_DUP_RRSET duplicate RRset '%1/%2'</term>
<listitem><para>
An RRset is being inserted into in-memory data source for a second time.  The
original version must be removed first. Note that loading master files where an
RRset is split into multiple locations is not supported yet.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_EXACT_DELEGATION">
<term>DATASRC_MEM_EXACT_DELEGATION delegation at the exact domain '%1'</term>
<listitem><para>
Debug information. There's a NS record at the requested domain. This means
this zone is not authoritative for the requested domain, but a delegation
should be followed. The requested domain is an apex of some zone.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FIND">
<term>DATASRC_MEM_FIND find '%1/%2'</term>
<listitem><para>
Debug information. A search for the requested RRset is being started.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FINDNSEC3">
<term>DATASRC_MEM_FINDNSEC3 finding NSEC3 for %1, mode %2</term>
<listitem><para>
Debug information. A search in an in-memory data source for NSEC3 that
matches or covers the given name is being started.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FINDNSEC3_COVER">
<term>DATASRC_MEM_FINDNSEC3_COVER found a covering NSEC3 for %1: %2</term>
<listitem><para>
Debug information. An NSEC3 that covers the given name is found and
being returned.  The found NSEC3 RRset is also displayed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FINDNSEC3_MATCH">
<term>DATASRC_MEM_FINDNSEC3_MATCH found a matching NSEC3 for %1 at label count %2: %3</term>
<listitem><para>
Debug information. An NSEC3 that matches (a possibly superdomain of)
the given name is found and being returned.  When the shown label
count is smaller than that of the given name, the matching NSEC3 is
for a superdomain of the given name (see DATASRC_MEM_FINDNSEC3_TRYHASH).
The found NSEC3 RRset is also displayed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FINDNSEC3_TRYHASH">
<term>DATASRC_MEM_FINDNSEC3_TRYHASH looking for NSEC3 for %1 at label count %2 (hash %3)</term>
<listitem><para>
Debug information. In an attempt of finding an NSEC3 for the give name,
(a possibly superdomain of) the name is hashed and searched for in the
NSEC3 name space.  When the shown label count is smaller than that of the
shown name, the search tries the superdomain name that share the shown
(higher) label count of the shown name (e.g., for
www.example.com. with shown label count of 3, example.com. is being
tried).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_FIND_ZONE">
<term>DATASRC_MEM_FIND_ZONE looking for zone '%1'</term>
<listitem><para>
Debug information. A zone object for this zone is being searched for in the
in-memory data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_LOAD">
<term>DATASRC_MEM_LOAD loading zone '%1' from file '%2'</term>
<listitem><para>
Debug information. The content of master file is being loaded into the memory.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_NOT_FOUND">
<term>DATASRC_MEM_NOT_FOUND requested domain '%1' not found</term>
<listitem><para>
Debug information. The requested domain does not exist.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_NO_NSEC3PARAM">
<term>DATASRC_MEM_NO_NSEC3PARAM NSEC3PARAM is missing for NSEC3-signed zone %1/%2</term>
<listitem><para>
The in-memory data source has loaded a zone signed with NSEC3 RRs,
but it doesn't have a NSEC3PARAM RR at the zone origin.  It's likely that
the zone is somehow broken, but this RR is not necessarily needed for
handling lookups with NSEC3 in this data source, so it accepts the given
content of the zone.  Nevertheless the administrator should look into
the integrity of the zone data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_NS_ENCOUNTERED">
<term>DATASRC_MEM_NS_ENCOUNTERED encountered a NS</term>
<listitem><para>
Debug information. While searching for the requested domain, a NS was
encountered on the way (a delegation). This may lead to stop of the search.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_NXRRSET">
<term>DATASRC_MEM_NXRRSET no such type '%1' at '%2'</term>
<listitem><para>
Debug information. The domain exists, but it doesn't hold any record of the
requested type.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_OUT_OF_ZONE">
<term>DATASRC_MEM_OUT_OF_ZONE domain '%1' doesn't belong to zone '%2'</term>
<listitem><para>
It was attempted to add the domain into a zone that shouldn't have it
(eg. the domain is not subdomain of the zone origin). This indicates a
problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_RENAME">
<term>DATASRC_MEM_RENAME renaming RRset from '%1' to '%2'</term>
<listitem><para>
Debug information. A RRset is being generated from a different RRset (most
probably a wildcard). So it must be renamed to whatever the user asked for. In
fact, it's impossible to rename RRsets with our libraries, so a new one is
created and all resource records are copied over.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_SINGLETON">
<term>DATASRC_MEM_SINGLETON trying to add multiple RRs for domain '%1' and type '%2'</term>
<listitem><para>
Some resource types are singletons -- only one is allowed in a domain
(for example CNAME or SOA). This indicates a problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_SUCCESS">
<term>DATASRC_MEM_SUCCESS query for '%1/%2' successful</term>
<listitem><para>
Debug information. The requested record was found.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_SUPER_STOP">
<term>DATASRC_MEM_SUPER_STOP stopped as '%1' is superdomain of a zone node, meaning it's empty</term>
<listitem><para>
Debug information. The search stopped because the requested domain was
detected to be a superdomain of some existing node of zone (while there
was no exact match).  This means that the domain is an empty nonterminal,
therefore it is treated  as NXRRSET case (eg. the domain exists, but it
doesn't have the requested record type).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_SWAP">
<term>DATASRC_MEM_SWAP swapping contents of two zone representations ('%1' and '%2')</term>
<listitem><para>
Debug information. The contents of two in-memory zones are being exchanged.
This is usual practice to do some manipulation in exception-safe manner -- the
new data are prepared in a different zone object and when it works, they are
swapped. The old one contains the new data and the other one can be safely
destroyed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_WILDCARD_CANCEL">
<term>DATASRC_MEM_WILDCARD_CANCEL wildcard match canceled for '%1'</term>
<listitem><para>
Debug information. A domain above wildcard was reached, but there's something
below the requested domain. Therefore the wildcard doesn't apply here.  This
behaviour is specified by RFC 1034, section 4.3.3
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_WILDCARD_DNAME">
<term>DATASRC_MEM_WILDCARD_DNAME DNAME record in wildcard domain '%1'</term>
<listitem><para>
The software refuses to load DNAME records into a wildcard domain.  It isn't
explicitly forbidden, but the protocol is ambiguous about how this should
behave and BIND 9 refuses that as well. Please describe your intention using
different tools.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_MEM_WILDCARD_NS">
<term>DATASRC_MEM_WILDCARD_NS NS record in wildcard domain '%1'</term>
<listitem><para>
The software refuses to load NS records into a wildcard domain.  It isn't
explicitly forbidden, but the protocol is ambiguous about how this should
behave and BIND 9 refuses that as well. Please describe your intention using
different tools.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_META_ADD">
<term>DATASRC_META_ADD adding a data source into meta data source</term>
<listitem><para>
This is a debug message issued during startup or reconfiguration.
Another data source is being added into the meta data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_META_ADD_CLASS_MISMATCH">
<term>DATASRC_META_ADD_CLASS_MISMATCH mismatch between classes '%1' and '%2'</term>
<listitem><para>
It was attempted to add a data source into a meta data source, but their
classes do not match.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_META_REMOVE">
<term>DATASRC_META_REMOVE removing data source from meta data source</term>
<listitem><para>
Debug information. A data source is being removed from meta data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_ADD_NSEC">
<term>DATASRC_QUERY_ADD_NSEC adding NSEC record for '%1'</term>
<listitem><para>
Debug information. A NSEC record covering this zone is being added.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_ADD_NSEC3">
<term>DATASRC_QUERY_ADD_NSEC3 adding NSEC3 record of zone '%1'</term>
<listitem><para>
Debug information. A NSEC3 record for the given zone is being added to the
response message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_ADD_RRSET">
<term>DATASRC_QUERY_ADD_RRSET adding RRset '%1/%2' to message</term>
<listitem><para>
Debug information. An RRset is being added to the response message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_ADD_SOA">
<term>DATASRC_QUERY_ADD_SOA adding SOA of '%1'</term>
<listitem><para>
Debug information. A SOA record of the given zone is being added to the
authority section of the response message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_AUTH_FAIL">
<term>DATASRC_QUERY_AUTH_FAIL the underlying data source failed with %1</term>
<listitem><para>
The underlying data source failed to answer the authoritative query. 1 means
some error, 2 is not implemented. The data source should have logged the
specific error already.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_BAD_REFERRAL">
<term>DATASRC_QUERY_BAD_REFERRAL bad referral to '%1'</term>
<listitem><para>
The domain lives in another zone. But it is not possible to generate referral
information for it.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_CACHED">
<term>DATASRC_QUERY_CACHED data for %1/%2 found in hotspot cache</term>
<listitem><para>
Debug information. The requested data were found in the hotspot cache, so
no query is sent to the real data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_CHECK_CACHE">
<term>DATASRC_QUERY_CHECK_CACHE checking hotspot cache for '%1/%2'</term>
<listitem><para>
Debug information. While processing a query, lookup to the hotspot cache
is being made.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_COPY_AUTH">
<term>DATASRC_QUERY_COPY_AUTH copying authoritative section into message</term>
<listitem><para>
Debug information. The whole referral information is being copied into the
response message.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_DELEGATION">
<term>DATASRC_QUERY_DELEGATION looking for delegation on the path to '%1'</term>
<listitem><para>
Debug information. The software is trying to identify delegation points on the
way down to the given domain.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_EMPTY_CNAME">
<term>DATASRC_QUERY_EMPTY_CNAME CNAME at '%1' is empty</term>
<listitem><para>
A CNAME chain was being followed and an entry was found that pointed
to a domain name that had no RRsets associated with it. As a result,
the query cannot be answered. This indicates a problem with supplied data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_EMPTY_DNAME">
<term>DATASRC_QUERY_EMPTY_DNAME the DNAME on '%1' is empty</term>
<listitem><para>
During an attempt to synthesize CNAME from this DNAME it was discovered the
DNAME is empty (it has no records). This indicates problem with supplied data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_FAIL">
<term>DATASRC_QUERY_FAIL query failed</term>
<listitem><para>
Some subtask of query processing failed. The reason should have been reported
already and a SERVFAIL will be returned to the querying system.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_FOLLOW_CNAME">
<term>DATASRC_QUERY_FOLLOW_CNAME following CNAME at '%1'</term>
<listitem><para>
Debug information. The domain is a CNAME (or a DNAME and a CNAME for it
has already been created) and the search is following this chain.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_GET_MX_ADDITIONAL">
<term>DATASRC_QUERY_GET_MX_ADDITIONAL addition of A/AAAA for '%1' requested by MX '%2'</term>
<listitem><para>
Debug information. While processing a query, a MX record was met. It
references the mentioned address, so A/AAAA records for it are looked up
and put it into the additional section.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_GET_NS_ADDITIONAL">
<term>DATASRC_QUERY_GET_NS_ADDITIONAL addition of A/AAAA for '%1' requested by NS '%2'</term>
<listitem><para>
Debug information. While processing a query, a NS record was met. It
references the mentioned address, so A/AAAA records for it are looked up
and put it into the additional section.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_GLUE_FAIL">
<term>DATASRC_QUERY_GLUE_FAIL the underlying data source failed with %1</term>
<listitem><para>
The underlying data source failed to answer the glue query. 1 means some error,
2 is not implemented. The data source should have logged the specific error
already.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_INVALID_OP">
<term>DATASRC_QUERY_INVALID_OP invalid query operation requested</term>
<listitem><para>
This indicates a programmer error. The DO_QUERY was called with unknown
operation code.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_IS_AUTH">
<term>DATASRC_QUERY_IS_AUTH auth query (%1/%2)</term>
<listitem><para>
Debug information. The last DO_QUERY is an auth query.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_IS_GLUE">
<term>DATASRC_QUERY_IS_GLUE glue query (%1/%2)</term>
<listitem><para>
Debug information. The last DO_QUERY is a query for glue addresses.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_IS_NOGLUE">
<term>DATASRC_QUERY_IS_NOGLUE query for non-glue addresses (%1/%2)</term>
<listitem><para>
Debug information. The last DO_QUERY is a query for addresses that are not
glue.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_IS_REF">
<term>DATASRC_QUERY_IS_REF query for referral (%1/%2)</term>
<listitem><para>
Debug information. The last DO_QUERY is a query for referral information.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_IS_SIMPLE">
<term>DATASRC_QUERY_IS_SIMPLE simple query (%1/%2)</term>
<listitem><para>
Debug information. The last DO_QUERY is a simple query.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_MISPLACED_TASK">
<term>DATASRC_QUERY_MISPLACED_TASK task of this type should not be here</term>
<listitem><para>
This indicates a programming error. A task was found in the internal task
queue, but this kind of task wasn't designed to be inside the queue (it should
be handled right away, not queued).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_MISSING_NS">
<term>DATASRC_QUERY_MISSING_NS missing NS records for '%1'</term>
<listitem><para>
NS records should have been put into the authority section. However, this zone
has none. This indicates problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_MISSING_SOA">
<term>DATASRC_QUERY_MISSING_SOA the zone '%1' has no SOA</term>
<listitem><para>
The answer should have been a negative one (eg. of nonexistence of something).
To do so, a SOA record should be put into the authority section, but the zone
does not have one. This indicates problem with provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NOGLUE_FAIL">
<term>DATASRC_QUERY_NOGLUE_FAIL the underlying data source failed with %1</term>
<listitem><para>
The underlying data source failed to answer the no-glue query. 1 means some
error, 2 is not implemented. The data source should have logged the specific
error already.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NO_CACHE_ANY_AUTH">
<term>DATASRC_QUERY_NO_CACHE_ANY_AUTH ignoring hotspot cache for ANY query (%1/%2 in %3 class)</term>
<listitem><para>
Debug information. The hotspot cache is ignored for authoritative ANY queries
for consistency reasons.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NO_CACHE_ANY_SIMPLE">
<term>DATASRC_QUERY_NO_CACHE_ANY_SIMPLE ignoring hotspot cache for ANY query (%1/%2 in %3 class)</term>
<listitem><para>
Debug information. The hotspot cache is ignored for ANY queries for consistency
reasons.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NO_DS_NSEC">
<term>DATASRC_QUERY_NO_DS_NSEC there's no DS record in the '%1' zone</term>
<listitem><para>
An attempt to add a NSEC record into the message failed, because the zone does
not have any DS record. This indicates problem with the provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NO_DS_NSEC3">
<term>DATASRC_QUERY_NO_DS_NSEC3 there's no DS record in the '%1' zone</term>
<listitem><para>
An attempt to add a NSEC3 record into the message failed, because the zone does
not have any DS record. This indicates problem with the provided data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_NO_ZONE">
<term>DATASRC_QUERY_NO_ZONE no zone containing '%1' in class '%2'</term>
<listitem><para>
Debug information. Lookup of domain failed because the datasource
has no zone that contains the domain. Maybe someone sent a query
to the wrong server for some reason. This may also happen when
looking in the datasource for addresses for NS records.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_PROCESS">
<term>DATASRC_QUERY_PROCESS processing query '%1/%2' in the '%3' class</term>
<listitem><para>
Debug information. A sure query is being processed now.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_PROVE_NX_FAIL">
<term>DATASRC_QUERY_PROVE_NX_FAIL unable to prove nonexistence of '%1'</term>
<listitem><para>
The user wants DNSSEC and we discovered the entity doesn't exist (either
domain or the record). But there was an error getting NSEC/NSEC3 record
to prove the nonexistence.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_REF_FAIL">
<term>DATASRC_QUERY_REF_FAIL the underlying data source failed with %1</term>
<listitem><para>
The underlying data source failed to answer the query for referral information.
1 means some error, 2 is not implemented. The data source should have logged
the specific error already.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_RRSIG">
<term>DATASRC_QUERY_RRSIG unable to answer RRSIG query for %1</term>
<listitem><para>
The server is unable to answer a direct query for RRSIG type, but was asked
to do so.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_SIMPLE_FAIL">
<term>DATASRC_QUERY_SIMPLE_FAIL the underlying data source failed with %1</term>
<listitem><para>
The underlying data source failed to answer the simple query. 1 means some
error, 2 is not implemented. The data source should have logged the specific
error already.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_SYNTH_CNAME">
<term>DATASRC_QUERY_SYNTH_CNAME synthesizing CNAME from DNAME on '%1'</term>
<listitem><para>
This is a debug message. While answering a query, a DNAME was encountered. The
DNAME itself will be returned, along with a synthesized CNAME for clients that
do not understand the DNAME RR.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_TASK_FAIL">
<term>DATASRC_QUERY_TASK_FAIL task failed with %1</term>
<listitem><para>
The query subtask failed. The reason should have been reported by the subtask
already. The code is 1 for error, 2 for not implemented.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_TOO_MANY_CNAMES">
<term>DATASRC_QUERY_TOO_MANY_CNAMES CNAME chain limit exceeded at '%1'</term>
<listitem><para>
A CNAME led to another CNAME and it led to another, and so on. After 16
CNAMEs, the software gave up. Long CNAME chains are discouraged, and this
might possibly be a loop as well. Note that some of the CNAMEs might have
been synthesized from DNAMEs. This indicates problem with supplied data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_UNKNOWN_RESULT">
<term>DATASRC_QUERY_UNKNOWN_RESULT unknown result of subtask</term>
<listitem><para>
This indicates a programmer error. The answer of subtask doesn't look like
anything known.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_WILDCARD">
<term>DATASRC_QUERY_WILDCARD looking for a wildcard covering '%1'</term>
<listitem><para>
Debug information. A direct match wasn't found, so a wildcard covering the
domain is being looked for now.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_WILDCARD_FAIL">
<term>DATASRC_QUERY_WILDCARD_FAIL error processing wildcard for '%1'</term>
<listitem><para>
During an attempt to cover the domain by a wildcard an error happened. The
exact kind was hopefully already reported.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_WILDCARD_PROVE_NX_FAIL">
<term>DATASRC_QUERY_WILDCARD_PROVE_NX_FAIL unable to prove nonexistence of '%1' (%2)</term>
<listitem><para>
While processing a wildcard, it wasn't possible to prove nonexistence of the
given domain or record.  The code is 1 for error and 2 for not implemented.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_QUERY_WILDCARD_REFERRAL">
<term>DATASRC_QUERY_WILDCARD_REFERRAL unable to find referral info for '%1' (%2)</term>
<listitem><para>
While processing a wildcard, a referral was met. But it wasn't possible to get
enough information for it.  The code is 1 for error, 2 for not implemented.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_CLOSE">
<term>DATASRC_SQLITE_CLOSE closing SQLite database</term>
<listitem><para>
Debug information. The SQLite data source is closing the database file.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_CONNCLOSE">
<term>DATASRC_SQLITE_CONNCLOSE Closing sqlite database</term>
<listitem><para>
The database file is no longer needed and is being closed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_CONNOPEN">
<term>DATASRC_SQLITE_CONNOPEN Opening sqlite database file '%1'</term>
<listitem><para>
The database file is being opened so it can start providing data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_CREATE">
<term>DATASRC_SQLITE_CREATE SQLite data source created</term>
<listitem><para>
Debug information. An instance of SQLite data source is being created.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_DESTROY">
<term>DATASRC_SQLITE_DESTROY SQLite data source destroyed</term>
<listitem><para>
Debug information. An instance of SQLite data source is being destroyed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_DROPCONN">
<term>DATASRC_SQLITE_DROPCONN SQLite3Database is being deinitialized</term>
<listitem><para>
The object around a database connection is being destroyed.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_ENCLOSURE">
<term>DATASRC_SQLITE_ENCLOSURE looking for zone containing '%1'</term>
<listitem><para>
Debug information. The SQLite data source is trying to identify which zone
should hold this domain.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_ENCLOSURE_NOT_FOUND">
<term>DATASRC_SQLITE_ENCLOSURE_NOT_FOUND no zone contains '%1'</term>
<listitem><para>
Debug information. The last SQLITE_ENCLOSURE query was unsuccessful; there's
no such zone in our data.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FIND">
<term>DATASRC_SQLITE_FIND looking for RRset '%1/%2'</term>
<listitem><para>
Debug information. The SQLite data source is looking up a resource record
set.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDADDRS">
<term>DATASRC_SQLITE_FINDADDRS looking for A/AAAA addresses for '%1'</term>
<listitem><para>
Debug information. The data source is looking up the addresses for given
domain name.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDADDRS_BAD_CLASS">
<term>DATASRC_SQLITE_FINDADDRS_BAD_CLASS class mismatch looking for addresses ('%1' and '%2')</term>
<listitem><para>
The SQLite data source was looking up A/AAAA addresses, but the data source
contains different class than the query was for.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDEXACT">
<term>DATASRC_SQLITE_FINDEXACT looking for exact RRset '%1/%2'</term>
<listitem><para>
Debug information. The SQLite data source is looking up an exact resource
record.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDEXACT_BAD_CLASS">
<term>DATASRC_SQLITE_FINDEXACT_BAD_CLASS class mismatch looking for an RRset ('%1' and '%2')</term>
<listitem><para>
The SQLite data source was looking up an exact RRset, but the data source
contains different class than the query was for.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDREC">
<term>DATASRC_SQLITE_FINDREC looking for record '%1/%2'</term>
<listitem><para>
Debug information. The SQLite data source is looking up records of given name
and type in the database.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDREF">
<term>DATASRC_SQLITE_FINDREF looking for referral at '%1'</term>
<listitem><para>
Debug information. The SQLite data source is identifying if this domain is
a referral and where it goes.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FINDREF_BAD_CLASS">
<term>DATASRC_SQLITE_FINDREF_BAD_CLASS class mismatch looking for referral ('%1' and '%2')</term>
<listitem><para>
The SQLite data source was trying to identify if there's a referral. But
it contains different class than the query was for.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FIND_BAD_CLASS">
<term>DATASRC_SQLITE_FIND_BAD_CLASS class mismatch looking for an RRset ('%1' and '%2')</term>
<listitem><para>
The SQLite data source was looking up an RRset, but the data source contains
different class than the query was for.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FIND_NSEC3">
<term>DATASRC_SQLITE_FIND_NSEC3 looking for NSEC3 in zone '%1' for hash '%2'</term>
<listitem><para>
Debug information. We're trying to look up a NSEC3 record in the SQLite data
source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_FIND_NSEC3_NO_ZONE">
<term>DATASRC_SQLITE_FIND_NSEC3_NO_ZONE no such zone '%1'</term>
<listitem><para>
The SQLite data source was asked to provide a NSEC3 record for given zone.
But it doesn't contain that zone.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_NEWCONN">
<term>DATASRC_SQLITE_NEWCONN SQLite3Database is being initialized</term>
<listitem><para>
A wrapper object to hold database connection is being initialized.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_OPEN">
<term>DATASRC_SQLITE_OPEN opening SQLite database '%1'</term>
<listitem><para>
Debug information. The SQLite data source is loading an SQLite database in
the provided file.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_PREVIOUS">
<term>DATASRC_SQLITE_PREVIOUS looking for name previous to '%1'</term>
<listitem><para>
This is a debug message.  The name given was not found, so the program
is searching for the next name higher up the hierarchy (e.g. if
www.example.com were queried for and not found, the software searches
for the "previous" name, example.com).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_PREVIOUS_NO_ZONE">
<term>DATASRC_SQLITE_PREVIOUS_NO_ZONE no zone containing '%1'</term>
<listitem><para>
The name given was not found, so the program is searching for the next
name higher up the hierarchy (e.g. if www.example.com were queried
for and not found, the software searches for the "previous" name,
example.com). However, this name is not contained in any zone in the
data source. This is an error since it indicates a problem in the earlier
processing of the query.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_SETUP">
<term>DATASRC_SQLITE_SETUP setting up SQLite database</term>
<listitem><para>
The database for SQLite data source was found empty. It is assumed this is the
first run and it is being initialized with current schema.  It'll still contain
no data, but it will be ready for use.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_STATIC_CLASS_NOT_CH">
<term>DATASRC_STATIC_CLASS_NOT_CH static data source can handle CH class only</term>
<listitem><para>
An error message indicating that a query requesting a RR for a class other
that CH was sent to the static data source (which only handles CH queries).
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_STATIC_CREATE">
<term>DATASRC_STATIC_CREATE creating the static datasource</term>
<listitem><para>
Debug information. The static data source (the one holding stuff like
version.bind) is being created.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_STATIC_FIND">
<term>DATASRC_STATIC_FIND looking for '%1/%2'</term>
<listitem><para>
Debug information. This resource record set is being looked up in the static
data source.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_UNEXPECTED_QUERY_STATE">
<term>DATASRC_UNEXPECTED_QUERY_STATE unexpected query state</term>
<listitem><para>
This indicates a programming error. An internal task of unknown type was
generated.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_BACKUP">
<term>DBUTIL_BACKUP created backup of %1 in %2</term>
<listitem><para>
A backup for the given database file was created. Same of original file and
backup are given in the output message.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_CHECK_ERROR">
<term>DBUTIL_CHECK_ERROR unable to check database version: %1</term>
<listitem><para>
There was an error while trying to check the current version of the database
schema. The error is shown in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_CHECK_NOCONFIRM">
<term>DBUTIL_CHECK_NOCONFIRM --noconfirm is not compatible with --check</term>
<listitem><para>
b10-dbutil was called with --check and --noconfirm. --noconfirm only has
meaning with --upgrade, so this is considered an error.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_CHECK_OK">
<term>DBUTIL_CHECK_OK this is the latest version of the database schema. No upgrade is required</term>
<listitem><para>
The database schema version has been checked, and is up to date.
No action is required.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_CHECK_UPGRADE_NEEDED">
<term>DBUTIL_CHECK_UPGRADE_NEEDED re-run this program with the --upgrade switch to upgrade</term>
<listitem><para>
The database schema version is not up to date, and an update is required.
Please run the dbutil tool again, with the --upgrade argument.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_COMMAND_NONE">
<term>DBUTIL_COMMAND_NONE must select one of --check or --upgrade</term>
<listitem><para>
b10-dbutil was called with neither --check nor --upgrade. One action must be
provided.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_COMMAND_UPGRADE_CHECK">
<term>DBUTIL_COMMAND_UPGRADE_CHECK --upgrade is not compatible with --check</term>
<listitem><para>
b10-dbutil was called with both the commands --upgrade and --check. Only one
action can be performed at a time.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_DATABASE_MAY_BE_CORRUPT">
<term>DBUTIL_DATABASE_MAY_BE_CORRUPT database file %1 may be corrupt, restore it from backup (%2)</term>
<listitem><para>
The upgrade failed while it was in progress; the database may now be in an
inconsistent state, and it is advised to restore it from the backup that was
created when b10-dbutil started.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_EXECUTE">
<term>DBUTIL_EXECUTE Executing SQL statement: %1</term>
<listitem><para>
Debug message; the given SQL statement is executed
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_FILE">
<term>DBUTIL_FILE Database file: %1</term>
<listitem><para>
The database file that is being checked.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_NO_FILE">
<term>DBUTIL_NO_FILE must supply name of the database file to upgrade</term>
<listitem><para>
b10-dbutil was called without a database file. Currently, it cannot find this
file on its own, and it must be provided.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_STATEMENT_ERROR">
<term>DBUTIL_STATEMENT_ERROR failed to execute %1: %2</term>
<listitem><para>
The given database statement failed to execute. The error is shown in the
message.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_TOO_MANY_ARGUMENTS">
<term>DBUTIL_TOO_MANY_ARGUMENTS too many arguments to the command, maximum of one expected</term>
<listitem><para>
There were too many command-line arguments to b10-dbutil
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_CANCELED">
<term>DBUTIL_UPGRADE_CANCELED upgrade canceled; database has not been changed</term>
<listitem><para>
The user aborted the upgrade, and b10-dbutil will now exit.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_DBUTIL">
<term>DBUTIL_UPGRADE_DBUTIL please get the latest version of b10-dbutil and re-run</term>
<listitem><para>
A database schema was found that was newer than this version of dbutil, which
is apparently out of date and should be upgraded itself.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_FAILED">
<term>DBUTIL_UPGRADE_FAILED upgrade failed: %1</term>
<listitem><para>
While the upgrade was in progress, an unexpected error occurred. The error
is shown in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_NOT_ATTEMPTED">
<term>DBUTIL_UPGRADE_NOT_ATTEMPTED database upgrade was not attempted</term>
<listitem><para>
Due to the earlier failure, the database schema upgrade was not attempted,
and b10-dbutil will now exit.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_NOT_NEEDED">
<term>DBUTIL_UPGRADE_NOT_NEEDED database already at latest version, no upgrade necessary</term>
<listitem><para>
b10-dbutil was told to upgrade the database schema, but it is already at the
latest version.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_NOT_POSSIBLE">
<term>DBUTIL_UPGRADE_NOT_POSSIBLE database at a later version than this utility can support</term>
<listitem><para>
b10-dbutil was told to upgrade the database schema, but it is at a higher
version than this tool currently supports. Please update b10-dbutil and try
again.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_PREPARATION_FAILED">
<term>DBUTIL_UPGRADE_PREPARATION_FAILED upgrade preparation failed: %1</term>
<listitem><para>
An unexpected error occurred while b10-dbutil was preparing to upgrade the
database schema. The error is shown in the message
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADE_SUCCESFUL">
<term>DBUTIL_UPGRADE_SUCCESFUL database upgrade successfully completed</term>
<listitem><para>
The database schema update was completed successfully.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_UPGRADING">
<term>DBUTIL_UPGRADING upgrading database from %1 to %2</term>
<listitem><para>
An upgrade is in progress, the versions of the current upgrade action are shown.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_VERSION_CURRENT">
<term>DBUTIL_VERSION_CURRENT database version %1</term>
<listitem><para>
The current version of the database schema.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_VERSION_HIGH">
<term>DBUTIL_VERSION_HIGH database is at a later version (%1) than this program can cope with (%2)</term>
<listitem><para>
The database schema is at a higher version than b10-dbutil knows about.
</para></listitem>
</varlistentry>

<varlistentry id="DBUTIL_VERSION_LOW">
<term>DBUTIL_VERSION_LOW database version %1, latest version is %2.</term>
<listitem><para>
The database schema is not up to date, the current version and the latest
version are in the message.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_ACCEPT_FAILURE">
<term>DDNS_ACCEPT_FAILURE error accepting a connection: %1</term>
<listitem><para>
There was a low-level error when we tried to accept an incoming connection
(probably coming from b10-auth). We continue serving on whatever other
connections we already have, but this connection is dropped. The reason
is logged.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_CC_SESSION_ERROR">
<term>DDNS_CC_SESSION_ERROR error reading from cc channel: %1</term>
<listitem><para>
There was a problem reading from the command and control channel. The
most likely cause is that the msgq process is not running.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_CC_SESSION_TIMEOUT_ERROR">
<term>DDNS_CC_SESSION_TIMEOUT_ERROR timeout waiting for cc response</term>
<listitem><para>
There was a problem reading a response from another module over the
command and control channel. The most likely cause is that the
configuration manager b10-cfgmgr is not running.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_CONFIG_ERROR">
<term>DDNS_CONFIG_ERROR error found in configuration data: %1</term>
<listitem><para>
The ddns process encountered an error when installing the configuration at
startup time.  Details of the error are included in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_DROP_CONN">
<term>DDNS_DROP_CONN dropping connection on file descriptor %1 because of error %2</term>
<listitem><para>
There was an error on a connection with the b10-auth server (or whatever
connects to the ddns daemon). This might be OK, for example when the
authoritative server shuts down, the connection would get closed. It also
can mean the system is busy and can't keep up or that the other side got
confused and sent bad data.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_MODULECC_SESSION_ERROR">
<term>DDNS_MODULECC_SESSION_ERROR error encountered by configuration/command module: %1</term>
<listitem><para>
There was a problem in the lower level module handling configuration and
control commands.  This could happen for various reasons, but the most likely
cause is that the configuration database contains a syntax error and ddns
failed to start at initialization.  A detailed error message from the module
will also be displayed.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_NEW_CONN">
<term>DDNS_NEW_CONN new connection on file descriptor %1 from %2</term>
<listitem><para>
Debug message. We received a connection and we are going to start handling
requests from it. The file descriptor number and the address where the request
comes from is logged. The connection is over a unix domain socket and is likely
coming from a b10-auth process.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_RECEIVED_SHUTDOWN_COMMAND">
<term>DDNS_RECEIVED_SHUTDOWN_COMMAND shutdown command received</term>
<listitem><para>
The ddns process received a shutdown command from the command channel
and will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_RUNNING">
<term>DDNS_RUNNING ddns server is running and listening for updates</term>
<listitem><para>
The ddns process has successfully started and is now ready to receive commands
and updates.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_SESSION">
<term>DDNS_SESSION session arrived on file descriptor %1</term>
<listitem><para>
A debug message, informing there's some activity on the given file descriptor.
It will be either a request or the file descriptor will be closed. See
following log messages to see what of it.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_SHUTDOWN">
<term>DDNS_SHUTDOWN ddns server shutting down</term>
<listitem><para>
The ddns process is shutting down. It will no longer listen for new commands
or updates. Any command or update that is being addressed at this moment will
be completed, after which the process will exit.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_STOPPED">
<term>DDNS_STOPPED ddns server has stopped</term>
<listitem><para>
The ddns process has successfully stopped and is no longer listening for or
handling commands or updates, and will now exit.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_STOPPED_BY_KEYBOARD">
<term>DDNS_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the ddns process. The
process will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="DDNS_UNCAUGHT_EXCEPTION">
<term>DDNS_UNCAUGHT_EXCEPTION uncaught exception of type %1: %2</term>
<listitem><para>
The b10-ddns process encountered an uncaught exception and will now shut
down. This is indicative of a programming error and should not happen under
normal circumstances. The exception type and message are printed.
</para></listitem>
</varlistentry>

<varlistentry id="LIBXFRIN_DIFFERENT_TTL">
<term>LIBXFRIN_DIFFERENT_TTL multiple data with different TTLs (%1, %2) on %3/%4/%5. Adjusting %2 -&gt; %1.</term>
<listitem><para>
The xfrin module received an update containing multiple rdata changes for the
same RRset. But the TTLs of these don't match each other. As we combine them
together, the latter one gets overwritten to the earlier one in the sequence.
</para></listitem>
</varlistentry>

<varlistentry id="LIBXFRIN_NO_JOURNAL">
<term>LIBXFRIN_NO_JOURNAL disabled journaling for updates to %1 on %2</term>
<listitem><para>
An attempt was made to create a Diff object with journaling enabled, but
the underlying data source didn't support journaling (while still allowing
updates) and so the created object has it disabled.  At a higher level this
means that the updates will be applied to the zone but subsequent IXFR requests
will result in a full zone transfer (i.e., an AXFR-style IXFR).  Unless the
overhead of the full transfer is an issue this message can be ignored;
otherwise you may want to check why the journaling wasn't allowed on the
data source and either fix the issue or use a different type of data source.
</para></listitem>
</varlistentry>

<varlistentry id="LOGIMPL_ABOVE_MAX_DEBUG">
<term>LOGIMPL_ABOVE_MAX_DEBUG debug level of %1 is too high and will be set to the maximum of %2</term>
<listitem><para>
A message from the interface to the underlying logger implementation reporting
that the debug level (as set by an internally-created string DEBUGn, where n
is an integer, e.g. DEBUG22) is above the maximum allowed value and has
been reduced to that value.  The appearance of this message may indicate
a programming error - please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="LOGIMPL_BAD_DEBUG_STRING">
<term>LOGIMPL_BAD_DEBUG_STRING debug string '%1' has invalid format</term>
<listitem><para>
A message from the interface to the underlying logger implementation
reporting that an internally-created string used to set the debug level
is not of the correct format (it should be of the form DEBUGn, where n
is an integer, e.g. DEBUG22).  The appearance of this message indicates
a programming error - please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="LOGIMPL_BELOW_MIN_DEBUG">
<term>LOGIMPL_BELOW_MIN_DEBUG debug level of %1 is too low and will be set to the minimum of %2</term>
<listitem><para>
A message from the interface to the underlying logger implementation reporting
that the debug level (as set by an internally-created string DEBUGn, where n
is an integer, e.g. DEBUG22) is below the minimum allowed value and has
been increased to that value.  The appearance of this message may indicate
a programming error - please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_BAD_DESTINATION">
<term>LOG_BAD_DESTINATION unrecognized log destination: %1</term>
<listitem><para>
A logger destination value was given that was not recognized. The
destination should be one of "console", "file", or "syslog".
</para></listitem>
</varlistentry>

<varlistentry id="LOG_BAD_SEVERITY">
<term>LOG_BAD_SEVERITY unrecognized log severity: %1</term>
<listitem><para>
A logger severity value was given that was not recognized. The severity
should be one of "DEBUG", "INFO", "WARN", "ERROR", "FATAL" or "NONE".
</para></listitem>
</varlistentry>

<varlistentry id="LOG_BAD_STREAM">
<term>LOG_BAD_STREAM bad log console output stream: %1</term>
<listitem><para>
Logging has been configured so that output is written to the terminal
(console) but the stream on which it is to be written is not recognised.
Allowed values are "stdout" and "stderr".
</para></listitem>
</varlistentry>

<varlistentry id="LOG_DUPLICATE_MESSAGE_ID">
<term>LOG_DUPLICATE_MESSAGE_ID duplicate message ID (%1) in compiled code</term>
<listitem><para>
During start-up, BIND 10 detected that the given message identification
had been defined multiple times in the BIND 10 code.  This indicates a
programming error; please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_DUPLICATE_NAMESPACE">
<term>LOG_DUPLICATE_NAMESPACE line %1: duplicate $NAMESPACE directive found</term>
<listitem><para>
When reading a message file, more than one $NAMESPACE directive was found.
(This directive is used to set a C++ namespace when generating header
files during software development.)  Such a condition is regarded as an
error and the read will be abandoned.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_INPUT_OPEN_FAIL">
<term>LOG_INPUT_OPEN_FAIL unable to open message file %1 for input: %2</term>
<listitem><para>
The program was not able to open the specified input message file for
the reason given.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_INVALID_MESSAGE_ID">
<term>LOG_INVALID_MESSAGE_ID line %1: invalid message identification '%2'</term>
<listitem><para>
An invalid message identification (ID) has been found during the read of
a message file.  Message IDs should comprise only alphanumeric characters
and the underscore, and should not start with a digit.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NAMESPACE_EXTRA_ARGS">
<term>LOG_NAMESPACE_EXTRA_ARGS line %1: $NAMESPACE directive has too many arguments</term>
<listitem><para>
The $NAMESPACE directive in a message file takes a single argument, a
namespace in which all the generated symbol names are placed.  This error
is generated when the compiler finds a $NAMESPACE directive with more
than one argument.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NAMESPACE_INVALID_ARG">
<term>LOG_NAMESPACE_INVALID_ARG line %1: $NAMESPACE directive has an invalid argument ('%2')</term>
<listitem><para>
The $NAMESPACE argument in a message file should be a valid C++ namespace.
This message is output if the simple check on the syntax of the string
carried out by the reader fails.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NAMESPACE_NO_ARGS">
<term>LOG_NAMESPACE_NO_ARGS line %1: no arguments were given to the $NAMESPACE directive</term>
<listitem><para>
The $NAMESPACE directive in a message file takes a single argument,
a C++ namespace in which all the generated symbol names are placed.
This error is generated when the compiler finds a $NAMESPACE directive
with no arguments.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NO_MESSAGE_ID">
<term>LOG_NO_MESSAGE_ID line %1: message definition line found without a message ID</term>
<listitem><para>
Within a message file, message are defined by lines starting with a "%".
The rest of the line should comprise the message ID and text describing
the message.  This error indicates the message compiler found a line in
the message file comprising just the "%" and nothing else.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NO_MESSAGE_TEXT">
<term>LOG_NO_MESSAGE_TEXT line %1: line found containing a message ID ('%2') and no text</term>
<listitem><para>
Within a message file, message are defined by lines starting with a "%".
The rest of the line should comprise the message ID and text describing
the message.  This error indicates the message compiler found a line
in the message file comprising just the "%" and message identification,
but no text.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_NO_SUCH_MESSAGE">
<term>LOG_NO_SUCH_MESSAGE could not replace message text for '%1': no such message</term>
<listitem><para>
During start-up a local message file was read.  A line with the listed
message identification was found in the file, but the identification is
not one contained in the compiled-in message dictionary.  This message
may appear a number of times in the file, once for every such unknown
message identification.
</para><para>
There may be several reasons why this message may appear:
</para><para>
- The message ID has been mis-spelled in the local message file.
</para><para>
- The program outputting the message may not use that particular message
(e.g. it originates in a module not used by the program.)
</para><para>
- The local file was written for an earlier version of the BIND 10 software
and the later version no longer generates that message.
</para><para>
Whatever the reason, there is no impact on the operation of BIND 10.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_OPEN_OUTPUT_FAIL">
<term>LOG_OPEN_OUTPUT_FAIL unable to open %1 for output: %2</term>
<listitem><para>
Originating within the logging code, the program was not able to open
the specified output file for the reason given.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_PREFIX_EXTRA_ARGS">
<term>LOG_PREFIX_EXTRA_ARGS line %1: $PREFIX directive has too many arguments</term>
<listitem><para>
Within a message file, the $PREFIX directive takes a single argument,
a prefix to be added to the symbol names when a C++ file is created.
This error is generated when the compiler finds a $PREFIX directive with
more than one argument.
</para><para>
Note: the $PREFIX directive is deprecated and will be removed in a future
version of BIND 10.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_PREFIX_INVALID_ARG">
<term>LOG_PREFIX_INVALID_ARG line %1: $PREFIX directive has an invalid argument ('%2')</term>
<listitem><para>
Within a message file, the $PREFIX directive takes a single argument,
a prefix to be added to the symbol names when a C++ file is created.
As such, it must adhere to restrictions on C++ symbol names (e.g. may
only contain alphanumeric characters or underscores, and may nor start
with a digit).  A $PREFIX directive was found with an argument (given
in the message) that violates those restrictions.
</para><para>
Note: the $PREFIX directive is deprecated and will be removed in a future
version of BIND 10.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_READING_LOCAL_FILE">
<term>LOG_READING_LOCAL_FILE reading local message file %1</term>
<listitem><para>
This is an informational message output by BIND 10 when it starts to read
a local message file.  (A local message file may replace the text of
one of more messages; the ID of the message will not be changed though.)
</para></listitem>
</varlistentry>

<varlistentry id="LOG_READ_ERROR">
<term>LOG_READ_ERROR error reading from message file %1: %2</term>
<listitem><para>
The specified error was encountered reading from the named message file.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_UNRECOGNISED_DIRECTIVE">
<term>LOG_UNRECOGNISED_DIRECTIVE line %1: unrecognised directive '%2'</term>
<listitem><para>
Within a message file, a line starting with a dollar symbol was found
(indicating the presence of a directive) but the first word on the line
(shown in the message) was not recognised.
</para></listitem>
</varlistentry>

<varlistentry id="LOG_WRITE_ERROR">
<term>LOG_WRITE_ERROR error writing to %1: %2</term>
<listitem><para>
The specified error was encountered by the message compiler when writing
to the named output file.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_DATASRC_ACCESS_FAILURE">
<term>NOTIFY_OUT_DATASRC_ACCESS_FAILURE failed to get access to data source: %1</term>
<listitem><para>
notify_out failed to get access to one of configured data sources.
Detailed error is shown in the log message.  This can be either a
configuration error or installation setup failure.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_DATASRC_ZONE_NOT_FOUND">
<term>NOTIFY_OUT_DATASRC_ZONE_NOT_FOUND Zone %1 is not found</term>
<listitem><para>
notify_out attempted to get slave information of a zone but the zone
isn't found in the expected data source.  This shouldn't happen,
because notify_out first identifies a list of available zones before
this process.  So this means some critical inconsistency in the data
source or software bug.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_INVALID_ADDRESS">
<term>NOTIFY_OUT_INVALID_ADDRESS invalid address %1#%2: %3</term>
<listitem><para>
The notify_out library tried to send a notify message to the given
address, but it appears to be an invalid address. The configuration
for secondary nameservers might contain a typographic error, or a
different BIND 10 module has forgotten to validate its data before
sending this module a notify command. As such, this should normally
not happen, and points to an oversight in a different module.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_REPLY_BAD_OPCODE">
<term>NOTIFY_OUT_REPLY_BAD_OPCODE bad opcode in notify reply from %1#%2: %3</term>
<listitem><para>
The notify_out library sent a notify message to the nameserver at
the given address, but the response did not have the opcode set to
NOTIFY. The opcode in the response is printed. Since there was a
response, no more notifies will be sent to this server for this
notification event.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_REPLY_BAD_QID">
<term>NOTIFY_OUT_REPLY_BAD_QID bad QID in notify reply from %1#%2: got %3, should be %4</term>
<listitem><para>
The notify_out library sent a notify message to the nameserver at
the given address, but the query id in the response does not match
the one we sent. Since there was a response, no more notifies will
be sent to this server for this notification event.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_REPLY_BAD_QUERY_NAME">
<term>NOTIFY_OUT_REPLY_BAD_QUERY_NAME bad query name in notify reply from %1#%2: got %3, should be %4</term>
<listitem><para>
The notify_out library sent a notify message to the nameserver at
the given address, but the query name in the response does not match
the one we sent. Since there was a response, no more notifies will
be sent to this server for this notification event.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_REPLY_QR_NOT_SET">
<term>NOTIFY_OUT_REPLY_QR_NOT_SET QR flags set to 0 in reply to notify from %1#%2</term>
<listitem><para>
The notify_out library sent a notify message to the namesever at the
given address, but the reply did not have the QR bit set to one.
Since there was a response, no more notifies will be sent to this
server for this notification event.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_REPLY_UNCAUGHT_EXCEPTION">
<term>NOTIFY_OUT_REPLY_UNCAUGHT_EXCEPTION uncaught exception: %1</term>
<listitem><para>
There was an uncaught exception in the handling of a notify reply
message, either in the message parser, or while trying to extract data
from the parsed message. The error is printed, and notify_out will
treat the response as a bad message, but this does point to a
programming error, since all exceptions should have been caught
explicitly. Please file a bug report. Since there was a response,
no more notifies will be sent to this server for this notification
event.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_RETRY_EXCEEDED">
<term>NOTIFY_OUT_RETRY_EXCEEDED notify to %1#%2: number of retries (%3) exceeded</term>
<listitem><para>
The maximum number of retries for the notify target has been exceeded.
Either the address of the secondary nameserver is wrong, or it is not
responding.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_SENDING_NOTIFY">
<term>NOTIFY_OUT_SENDING_NOTIFY sending notify to %1#%2</term>
<listitem><para>
A notify message is sent to the secondary nameserver at the given
address.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_SOCKET_ERROR">
<term>NOTIFY_OUT_SOCKET_ERROR socket error sending notify to %1#%2: %3</term>
<listitem><para>
There was a network error while trying to send a notify message to
the given address. The address might be unreachable. The socket
error is printed and should provide more information.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_SOCKET_RECV_ERROR">
<term>NOTIFY_OUT_SOCKET_RECV_ERROR socket error reading notify reply from %1#%2: %3</term>
<listitem><para>
There was a network error while trying to read a notify reply
message from the given address. The socket error is printed and should
provide more information.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_TIMEOUT">
<term>NOTIFY_OUT_TIMEOUT retry notify to %1#%2</term>
<listitem><para>
The notify message to the given address (noted as address#port) has
timed out, and the message will be resent until the max retry limit
is reached.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_ZONE_BAD_SOA">
<term>NOTIFY_OUT_ZONE_BAD_SOA Zone %1 is invalid in terms of SOA</term>
<listitem><para>
This is a warning issued when the notify_out module finds a zone that
doesn't have an SOA RR or has multiple SOA RRs.  Notify message won't
be sent to such a zone.
</para></listitem>
</varlistentry>

<varlistentry id="NOTIFY_OUT_ZONE_NO_NS">
<term>NOTIFY_OUT_ZONE_NO_NS Zone %1 doesn't have NS RR</term>
<listitem><para>
This is a warning issued when the notify_out module finds a zone that
doesn't have an NS RR.  Notify message won't be sent to such a zone.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_EMPTY_RESPONSE">
<term>NSAS_EMPTY_RESPONSE response to query for %1 returned an empty answer section</term>
<listitem><para>
The NSAS (nameserver address store - part of the resolver) made a query
for information it needed.  The query completed successfully but the
answer section in the response was empty.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_ERROR_RESPONSE">
<term>NSAS_ERROR_RESPONSE error response of %1 returned in query for %2</term>
<listitem><para>
The NSAS (nameserver address store - part of the resolver) made a query
for information it needed.  The query completed successfully but the
RCODE in the response was something other than NOERROR.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_FIND_NS_ADDRESS">
<term>NSAS_FIND_NS_ADDRESS asking resolver to obtain A and AAAA records for %1</term>
<listitem><para>
A debug message issued when the NSAS (nameserver address store - part
of the resolver) is making a callback into the resolver to retrieve the
address records for the specified nameserver.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_FOUND_ADDRESS">
<term>NSAS_FOUND_ADDRESS found address %1 for %2</term>
<listitem><para>
A debug message issued when the NSAS (nameserver address store - part
of the resolver) has retrieved the given address for the specified
nameserver through an external query.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_LOOKUP_CANCEL">
<term>NSAS_LOOKUP_CANCEL lookup for zone %1 has been canceled</term>
<listitem><para>
A debug message issued when an NSAS (nameserver address store - part of
the resolver) lookup for a zone has been canceled.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_NS_LOOKUP_FAIL">
<term>NSAS_NS_LOOKUP_FAIL failed to lookup any %1 for %2</term>
<listitem><para>
A debug message issued when the NSAS (nameserver address store - part of
the resolver) has been unable to retrieve the specified resource record
for the specified nameserver.  This is not necessarily a problem - the
nameserver may be unreachable, in which case the NSAS will try other
nameservers in the zone.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_NULL_RESPONSE">
<term>NSAS_NULL_RESPONSE got null message in success callback for query for %1</term>
<listitem><para>
The NSAS (nameserver address store - part of the resolver) made a query
for information it needed.  The query completed successfully, but the
message passed to the callback was null.
</para><para>
This message indicates an internal error in the NSAS.  Please raise a
bug report.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_SEARCH_ZONE_NS">
<term>NSAS_SEARCH_ZONE_NS searching NSAS for nameservers for zone %1</term>
<listitem><para>
A debug message output when a call is made to the NSAS (nameserver
address store - part of the resolver) to obtain the nameservers for
the specified zone.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_UPDATE_RTT">
<term>NSAS_UPDATE_RTT update RTT for %1: was %2 ms, is now %3 ms</term>
<listitem><para>
A NSAS (nameserver address store - part of the resolver) debug message
reporting the update of a round-trip time (RTT) for a query made to the
specified nameserver.  The RTT has been updated using the value given
and the new RTT is displayed.  (The RTT is subject to a calculation that
damps out sudden changes.  As a result, the new RTT used by the NSAS in
future decisions of which nameserver to use is not necessarily equal to
the RTT reported.)
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_WRONG_ANSWER">
<term>NSAS_WRONG_ANSWER queried for %1 RR of type/class %2/%3, received response %4/%5</term>
<listitem><para>
A NSAS (nameserver address store - part of the resolver) made a query for
a resource record of a particular type and class, but instead received
an answer with a different given type and class.
</para><para>
This message indicates an internal error in the NSAS.  Please raise a
bug report.
</para></listitem>
</varlistentry>

<varlistentry id="PYSERVER_COMMON_TSIG_KEYRING_DEINIT">
<term>PYSERVER_COMMON_TSIG_KEYRING_DEINIT Deinitializing global TSIG keyring</term>
<listitem><para>
A debug message noting that the global TSIG keyring is being removed from
memory. Most programs don't do that, they just exit, which is OK.
</para></listitem>
</varlistentry>

<varlistentry id="PYSERVER_COMMON_TSIG_KEYRING_INIT">
<term>PYSERVER_COMMON_TSIG_KEYRING_INIT Initializing global TSIG keyring</term>
<listitem><para>
A debug message noting the TSIG keyring storage is being prepared. It should
appear at most once in the lifetime of a program. The keyring still needs
to be loaded from configuration.
</para></listitem>
</varlistentry>

<varlistentry id="PYSERVER_COMMON_TSIG_KEYRING_UPDATE">
<term>PYSERVER_COMMON_TSIG_KEYRING_UPDATE Updating global TSIG keyring</term>
<listitem><para>
A debug message. The TSIG keyring is being (re)loaded from configuration.
This happens at startup or when the configuration changes. The old keyring
is removed and new one created with all the keys.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_ANSWER">
<term>RESLIB_ANSWER answer received in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message reporting that an answer has been received to an upstream
query for the specified question.  Previous debug messages will have
indicated the server to which the question was sent.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_CNAME">
<term>RESLIB_CNAME CNAME received in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message recording that CNAME response has been received to an
upstream query for the specified question.  Previous debug messages will
have indicated the server to which the question was sent.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_DEEPEST">
<term>RESLIB_DEEPEST did not find &lt;%1&gt; in cache, deepest delegation found is %2</term>
<listitem><para>
A debug message, a cache lookup did not find the specified &lt;name,
class, type&gt; tuple in the cache; instead, the deepest delegation found
is indicated.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_EMPTY_RESPONSE">
<term>RESLIB_EMPTY_RESPONSE empty response received to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver did not contain anything in the answer or authority sections,
although in all other respects it was a valid response.  A SERVFAIL will
be returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_ERROR_RESPONSE">
<term>RESLIB_ERROR_RESPONSE unspecified error received in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query to an upstream
nameserver indicated that the response was classified as an erroneous
response, but that the nature of the error cannot be identified.
A SERVFAIL will be returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_EXTRADATA_RESPONSE">
<term>RESLIB_EXTRADATA_RESPONSE extra data in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message indicating that the response to the specified query
from an upstream nameserver contained too much data.  This can happen if
an ANY query was sent and the answer section in the response contained
multiple RRs with different names.  A SERVFAIL will be returned to the
system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_FOLLOW_CNAME">
<term>RESLIB_FOLLOW_CNAME following CNAME chain to &lt;%1&gt;</term>
<listitem><para>
A debug message, a CNAME response was received and another query is
being issued for the &lt;name, class, type&gt; tuple.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_INVALID_NAMECLASS_RESPONSE">
<term>RESLIB_INVALID_NAMECLASS_RESPONSE invalid name or class in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver (as identified by the ID of the response) contained either
an answer not matching the query name or an answer having a different
class to that queried for.  A SERVFAIL will be returned to the system
making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_INVALID_QNAME_RESPONSE">
<term>RESLIB_INVALID_QNAME_RESPONSE invalid name or class in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver (as identified by the ID of the response) contained a name
in the question section that did not match that of the query. A SERVFAIL
will be returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_INVALID_TYPE_RESPONSE">
<term>RESLIB_INVALID_TYPE_RESPONSE invalid name or class in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver (as identified by the ID of the response) contained an
invalid type field. A SERVFAIL will be returned to the system making
the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_LONG_CHAIN">
<term>RESLIB_LONG_CHAIN CNAME received in response to query for &lt;%1&gt;: CNAME chain length exceeded</term>
<listitem><para>
A debug message recording that a CNAME response has been received to an upstream
query for the specified question (Previous debug messages will have indicated
the server to which the question was sent).  However, receipt of this CNAME
has meant that the resolver has exceeded the CNAME chain limit (a CNAME chain
is where on CNAME points to another) and so an error is being returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_MULTIPLE_CLASS_RESPONSE">
<term>RESLIB_MULTIPLE_CLASS_RESPONSE response to query for &lt;%1&gt; contained multiple RRsets with different classes</term>
<listitem><para>
A debug message reporting that the response to an upstream query for
the specified name contained multiple RRsets in the answer and not all
were of the same class.  This is a violation of the standard and so a
SERVFAIL will be returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NOTSINGLE_RESPONSE">
<term>RESLIB_NOTSINGLE_RESPONSE response to query for &lt;%1&gt; was not a response</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver was a CNAME that had mutiple RRs in the RRset.  This is
an invalid response according to the standards so a SERVFAIL will be
returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NOT_ONE_QNAME_RESPONSE">
<term>RESLIB_NOT_ONE_QNAME_RESPONSE not one question in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver (as identified by the ID of the response) did not contain
one name in the question section as required by the standard. A SERVFAIL
will be returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NOT_RESPONSE">
<term>RESLIB_NOT_RESPONSE response to query for &lt;%1&gt; was not a response</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver (as identified by the ID of the response) did not have the QR
bit set (thus indicating that the packet was a query, not a response).
A SERVFAIL will be returned to the system making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NO_NS_RRSET">
<term>RESLIB_NO_NS_RRSET no NS RRSet in referral response received to query for &lt;%1&gt;</term>
<listitem><para>
A debug message, this indicates that a response was received for the specified
query and was categorized as a referral.  However, the received message did
not contain any NS RRsets.  This may indicate a programming error in the
response classification code.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NSAS_LOOKUP">
<term>RESLIB_NSAS_LOOKUP looking up nameserver for zone %1 in the NSAS</term>
<listitem><para>
A debug message, the RunningQuery object is querying the NSAS for the
nameservers for the specified zone.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_NXDOM_NXRR">
<term>RESLIB_NXDOM_NXRR NXDOMAIN/NXRRSET received in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message recording that either a NXDOMAIN or an NXRRSET response has
been received to an upstream query for the specified question.  Previous debug
messages will have indicated the server to which the question was sent.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_OPCODE_RESPONSE">
<term>RESLIB_OPCODE_RESPONSE response to query for &lt;%1&gt; did not have query opcode</term>
<listitem><para>
A debug message, the response to the specified query from an upstream
nameserver was a response that did not have the opcode set to that of
a query.  According to the standards, this is an invalid response to
the query that was made, so a SERVFAIL will be returned to the system
making the original query.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_PROTOCOL">
<term>RESLIB_PROTOCOL protocol error in answer for %1:  %3</term>
<listitem><para>
A debug message indicating that a protocol error was received.  As there
are no retries left, an error will be reported.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_PROTOCOL_RETRY">
<term>RESLIB_PROTOCOL_RETRY protocol error in answer for %1: %2 (retries left: %3)</term>
<listitem><para>
A debug message indicating that a protocol error was received and that
the resolver is repeating the query to the same nameserver.  After this
repeated query, there will be the indicated number of retries left.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RCODE_ERROR">
<term>RESLIB_RCODE_ERROR response to query for &lt;%1&gt; returns RCODE of %2</term>
<listitem><para>
A debug message, the response to the specified query indicated an error
that is not covered by a specific code path.  A SERVFAIL will be returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RECQ_CACHE_FIND">
<term>RESLIB_RECQ_CACHE_FIND found &lt;%1&gt; in the cache (resolve() instance %2)</term>
<listitem><para>
This is a debug message and indicates that a RecursiveQuery object found the
the specified &lt;name, class, type&gt; tuple in the cache.  The instance number
at the end of the message indicates which of the two resolve() methods has
been called.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RECQ_CACHE_NO_FIND">
<term>RESLIB_RECQ_CACHE_NO_FIND did not find &lt;%1&gt; in the cache, starting RunningQuery (resolve() instance %2)</term>
<listitem><para>
This is a debug message and indicates that the look in the cache made by the
RecursiveQuery::resolve() method did not find an answer, so a new RunningQuery
object has been created to resolve the question.  The instance number at
the end of the message indicates which of the two resolve() methods has
been called.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_REFERRAL">
<term>RESLIB_REFERRAL referral received in response to query for &lt;%1&gt;</term>
<listitem><para>
A debug message recording that a referral response has been received to an
upstream query for the specified question.  Previous debug messages will
have indicated the server to which the question was sent.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_REFER_ZONE">
<term>RESLIB_REFER_ZONE referred to zone %1</term>
<listitem><para>
A debug message indicating that the last referral message was to the specified
zone.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RESOLVE">
<term>RESLIB_RESOLVE asked to resolve &lt;%1&gt; (resolve() instance %2)</term>
<listitem><para>
A debug message, the RecursiveQuery::resolve method has been called to resolve
the specified &lt;name, class, type&gt; tuple.  The first action will be to lookup
the specified tuple in the cache.  The instance number at the end of the
message indicates which of the two resolve() methods has been called.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RRSET_FOUND">
<term>RESLIB_RRSET_FOUND found single RRset in the cache when querying for &lt;%1&gt; (resolve() instance %2)</term>
<listitem><para>
A debug message, indicating that when RecursiveQuery::resolve queried the
cache, a single RRset was found which was put in the answer.  The instance
number at the end of the message indicates which of the two resolve()
methods has been called.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RTT">
<term>RESLIB_RTT round-trip time of last query calculated as %1 ms</term>
<listitem><para>
A debug message giving the round-trip time of the last query and response.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RUNQ_CACHE_FIND">
<term>RESLIB_RUNQ_CACHE_FIND found &lt;%1&gt; in the cache</term>
<listitem><para>
This is a debug message and indicates that a RunningQuery object found
the specified &lt;name, class, type&gt; tuple in the cache.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RUNQ_CACHE_LOOKUP">
<term>RESLIB_RUNQ_CACHE_LOOKUP looking up up &lt;%1&gt; in the cache</term>
<listitem><para>
This is a debug message and indicates that a RunningQuery object has made
a call to its doLookup() method to look up the specified &lt;name, class, type&gt;
tuple, the first action of which will be to examine the cache.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RUNQ_FAIL">
<term>RESLIB_RUNQ_FAIL failure callback - nameservers are unreachable</term>
<listitem><para>
A debug message indicating that a RunningQuery's failure callback has been
called because all nameservers for the zone in question are unreachable.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_RUNQ_SUCCESS">
<term>RESLIB_RUNQ_SUCCESS success callback - sending query to %1</term>
<listitem><para>
A debug message indicating that a RunningQuery's success callback has been
called because a nameserver has been found, and that a query is being sent
to the specified nameserver.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TCP_TRUNCATED">
<term>RESLIB_TCP_TRUNCATED TCP response to query for %1 was truncated</term>
<listitem><para>
This is a debug message logged when a response to the specified  query to an
upstream nameserver returned a response with the TC (truncation) bit set.  This
is treated as an error by the code.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TEST_SERVER">
<term>RESLIB_TEST_SERVER setting test server to %1(%2)</term>
<listitem><para>
This is a warning message only generated in unit tests.  It indicates
that all upstream queries from the resolver are being routed to the
specified server, regardless of the address of the nameserver to which
the query would normally be routed.  If seen during normal operation,
please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TEST_UPSTREAM">
<term>RESLIB_TEST_UPSTREAM sending upstream query for &lt;%1&gt; to test server at %2</term>
<listitem><para>
This is a debug message and should only be seen in unit tests.  A query for
the specified &lt;name, class, type&gt; tuple is being sent to a test nameserver
whose address is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TIMEOUT">
<term>RESLIB_TIMEOUT query &lt;%1&gt; to %2 timed out</term>
<listitem><para>
A debug message indicating that the specified upstream query has timed out and
there are no retries left.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TIMEOUT_RETRY">
<term>RESLIB_TIMEOUT_RETRY query &lt;%1&gt; to %2 timed out, re-trying (retries left: %3)</term>
<listitem><para>
A debug message indicating that the specified query has timed out and that
the resolver is repeating the query to the same nameserver.  After this
repeated query, there will be the indicated number of retries left.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TRUNCATED">
<term>RESLIB_TRUNCATED response to query for &lt;%1&gt; was truncated, re-querying over TCP</term>
<listitem><para>
A debug message, this indicates that the response to the specified query was
truncated and that the resolver will be re-querying over TCP.  There are
various reasons why responses may be truncated, so this message is normal and
gives no cause for concern.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_UPSTREAM">
<term>RESLIB_UPSTREAM sending upstream query for &lt;%1&gt; to %2</term>
<listitem><para>
A debug message indicating that a query for the specified &lt;name, class, type&gt;
tuple is being sent to a nameserver whose address is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_AXFR_TCP">
<term>RESOLVER_AXFR_TCP AXFR request received over TCP</term>
<listitem><para>
This is a debug message output when the resolver received a request for
an AXFR (full transfer of a zone) over TCP.  Only authoritative servers
are able to handle AXFR requests, so the resolver will return an error
message to the sender with the RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_AXFR_UDP">
<term>RESOLVER_AXFR_UDP AXFR request received over UDP</term>
<listitem><para>
This is a debug message output when the resolver received a request for
an AXFR (full transfer of a zone) over UDP.  Only authoritative servers
are able to handle AXFR requests (and in any case, an AXFR request should
be sent over TCP), so the resolver will return an error message to the
sender with the RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CLIENT_TIME_SMALL">
<term>RESOLVER_CLIENT_TIME_SMALL client timeout of %1 is too small</term>
<listitem><para>
During the update of the resolver's configuration parameters, the value
of the client timeout was found to be too small.  The configuration
update was abandoned and the parameters were not changed.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIG_CHANNEL">
<term>RESOLVER_CONFIG_CHANNEL configuration channel created</term>
<listitem><para>
This is a debug message output when the resolver has successfully
established a connection to the configuration channel.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIG_ERROR">
<term>RESOLVER_CONFIG_ERROR error in configuration: %1</term>
<listitem><para>
An error was detected in a configuration update received by the
resolver. This may be in the format of the configuration message (in
which case this is a programming error) or it may be in the data supplied
(in which case it is a user error).  The reason for the error, included
in the message, will give more details.  The configuration update is
not applied and the resolver parameters were not changed.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIG_LOADED">
<term>RESOLVER_CONFIG_LOADED configuration loaded</term>
<listitem><para>
This is a debug message output when the resolver configuration has been
successfully loaded.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIG_UPDATED">
<term>RESOLVER_CONFIG_UPDATED configuration updated: %1</term>
<listitem><para>
This is a debug message output when the resolver configuration is being
updated with the specified information.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CREATED">
<term>RESOLVER_CREATED main resolver object created</term>
<listitem><para>
This is a debug message indicating that the main resolver object has
been created.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_DNS_MESSAGE_RECEIVED">
<term>RESOLVER_DNS_MESSAGE_RECEIVED DNS message received: %1</term>
<listitem><para>
This is a debug message from the resolver listing the contents of a
received DNS message.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_DNS_MESSAGE_SENT">
<term>RESOLVER_DNS_MESSAGE_SENT DNS message of %1 bytes sent: %2</term>
<listitem><para>
This is a debug message containing details of the response returned by
the resolver to the querying system.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_FAILED">
<term>RESOLVER_FAILED resolver failed, reason: %1</term>
<listitem><para>
This is an error message output when an unhandled exception is caught
by the resolver.  After this, the resolver will shut itself down.
Please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_FORWARD_ADDRESS">
<term>RESOLVER_FORWARD_ADDRESS setting forward address %1(%2)</term>
<listitem><para>
If the resolver is running in forward mode, this message will appear
during startup to list the forward address.  If multiple addresses are
specified, it will appear once for each address.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_FORWARD_QUERY">
<term>RESOLVER_FORWARD_QUERY processing forward query</term>
<listitem><para>
This is a debug message indicating that a query received by the resolver
has passed a set of checks (message is well-formed, it is allowed by the
ACL, it is a supported opcode, etc.) and is being forwarded to upstream
servers.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_HEADER_ERROR">
<term>RESOLVER_HEADER_ERROR message received, exception when processing header: %1</term>
<listitem><para>
This is a debug message from the resolver noting that an exception
occurred during the processing of a received packet.  The packet has
been dropped.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_IXFR">
<term>RESOLVER_IXFR IXFR request received</term>
<listitem><para>
This is a debug message indicating that the resolver received a request
for an IXFR (incremental transfer of a zone).  Only authoritative servers
are able to handle IXFR requests, so the resolver will return an error
message to the sender with the RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_LOOKUP_TIME_SMALL">
<term>RESOLVER_LOOKUP_TIME_SMALL lookup timeout of %1 is too small</term>
<listitem><para>
During the update of the resolver's configuration parameters, the value
of the lookup timeout was found to be too small.  The configuration
update will not be applied.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_MESSAGE_ERROR">
<term>RESOLVER_MESSAGE_ERROR error parsing received message: %1 - returning %2</term>
<listitem><para>
This is a debug message noting that parsing of the body of a received
message by the resolver failed due to some error (although the parsing of
the header succeeded).  The message parameters give a textual description
of the problem and the RCODE returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NEGATIVE_RETRIES">
<term>RESOLVER_NEGATIVE_RETRIES negative number of retries (%1) specified in the configuration</term>
<listitem><para>
This error is issued when a resolver configuration update has specified
a negative retry count: only zero or positive values are valid.  The
configuration update was abandoned and the parameters were not changed.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NON_IN_PACKET">
<term>RESOLVER_NON_IN_PACKET non-IN class request received, returning REFUSED message</term>
<listitem><para>
This debug message is issued when resolver has received a DNS packet that
was not IN (Internet) class.  The resolver cannot handle such packets,
so is returning a REFUSED response to the sender.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NORMAL_QUERY">
<term>RESOLVER_NORMAL_QUERY processing normal query</term>
<listitem><para>
This is a debug message indicating that the query received by the resolver
has passed a set of checks (message is well-formed, it is allowed by the
ACL, it is a supported opcode, etc.) and is being processed by the resolver.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NOTIFY_RECEIVED">
<term>RESOLVER_NOTIFY_RECEIVED NOTIFY arrived but server is not authoritative</term>
<listitem><para>
The resolver has received a NOTIFY message.  As the server is not
authoritative it cannot process it, so it returns an error message to
the sender with the RCODE set to NOTAUTH.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NOT_ONE_QUESTION">
<term>RESOLVER_NOT_ONE_QUESTION query contained %1 questions, exactly one question was expected</term>
<listitem><para>
This debug message indicates that the resolver received a query that
contained the number of entries in the question section detailed in
the message.  This is a malformed message, as a DNS query must contain
only one question.  The resolver will return a message to the sender
with the RCODE set to FORMERR.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NO_ROOT_ADDRESS">
<term>RESOLVER_NO_ROOT_ADDRESS no root addresses available</term>
<listitem><para>
A warning message issued during resolver startup, this indicates that
no root addresses have been set.  This may be because the resolver will
get them from a priming query.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_PARSE_ERROR">
<term>RESOLVER_PARSE_ERROR error parsing received message: %1 - returning %2</term>
<listitem><para>
This is a debug message noting that the resolver received a message and
the parsing of the body of the message failed due to some non-protocol
related reason (although the parsing of the header succeeded).
The message parameters give a textual description of the problem and
the RCODE returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_PRINT_COMMAND">
<term>RESOLVER_PRINT_COMMAND print message command, arguments are: %1</term>
<listitem><para>
This debug message is logged when a "print_message" command is received
by the resolver over the command channel.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_PROTOCOL_ERROR">
<term>RESOLVER_PROTOCOL_ERROR protocol error parsing received message: %1 - returning %2</term>
<listitem><para>
This is a debug message noting that the resolver received a message and
the parsing of the body of the message failed due to some protocol error
(although the parsing of the header succeeded).  The message parameters
give a textual description of the problem and the RCODE returned.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_ACCEPTED">
<term>RESOLVER_QUERY_ACCEPTED query accepted: '%1/%2/%3' from %4</term>
<listitem><para>
This debug message is produced by the resolver when an incoming query
is accepted in terms of the query ACL.  The log message shows the query
in the form of &lt;query name&gt;/&lt;query type&gt;/&lt;query class&gt;, and the client
that sends the query in the form of &lt;Source IP address&gt;#&lt;source port&gt;.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_DROPPED">
<term>RESOLVER_QUERY_DROPPED query dropped: '%1/%2/%3' from %4</term>
<listitem><para>
This is an informational message that indicates an incoming query has
been dropped by the resolver because of the query ACL.  Unlike the
RESOLVER_QUERY_REJECTED case, the server does not return any response.
The log message shows the query in the form of &lt;query name&gt;/&lt;query
type&gt;/&lt;query class&gt;, and the client that sends the query in the form of
&lt;Source IP address&gt;#&lt;source port&gt;.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_REJECTED">
<term>RESOLVER_QUERY_REJECTED query rejected: '%1/%2/%3' from %4</term>
<listitem><para>
This is an informational message that indicates an incoming query has
been rejected by the resolver because of the query ACL.  This results
in a response with an RCODE of REFUSED. The log message shows the query
in the form of &lt;query name&gt;/&lt;query type&gt;/&lt;query class&gt;, and the client
that sends the query in the form of &lt;Source IP address&gt;#&lt;source port&gt;.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_SETUP">
<term>RESOLVER_QUERY_SETUP query setup</term>
<listitem><para>
This is a debug message noting that the resolver is creating a
RecursiveQuery object.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_SHUTDOWN">
<term>RESOLVER_QUERY_SHUTDOWN query shutdown</term>
<listitem><para>
This is a debug message noting that the resolver is destroying a
RecursiveQuery object.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_QUERY_TIME_SMALL">
<term>RESOLVER_QUERY_TIME_SMALL query timeout of %1 is too small</term>
<listitem><para>
During the update of the resolver's configuration parameters, the value
of the query timeout was found to be too small.  The configuration
parameters were not changed.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_RECEIVED_MESSAGE">
<term>RESOLVER_RECEIVED_MESSAGE resolver has received a DNS message</term>
<listitem><para>
This is a debug message indicating that the resolver has received a
DNS message.  Depending on the debug settings, subsequent log output
will indicate the nature of the message.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_RECURSIVE">
<term>RESOLVER_RECURSIVE running in recursive mode</term>
<listitem><para>
This is an informational message that appears at startup noting that
the resolver is running in recursive mode.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SERVICE_CREATED">
<term>RESOLVER_SERVICE_CREATED service object created</term>
<listitem><para>
This debug message is output when resolver creates the main service object
(which handles the received queries).
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SET_PARAMS">
<term>RESOLVER_SET_PARAMS query timeout: %1, client timeout: %2, lookup timeout: %3, retry count: %4</term>
<listitem><para>
This debug message lists the parameters being set for the resolver.  These are:
query timeout: the timeout (in ms) used for queries originated by the resolver
to upstream servers.  Client timeout: the interval to resolve a query by
a client: after this time, the resolver sends back a SERVFAIL to the client
whilst continuing to resolve the query. Lookup timeout: the time at which the
resolver gives up trying to resolve a query.  Retry count: the number of times
the resolver will retry a query to an upstream server if it gets a timeout.
</para><para>
The client and lookup timeouts require a bit more explanation. The
resolution of the client query might require a large number of queries to
upstream nameservers.  Even if none of these queries timeout, the total time
taken to perform all the queries may exceed the client timeout.  When this
happens, a SERVFAIL is returned to the client, but the resolver continues
with the resolution process; data received is added to the cache.  However,
there comes a time - the lookup timeout - when even the resolver gives up.
At this point it will wait for pending upstream queries to complete or
timeout and drop the query.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SET_QUERY_ACL">
<term>RESOLVER_SET_QUERY_ACL query ACL is configured</term>
<listitem><para>
This debug message is generated when a new query ACL is configured for
the resolver.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SET_ROOT_ADDRESS">
<term>RESOLVER_SET_ROOT_ADDRESS setting root address %1(%2)</term>
<listitem><para>
This message gives the address of one of the root servers used by the
resolver.  It is output during startup and may appear multiple times,
once for each root server address.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SHUTDOWN">
<term>RESOLVER_SHUTDOWN resolver shutdown complete</term>
<listitem><para>
This informational message is output when the resolver has shut down.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SHUTDOWN_RECEIVED">
<term>RESOLVER_SHUTDOWN_RECEIVED received command to shut down</term>
<listitem><para>
A debug message noting that the server was asked to terminate and is
complying to the request.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_STARTED">
<term>RESOLVER_STARTED resolver started</term>
<listitem><para>
This informational message is output by the resolver when all initialization
has been completed and it is entering its main loop.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_STARTING">
<term>RESOLVER_STARTING starting resolver with command line '%1'</term>
<listitem><para>
An informational message, this is output when the resolver starts up.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_UNEXPECTED_RESPONSE">
<term>RESOLVER_UNEXPECTED_RESPONSE received unexpected response, ignoring</term>
<listitem><para>
This is a debug message noting that the resolver received a DNS response
packet on the port on which is it listening for queries.  The packet
has been ignored.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_UNSUPPORTED_OPCODE">
<term>RESOLVER_UNSUPPORTED_OPCODE opcode %1 not supported by the resolver</term>
<listitem><para>
This is debug message output when the resolver received a message with an
unsupported opcode (it can only process QUERY opcodes).  It will return
a message to the sender with the RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="SOCKETREQUESTOR_CREATED">
<term>SOCKETREQUESTOR_CREATED Socket requestor created for application %1</term>
<listitem><para>
Debug message.  A socket requesor (client of the socket creator) is created
for the corresponding application.  Normally this should happen at most
one time throughout the lifetime of the application.
</para></listitem>
</varlistentry>

<varlistentry id="SOCKETREQUESTOR_DESTROYED">
<term>SOCKETREQUESTOR_DESTROYED Socket requestor destoryed</term>
<listitem><para>
Debug message.  The socket requestor created at SOCKETREQUESTOR_CREATED
has been destroyed.  This event is generally unexpected other than in
test cases.
</para></listitem>
</varlistentry>

<varlistentry id="SOCKETREQUESTOR_GETSOCKET">
<term>SOCKETREQUESTOR_GETSOCKET Received a %1 socket for [%2]:%3, FD=%4, token=%5, path=%6</term>
<listitem><para>
Debug message. The socket requestor for the corresponding application
has requested a socket for a set of address, port and protocol (shown
in the log message) and successfully got it from the creator.  The
corresponding file descriptor and the associated "token" (an internal
ID used between the creator and requestor) are shown in the log
message.
</para></listitem>
</varlistentry>

<varlistentry id="SOCKETREQUESTOR_RELEASESOCKET">
<term>SOCKETREQUESTOR_RELEASESOCKET Released a socket of token %1</term>
<listitem><para>
Debug message.  The socket requestor has released a socket passed by
the creator.  The associated token of the socket is shown in the
log message.  If the corresponding SOCKETREQUESTOR_GETSOCKET was logged
more detailed information of the socket can be identified by matching
the token.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESSES_NOT_LIST">
<term>SRVCOMM_ADDRESSES_NOT_LIST the address and port specification is not a list in %1</term>
<listitem><para>
This points to an error in configuration. What was supposed to be a list of
IP address - port pairs isn't a list at all but something else.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESS_FAIL">
<term>SRVCOMM_ADDRESS_FAIL failed to listen on addresses (%1)</term>
<listitem><para>
The server failed to bind to one of the address/port pair it should according
to configuration, for reason listed in the message (usually because that pair
is already used by other service or missing privileges). The server will try
to recover and bind the address/port pairs it was listening to before (if any).
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESS_MISSING">
<term>SRVCOMM_ADDRESS_MISSING address specification is missing "address" or "port" element in %1</term>
<listitem><para>
This points to an error in configuration. An address specification in the
configuration is missing either an address or port and so cannot be used. The
specification causing the error is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESS_TYPE">
<term>SRVCOMM_ADDRESS_TYPE address specification type is invalid in %1</term>
<listitem><para>
This points to an error in configuration. An address specification in the
configuration malformed. The specification causing the error is given in the
message. A valid specification contains an address part (which must be a string
and must represent a valid IPv4 or IPv6 address) and port (which must be an
integer in the range valid for TCP/UDP ports on your system).
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESS_UNRECOVERABLE">
<term>SRVCOMM_ADDRESS_UNRECOVERABLE failed to recover original addresses also (%1)</term>
<listitem><para>
The recovery of old addresses after SRVCOMM_ADDRESS_FAIL also failed for
the reason listed.
</para><para>
The condition indicates problems with the server and/or the system on
which it is running.  The server will continue running to allow
reconfiguration, but will not be listening on any address or port until
an administrator does so.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_ADDRESS_VALUE">
<term>SRVCOMM_ADDRESS_VALUE address to set: %1#%2</term>
<listitem><para>
Debug message. This lists one address and port value of the set of
addresses we are going to listen on (eg. there will be one log message
per pair). This appears only after SRVCOMM_SET_LISTEN, but might
be hidden, as it has higher debug level.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_EXCEPTION_ALLOC">
<term>SRVCOMM_EXCEPTION_ALLOC exception when allocating a socket: %1</term>
<listitem><para>
The process tried to allocate a socket using the socket creator, but an error
occurred. But it is not one of the errors we are sure are "safe". In this case
it is unclear if the unsuccessful communication left the process and the bind10
process in inconsistent state, so the process is going to abort to prevent
further problems in that area.
</para><para>
This is probably a bug in the code, but it could be caused by other unusual
conditions (like insufficient memory, deleted socket file used for
communication).
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_KEYS_DEINIT">
<term>SRVCOMM_KEYS_DEINIT deinitializing TSIG keyring</term>
<listitem><para>
Debug message indicating that the server is deinitializing the TSIG keyring.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_KEYS_INIT">
<term>SRVCOMM_KEYS_INIT initializing TSIG keyring</term>
<listitem><para>
Debug message indicating that the server is initializing the global TSIG
keyring. This should be seen only at server start.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_KEYS_UPDATE">
<term>SRVCOMM_KEYS_UPDATE updating TSIG keyring</term>
<listitem><para>
Debug message indicating new keyring is being loaded from configuration (either
on startup or as a result of configuration update).
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_PORT_RANGE">
<term>SRVCOMM_PORT_RANGE port out of valid range (%1 in %2)</term>
<listitem><para>
This points to an error in configuration. The port in an address
specification is outside the valid range of 0 to 65535.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_SET_LISTEN">
<term>SRVCOMM_SET_LISTEN setting addresses to listen to</term>
<listitem><para>
Debug message, noting that the server is about to start listening on a
different set of IP addresses and ports than before.
</para></listitem>
</varlistentry>

<varlistentry id="SRVCOMM_UNKNOWN_EXCEPTION_ALLOC">
<term>SRVCOMM_UNKNOWN_EXCEPTION_ALLOC unknown exception when allocating a socket</term>
<listitem><para>
The situation is the same as in the SRVCOMM_EXCEPTION_ALLOC case, but further
details about the error are unknown, because it was signaled by throwing
something not being an exception. This is definitely a bug.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_BAD_OPTION_VALUE">
<term>STATHTTPD_BAD_OPTION_VALUE bad command line argument: %1</term>
<listitem><para>
The stats-httpd module was called with a bad command-line argument
and will not start.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_CC_SESSION_ERROR">
<term>STATHTTPD_CC_SESSION_ERROR error connecting to message bus: %1</term>
<listitem><para>
The stats-httpd module was unable to connect to the BIND 10 command
and control bus. A likely problem is that the message bus daemon
(b10-msgq) is not running. The stats-httpd module will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_CLOSING">
<term>STATHTTPD_CLOSING closing %1#%2</term>
<listitem><para>
The stats-httpd daemon will stop listening for requests on the given
address and port number.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_CLOSING_CC_SESSION">
<term>STATHTTPD_CLOSING_CC_SESSION stopping cc session</term>
<listitem><para>
Debug message indicating that the stats-httpd module is disconnecting
from the command and control bus.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_HANDLE_CONFIG">
<term>STATHTTPD_HANDLE_CONFIG reading configuration: %1</term>
<listitem><para>
The stats-httpd daemon has received new configuration data and will now
process it. The (changed) data is printed.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_RECEIVED_SHUTDOWN_COMMAND">
<term>STATHTTPD_RECEIVED_SHUTDOWN_COMMAND shutdown command received</term>
<listitem><para>
A shutdown command was sent to the stats-httpd module, and it will
now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_RECEIVED_STATUS_COMMAND">
<term>STATHTTPD_RECEIVED_STATUS_COMMAND received command to return status</term>
<listitem><para>
A status command was sent to the stats-httpd module, and it will
respond with 'Stats Httpd is up.' and its PID.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_RECEIVED_UNKNOWN_COMMAND">
<term>STATHTTPD_RECEIVED_UNKNOWN_COMMAND received unknown command: %1</term>
<listitem><para>
An unknown command has been sent to the stats-httpd module. The
stats-httpd module will respond with an error, and the command will
be ignored.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_SERVER_DATAERROR">
<term>STATHTTPD_SERVER_DATAERROR HTTP server data error: %1</term>
<listitem><para>
An internal error occurred while handling an HTTP request. An HTTP 404
response will be sent back, and the specific error is printed. This
is an error condition that likely points the specified data
corresponding to the requested URI is incorrect.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_SERVER_ERROR">
<term>STATHTTPD_SERVER_ERROR HTTP server error: %1</term>
<listitem><para>
An internal error occurred while handling an HTTP request. An HTTP 500
response will be sent back, and the specific error is printed. This
is an error condition that likely points to a module that is not
responding correctly to statistic requests.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_SERVER_INIT_ERROR">
<term>STATHTTPD_SERVER_INIT_ERROR HTTP server initialization error: %1</term>
<listitem><para>
There was a problem initializing the HTTP server in the stats-httpd
module upon receiving its configuration data. The most likely cause
is a port binding problem or a bad configuration value. The specific
error is printed in the message. The new configuration is ignored,
and an error is sent back.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_SHUTDOWN">
<term>STATHTTPD_SHUTDOWN shutting down</term>
<listitem><para>
The stats-httpd daemon is shutting down.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_STARTED">
<term>STATHTTPD_STARTED listening on %1#%2</term>
<listitem><para>
The stats-httpd daemon will now start listening for requests on the
given address and port number.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_STARTING_CC_SESSION">
<term>STATHTTPD_STARTING_CC_SESSION starting cc session</term>
<listitem><para>
Debug message indicating that the stats-httpd module is connecting to
the command and control bus.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_START_SERVER_INIT_ERROR">
<term>STATHTTPD_START_SERVER_INIT_ERROR HTTP server initialization error: %1</term>
<listitem><para>
There was a problem initializing the HTTP server in the stats-httpd
module upon startup. The most likely cause is that it was not able
to bind to the listening port. The specific error is printed, and the
module will shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_STOPPED_BY_KEYBOARD">
<term>STATHTTPD_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the stats-httpd
daemon. The daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATHTTPD_UNKNOWN_CONFIG_ITEM">
<term>STATHTTPD_UNKNOWN_CONFIG_ITEM unknown configuration item: %1</term>
<listitem><para>
The stats-httpd daemon received a configuration update from the
configuration manager. However, one of the items in the
configuration is unknown. The new configuration is ignored, and an
error is sent back. As possible cause is that there was an upgrade
problem, and the stats-httpd version is out of sync with the rest of
the system.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_BAD_OPTION_VALUE">
<term>STATS_BAD_OPTION_VALUE bad command line argument: %1</term>
<listitem><para>
The stats module was called with a bad command-line argument and will
not start.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_CC_SESSION_ERROR">
<term>STATS_CC_SESSION_ERROR error connecting to message bus: %1</term>
<listitem><para>
The stats module was unable to connect to the BIND 10 command and
control bus. A likely problem is that the message bus daemon
(b10-msgq) is not running. The stats module will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_NEW_CONFIG">
<term>STATS_RECEIVED_NEW_CONFIG received new configuration: %1</term>
<listitem><para>
This debug message is printed when the stats module has received a
configuration update from the configuration manager.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_SHOWSCHEMA_ALL_COMMAND">
<term>STATS_RECEIVED_SHOWSCHEMA_ALL_COMMAND received command to show all statistics schema</term>
<listitem><para>
The stats module received a command to show all statistics schemas of all modules.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_SHOWSCHEMA_NAME_COMMAND">
<term>STATS_RECEIVED_SHOWSCHEMA_NAME_COMMAND received command to show statistics schema for %1</term>
<listitem><para>
The stats module received a command to show the specified statistics schema of the specified module.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_SHOW_ALL_COMMAND">
<term>STATS_RECEIVED_SHOW_ALL_COMMAND received command to show all statistics</term>
<listitem><para>
The stats module received a command to show all statistics that it has
collected.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_SHOW_NAME_COMMAND">
<term>STATS_RECEIVED_SHOW_NAME_COMMAND received command to show statistics for %1</term>
<listitem><para>
The stats module received a command to show the statistics that it has
collected for the given item.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_SHUTDOWN_COMMAND">
<term>STATS_RECEIVED_SHUTDOWN_COMMAND shutdown command received</term>
<listitem><para>
A shutdown command was sent to the stats module and it will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_STATUS_COMMAND">
<term>STATS_RECEIVED_STATUS_COMMAND received command to return status</term>
<listitem><para>
A status command was sent to the stats module. It will return a
response indicating that it is running normally.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_RECEIVED_UNKNOWN_COMMAND">
<term>STATS_RECEIVED_UNKNOWN_COMMAND received unknown command: %1</term>
<listitem><para>
An unknown command has been sent to the stats module. The stats module
will respond with an error and the command will be ignored.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_SEND_REQUEST_BOSS">
<term>STATS_SEND_REQUEST_BOSS requesting boss to send statistics</term>
<listitem><para>
This debug message is printed when a request is sent to the boss module
to send its data to the stats module.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_STARTING">
<term>STATS_STARTING starting</term>
<listitem><para>
The stats module will be now starting.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_START_ERROR">
<term>STATS_START_ERROR stats module error: %1</term>
<listitem><para>
An internal error occurred while starting the stats module. The stats
module will be now shutting down.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_STOPPED_BY_KEYBOARD">
<term>STATS_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the stats module. The
daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="STATS_UNKNOWN_COMMAND_IN_SPEC">
<term>STATS_UNKNOWN_COMMAND_IN_SPEC unknown command in specification file: %1</term>
<listitem><para>
The specification file for the stats module contains a command that
is unknown in the implementation. The most likely cause is an
installation problem, where the specification file stats.spec is
from a different version of BIND 10 than the stats module itself.
Please check your installation.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_AXFR_INCONSISTENT_SOA">
<term>XFRIN_AXFR_INCONSISTENT_SOA AXFR SOAs are inconsistent for %1: %2 expected, %3 received</term>
<listitem><para>
The serial fields of the first and last SOAs of AXFR (including AXFR-style
IXFR) are not the same.  According to RFC 5936 these two SOAs must be the
"same" (not only for the serial), but it is still not clear what the
receiver should do if this condition does not hold.  There was a discussion
about this at the IETF dnsext wg:
http://www.ietf.org/mail-archive/web/dnsext/current/msg07908.html
and the general feeling seems that it would be better to reject the
transfer if a mismatch is detected.  On the other hand, also as noted
in that email thread, neither BIND 9 nor NSD performs any comparison
on the SOAs.  For now, we only check the serials (ignoring other fields)
and only leave a warning log message when a mismatch is found.  If it
turns out to happen with a real world primary server implementation
and that server actually feeds broken data (e.g. mixed versions of
zone), we can consider a stricter action.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_BAD_MASTER_ADDR_FORMAT">
<term>XFRIN_BAD_MASTER_ADDR_FORMAT bad format for master address: %1</term>
<listitem><para>
The given master address is not a valid IP address.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_BAD_MASTER_PORT_FORMAT">
<term>XFRIN_BAD_MASTER_PORT_FORMAT bad format for master port: %1</term>
<listitem><para>
The master port as read from the configuration is not a valid port number.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_BAD_TSIG_KEY_STRING">
<term>XFRIN_BAD_TSIG_KEY_STRING bad TSIG key string: %1</term>
<listitem><para>
The TSIG key string as read from the configuration does not represent
a valid TSIG key.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_BAD_ZONE_CLASS">
<term>XFRIN_BAD_ZONE_CLASS Invalid zone class: %1</term>
<listitem><para>
The zone class as read from the configuration is not a valid DNS class.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_CC_SESSION_ERROR">
<term>XFRIN_CC_SESSION_ERROR error reading from cc channel: %1</term>
<listitem><para>
There was a problem reading from the command and control channel. The
most likely cause is that xfrin the msgq daemon is not running.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_COMMAND_ERROR">
<term>XFRIN_COMMAND_ERROR error while executing command '%1': %2</term>
<listitem><para>
There was an error while the given command was being processed. The
error is given in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_CONNECT_MASTER">
<term>XFRIN_CONNECT_MASTER error connecting to master at %1: %2</term>
<listitem><para>
There was an error opening a connection to the master. The error is
shown in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_GOT_INCREMENTAL_RESP">
<term>XFRIN_GOT_INCREMENTAL_RESP got incremental response for %1</term>
<listitem><para>
In an attempt of IXFR processing, the begenning SOA of the first difference
(following the initial SOA that specified the final SOA for all the
differences) was found.  This means a connection for xfrin tried IXFR
and really aot a response for incremental updates.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_GOT_NONINCREMENTAL_RESP">
<term>XFRIN_GOT_NONINCREMENTAL_RESP got nonincremental response for %1</term>
<listitem><para>
Non incremental transfer was detected at the "first data" of a transfer,
which is the RR following the initial SOA.  Non incremental transfer is
either AXFR or AXFR-style IXFR.  In the latter case, it means that
in a response to IXFR query the first data is not SOA or its SOA serial
is not equal to the requested SOA serial.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_IMPORT_DNS">
<term>XFRIN_IMPORT_DNS error importing python DNS module: %1</term>
<listitem><para>
There was an error importing the python DNS module pydnspp. The most
likely cause is a PYTHONPATH problem.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_IXFR_TRANSFER_SUCCESS">
<term>XFRIN_IXFR_TRANSFER_SUCCESS incremental IXFR transfer of zone %1 succeeded (messages: %2, changesets: %3, deletions: %4, additions: %5, bytes: %6, run time: %7 seconds, %8 bytes/second)</term>
<listitem><para>
The IXFR transfer for the given zone was successful.
The provided information contains the following values:
</para><para>
messages: Number of overhead DNS messages in the transfer.
</para><para>
changesets: Number of difference sequences.
</para><para>
deletions: Number of Resource Records deleted by all the changesets combined,
including the SOA records.
</para><para>
additions: Number of Resource Records added by all the changesets combined,
including the SOA records.
</para><para>
bytes: Full size of the transfer data on the wire.
</para><para>
run time: Time (in seconds) the complete ixfr took.
</para><para>
bytes/second: Transfer speed.
</para><para>
Note that there is no cross-checking of additions and deletions; if the same
RR gets added and deleted in multiple changesets, it is counted each time;
therefore, for each changeset, there should at least be 1 deletion and 1
addition (the updated SOA record).
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_IXFR_UPTODATE">
<term>XFRIN_IXFR_UPTODATE IXFR requested serial for %1 is %2, master has %3, not updating</term>
<listitem><para>
The first SOA record in an IXFR response indicates the zone's serial
at the primary server is not newer than the client's.  This is
basically unexpected event because normally the client first checks
the SOA serial by an SOA query, but can still happen if the transfer
is manually invoked or (although unlikely) there is a rapid change at
the primary server between the SOA and IXFR queries.  The client
implementation confirms the whole response is this single SOA, and
aborts the transfer just like a successful case.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_MSGQ_SEND_ERROR">
<term>XFRIN_MSGQ_SEND_ERROR error while contacting %1 and %2</term>
<listitem><para>
There was a problem sending a message to the xfrout module or the
zone manager. This most likely means that the msgq daemon has quit or
was killed.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_MSGQ_SEND_ERROR_ZONE_MANAGER">
<term>XFRIN_MSGQ_SEND_ERROR_ZONE_MANAGER error while contacting %1</term>
<listitem><para>
There was a problem sending a message to the zone manager. This most
likely means that the msgq daemon has quit or was killed.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_NOTIFY_UNKNOWN_MASTER">
<term>XFRIN_NOTIFY_UNKNOWN_MASTER got notification to retransfer zone %1 from %2, expected %3</term>
<listitem><para>
The system received a notify for the given zone, but the address it came
from does not match the master address in the Xfrin configuration. The notify
is ignored. This may indicate that the configuration for the master is wrong,
that a wrong machine is sending notifies, or that fake notifies are being sent.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_RETRANSFER_UNKNOWN_ZONE">
<term>XFRIN_RETRANSFER_UNKNOWN_ZONE got notification to retransfer unknown zone %1</term>
<listitem><para>
There was an internal command to retransfer the given zone, but the
zone is not known to the system. This may indicate that the configuration
for xfrin is incomplete, or there was a typographical error in the
zone name in the configuration.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_STARTING">
<term>XFRIN_STARTING starting resolver with command line '%1'</term>
<listitem><para>
An informational message, this is output when the resolver starts up.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_STOPPED_BY_KEYBOARD">
<term>XFRIN_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the xfrin daemon. The
daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_TRANSFER_SUCCESS">
<term>XFRIN_TRANSFER_SUCCESS full %1 transfer of zone %2 succeeded (messages: %3, records: %4, bytes: %5, run time: %6 seconds, %7 bytes/second)</term>
<listitem><para>
The AXFR transfer of the given zone was successful.
The provided information contains the following values:
</para><para>
messages: Number of overhead DNS messages in the transfer
</para><para>
records: Number of Resource Records in the full transfer, excluding the
final SOA record that marks the end of the AXFR.
</para><para>
bytes: Full size of the transfer data on the wire.
</para><para>
run time: Time (in seconds) the complete axfr took
</para><para>
bytes/second: Transfer speed
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_UNKNOWN_ERROR">
<term>XFRIN_UNKNOWN_ERROR unknown error: %1</term>
<listitem><para>
An uncaught exception was raised while running the xfrin daemon. The
exception message is printed in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_OTHER_FAILURE">
<term>XFRIN_XFR_OTHER_FAILURE %1 transfer of zone %2 failed: %3</term>
<listitem><para>
The XFR transfer for the given zone has failed due to a problem outside
of the xfrin module.  Possible reasons are a broken DNS message or failure
in database connection.  The error is shown in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_PROCESS_FAILURE">
<term>XFRIN_XFR_PROCESS_FAILURE %1 transfer of zone %2/%3 failed: %4</term>
<listitem><para>
An XFR session failed outside the main protocol handling.  This
includes an error at the data source level at the initialization
phase, unexpected failure in the network connection setup to the
master server, or even more unexpected failure due to unlikely events
such as memory allocation failure.  Details of the error are shown in
the log message.  In general, these errors are not really expected
ones, and indicate an installation error or a program bug.  The
session handler thread tries to clean up all intermediate resources
even on these errors, but it may be incomplete.  So, if this log
message continuously appears, system resource consumption should be
checked, and you may even want to disable the corresponding transfers.
You may also want to file a bug report if this message appears so
often.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_TRANSFER_FAILURE">
<term>XFRIN_XFR_TRANSFER_FAILURE %1 transfer of zone %2 with %3 failed: %4</term>
<listitem><para>
The XFR transfer for the given zone has failed due to an internal error.
The error is shown in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_TRANSFER_FALLBACK">
<term>XFRIN_XFR_TRANSFER_FALLBACK falling back from IXFR to AXFR for %1</term>
<listitem><para>
The IXFR transfer of the given zone failed. This might happen in many cases,
such that the remote server doesn't support IXFR, we don't have the SOA record
(or the zone at all), we are out of sync, etc. In many of these situations,
AXFR could still work. Therefore we try that one in case it helps.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_TRANSFER_PROTOCOL_ERROR">
<term>XFRIN_XFR_TRANSFER_PROTOCOL_ERROR %1 transfer of zone %2 with %3 failed: %4</term>
<listitem><para>
The XFR transfer for the given zone has failed due to a protocol
error, such as an unexpected response from the primary server.  The
error is shown in the log message.  It may be because the primary
server implementation is broken or (although less likely) there was
some attack attempt, but it can also happen due to configuration
mismatch such as the remote server does not have authority for the
zone any more but the local configuration hasn't been updated.  So it
is recommended to check the primary server configuration.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_XFR_TRANSFER_STARTED">
<term>XFRIN_XFR_TRANSFER_STARTED %1 transfer of zone %2 started</term>
<listitem><para>
A connection to the master server has been made, the serial value in
the SOA record has been checked, and a zone transfer has been started.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_ZONE_CREATED">
<term>XFRIN_ZONE_CREATED Zone %1 not found in the given data source, newly created</term>
<listitem><para>
On starting an xfrin session, it is identified that the zone to be
transferred is not found in the data source.  This can happen if a
secondary DNS server first tries to perform AXFR from a primary server
without creating the zone image beforehand (e.g. by b10-loadzone).  As
of this writing the xfrin process provides backward compatible
behavior to previous versions: creating a new one in the data source
not to surprise existing users too much.  This is probably not a good
idea, however, in terms of who should be responsible for managing
zones at a higher level.  In future it is more likely that a separate
zone management framework is provided, and the situation where the
given zone isn't found in xfrout will be treated as an error.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_ZONE_MULTIPLE_SOA">
<term>XFRIN_ZONE_MULTIPLE_SOA Zone %1 has %2 SOA RRs</term>
<listitem><para>
On starting an xfrin session, it is identified that the zone to be
transferred has multiple SOA RRs.  Such a zone is broken, but could be
accidentally configured especially in a data source using "non
captive" backend database.  The implementation ignores entire SOA RRs
and tries to continue processing as if the zone were empty.  This
means subsequent AXFR can succeed and possibly replace the zone with
valid content, but an IXFR attempt will fail.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_ZONE_NO_SOA">
<term>XFRIN_ZONE_NO_SOA Zone %1 does not have SOA</term>
<listitem><para>
On starting an xfrin session, it is identified that the zone to be
transferred does not have an SOA RR in the data source.  This is not
necessarily an error; if a secondary DNS server first tries to perform
transfer from a primary server, the zone can be empty, and therefore
doesn't have an SOA.  Subsequent AXFR will fill in the zone; if the
attempt is IXFR it will fail in query creation.
</para></listitem>
</varlistentry>

<varlistentry id="XFRIN_ZONE_SERIAL_AHEAD">
<term>XFRIN_ZONE_SERIAL_AHEAD Serial number (%1) for %2 received from master %3 &lt; ours (%4)</term>
<listitem><para>
The response to an SOA query prior to xfr indicated that the zone's
SOA serial at the primary server is smaller than that of the xfrin
client.  This is not necessarily an error especially if that
particular primary server is another secondary server which hasn't got
the latest version of the zone.  But if the primary server is known to
be the real source of the zone, some unexpected inconsistency may have
happened, and you may want to take a closer look.  In this case xfrin
doesn't perform subsequent zone transfer.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_BAD_TSIG_KEY_STRING">
<term>XFROUT_BAD_TSIG_KEY_STRING bad TSIG key string: %1</term>
<listitem><para>
The TSIG key string as read from the configuration does not represent
a valid TSIG key.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_CC_SESSION_ERROR">
<term>XFROUT_CC_SESSION_ERROR error reading from cc channel: %1</term>
<listitem><para>
There was a problem reading from the command and control channel. The
most likely cause is that the msgq daemon is not running.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_CC_SESSION_TIMEOUT_ERROR">
<term>XFROUT_CC_SESSION_TIMEOUT_ERROR timeout waiting for cc response</term>
<listitem><para>
There was a problem reading a response from another module over the
command and control channel. The most likely cause is that the
configuration manager b10-cfgmgr is not running.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_CONFIG_ERROR">
<term>XFROUT_CONFIG_ERROR error found in configuration data: %1</term>
<listitem><para>
The xfrout process encountered an error when installing the configuration at
startup time.  Details of the error are included in the log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_FETCH_REQUEST_ERROR">
<term>XFROUT_FETCH_REQUEST_ERROR socket error while fetching a request from the auth daemon</term>
<listitem><para>
There was a socket error while contacting the b10-auth daemon to
fetch a transfer request. The auth daemon may have shutdown.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_HANDLE_QUERY_ERROR">
<term>XFROUT_HANDLE_QUERY_ERROR error while handling query: %1</term>
<listitem><para>
There was a general error handling an xfrout query. The error is shown
in the message. In principle this error should not appear, and points
to an oversight catching exceptions in the right place. However, to
ensure the daemon keeps running, this error is caught and reported.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IMPORT">
<term>XFROUT_IMPORT error importing python module: %1</term>
<listitem><para>
There was an error importing a python module. One of the modules needed
by xfrout could not be found. This suggests that either some libraries
are missing on the system, or the PYTHONPATH variable is not correct.
The specific place where this library needs to be depends on your
system and your specific installation.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_MULTIPLE_SOA">
<term>XFROUT_IXFR_MULTIPLE_SOA IXFR client %1: authority section has multiple SOAs</term>
<listitem><para>
An IXFR request was received with more than one SOA RRs in the authority
section.  The xfrout daemon rejects the request with an RCODE of
FORMERR.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_NO_JOURNAL_SUPPORT">
<term>XFROUT_IXFR_NO_JOURNAL_SUPPORT IXFR client %1, %2: journaling not supported in the data source, falling back to AXFR</term>
<listitem><para>
An IXFR request was received but the underlying data source did
not support journaling.  The xfrout daemon fell back to AXFR-style
IXFR.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_NO_SOA">
<term>XFROUT_IXFR_NO_SOA IXFR client %1: missing SOA</term>
<listitem><para>
An IXFR request was received with no SOA RR in the authority section.
The xfrout daemon rejects the request with an RCODE of FORMERR.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_NO_VERSION">
<term>XFROUT_IXFR_NO_VERSION IXFR client %1, %2: version (%3 to %4) not in journal, falling back to AXFR</term>
<listitem><para>
An IXFR request was received, but the requested range of differences
were not found in the data source.  The xfrout daemon fell back to
AXFR-style IXFR.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_NO_ZONE">
<term>XFROUT_IXFR_NO_ZONE IXFR client %1, %2: zone not found with journal</term>
<listitem><para>
The requested zone in IXFR was not found in the data source
even though the xfrout daemon sucessfully found the SOA RR of the zone
in the data source.  This can happen if the administrator removed the
zone from the data source within the small duration between these
operations, but it's more likely to be a bug or broken data source.
Unless you know why this message was logged, and especially if it
happens often, it's advisable to check whether the data source is
valid for this zone.  The xfrout daemon considers it a possible,
though unlikely, event, and returns a response with an RCODE of
NOTAUTH.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_IXFR_UPTODATE">
<term>XFROUT_IXFR_UPTODATE IXFR client %1, %2: client version is new enough (theirs=%3, ours=%4)</term>
<listitem><para>
An IXFR request was received, but the client's SOA version is the same as
or newer than that of the server.  The xfrout server responds to the
request with the answer section being just one SOA of that version.
Note: as of this wrting the 'newer version' cannot be identified due to
the lack of support for the serial number arithmetic.  This will soon
be implemented.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_MODULECC_SESSION_ERROR">
<term>XFROUT_MODULECC_SESSION_ERROR error encountered by configuration/command module: %1</term>
<listitem><para>
There was a problem in the lower level module handling configuration and
control commands.  This could happen for various reasons, but the most likely
cause is that the configuration database contains a syntax error and xfrout
failed to start at initialization.  A detailed error message from the module
will also be displayed.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_NEW_CONFIG">
<term>XFROUT_NEW_CONFIG Update xfrout configuration</term>
<listitem><para>
New configuration settings have been sent from the configuration
manager. The xfrout daemon will now apply them.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_NEW_CONFIG_DONE">
<term>XFROUT_NEW_CONFIG_DONE Update xfrout configuration done</term>
<listitem><para>
The xfrout daemon is now done reading the new configuration settings
received from the configuration manager.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_NOTIFY_COMMAND">
<term>XFROUT_NOTIFY_COMMAND received command to send notifies for %1/%2</term>
<listitem><para>
The xfrout daemon received a command on the command channel that
NOTIFY packets should be sent for the given zone.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_PARSE_QUERY_ERROR">
<term>XFROUT_PARSE_QUERY_ERROR error parsing query: %1</term>
<listitem><para>
There was a parse error while reading an incoming query. The parse
error is shown in the log message. A remote client sent a packet we
do not understand or support. The xfrout request will be ignored.
In general, this should only occur for unexpected problems like
memory allocation failures, as the query should already have been
parsed by the b10-auth daemon, before it was passed here.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_PROCESS_REQUEST_ERROR">
<term>XFROUT_PROCESS_REQUEST_ERROR error processing transfer request: %2</term>
<listitem><para>
There was an error processing a transfer request. The error is included
in the log message, but at this point no specific information other
than that could be given. This points to incomplete exception handling
in the code.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_QUERY_DROPPED">
<term>XFROUT_QUERY_DROPPED %1 client %2: request to transfer %3 dropped</term>
<listitem><para>
The xfrout process silently dropped a request to transfer zone to
given host.  This is required by the ACLs.  The %2 represents the IP
address and port of the peer requesting the transfer, and the %3
represents the zone name and class.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_QUERY_QUOTA_EXCCEEDED">
<term>XFROUT_QUERY_QUOTA_EXCCEEDED %1 client %2: request denied due to quota (%3)</term>
<listitem><para>
The xfr request was rejected because the server was already handling
the maximum number of allowable transfers as specified in the transfers_out
configuration parameter, which is also shown in the log message.  The
request was immediately responded and terminated with an RCODE of REFUSED.
This can happen for a busy xfrout server, and you may want to increase
this parameter; if the server is being too busy due to requests from
unexpected clients you may want to restrict the legitimate clients
with ACL.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_QUERY_REJECTED">
<term>XFROUT_QUERY_REJECTED %1 client %2: request to transfer %3 rejected</term>
<listitem><para>
The xfrout process rejected (by REFUSED rcode) a request to transfer zone to
given host. This is because of ACLs.  The %2 represents the IP
address and port of the peer requesting the transfer, and the %3
represents the zone name and class.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_RECEIVED_SHUTDOWN_COMMAND">
<term>XFROUT_RECEIVED_SHUTDOWN_COMMAND shutdown command received</term>
<listitem><para>
The xfrout daemon received a shutdown command from the command channel
and will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_RECEIVE_FILE_DESCRIPTOR_ERROR">
<term>XFROUT_RECEIVE_FILE_DESCRIPTOR_ERROR error receiving the file descriptor for an XFR connection</term>
<listitem><para>
There was an error receiving the file descriptor for the transfer
request. Normally, the request is received by b10-auth, and passed on
to the xfrout daemon, so it can answer directly. However, there was a
problem receiving this file descriptor. The request will be ignored.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_REMOVE_OLD_UNIX_SOCKET_FILE_ERROR">
<term>XFROUT_REMOVE_OLD_UNIX_SOCKET_FILE_ERROR error removing unix socket file %1: %2</term>
<listitem><para>
The unix socket file xfrout needs for contact with the auth daemon
already exists, and needs to be removed first, but there is a problem
removing it. It is likely that we do not have permission to remove
this file. The specific error is show in the log message. The xfrout
daemon will shut down.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_REMOVE_UNIX_SOCKET_FILE_ERROR">
<term>XFROUT_REMOVE_UNIX_SOCKET_FILE_ERROR error clearing unix socket file %1: %2</term>
<listitem><para>
When shutting down, the xfrout daemon tried to clear the unix socket
file used for communication with the auth daemon. It failed to remove
the file. The reason for the failure is given in the error message.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_SOCKET_SELECT_ERROR">
<term>XFROUT_SOCKET_SELECT_ERROR error while calling select() on request socket: %1</term>
<listitem><para>
There was an error while calling select() on the socket that informs
the xfrout daemon that a new xfrout request has arrived. This should
be a result of rare local error such as memory allocation failure and
shouldn't happen under normal conditions. The error is included in the
log message.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_STOPPED_BY_KEYBOARD">
<term>XFROUT_STOPPED_BY_KEYBOARD keyboard interrupt, shutting down</term>
<listitem><para>
There was a keyboard interrupt signal to stop the xfrout daemon. The
daemon will now shut down.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_STOPPING">
<term>XFROUT_STOPPING the xfrout daemon is shutting down</term>
<listitem><para>
The current transfer is aborted, as the xfrout daemon is shutting down.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_UNIX_SOCKET_FILE_IN_USE">
<term>XFROUT_UNIX_SOCKET_FILE_IN_USE another xfrout process seems to be using the unix socket file %1</term>
<listitem><para>
While starting up, the xfrout daemon tried to clear the unix domain
socket needed for contacting the b10-auth daemon to pass requests
on, but the file is in use. The most likely cause is that another
xfrout daemon process is still running. This xfrout daemon (the one
printing this message) will not start.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_XFR_TRANSFER_CHECK_ERROR">
<term>XFROUT_XFR_TRANSFER_CHECK_ERROR %1 client %2: check for transfer of %3 failed: %4</term>
<listitem><para>
Pre-response check for an incomding XFR request failed unexpectedly.
The most likely cause of this is that some low level error in the data
source, but it may also be other general (more unlikely) errors such
as memory shortage.  Some detail of the error is also included in the
message.  The xfrout server tries to return a SERVFAIL response in this case.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_XFR_TRANSFER_DONE">
<term>XFROUT_XFR_TRANSFER_DONE %1 client %2: transfer of %3 complete</term>
<listitem><para>
The transfer of the given zone has been completed successfully, or was
aborted due to a shutdown event.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_XFR_TRANSFER_ERROR">
<term>XFROUT_XFR_TRANSFER_ERROR %1 client %2: error transferring zone %3: %4</term>
<listitem><para>
An uncaught exception was encountered while sending the response to
an AXFR query. The error message of the exception is included in the
log message, but this error most likely points to incomplete exception
handling in the code.
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_XFR_TRANSFER_FAILED">
<term>XFROUT_XFR_TRANSFER_FAILED %1 client %2: transfer of %3 failed, rcode: %4</term>
<listitem><para>
A transfer out for the given zone failed. An error response is sent
to the client. The given rcode is the rcode that is set in the error
response. This is either NOTAUTH (we are not authoritative for the
zone), SERVFAIL (our internal database is missing the SOA record for
the zone), or REFUSED (the limit of simultaneous outgoing AXFR
transfers, as specified by the configuration value
Xfrout/max_transfers_out, has been reached).
</para></listitem>
</varlistentry>

<varlistentry id="XFROUT_XFR_TRANSFER_STARTED">
<term>XFROUT_XFR_TRANSFER_STARTED %1 client %2: transfer of zone %3 has started</term>
<listitem><para>
A transfer out of the given zone has started.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_CCSESSION_ERROR">
<term>ZONEMGR_CCSESSION_ERROR command channel session error: %1</term>
<listitem><para>
An error was encountered on the command channel.  The message indicates
the nature of the error.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_JITTER_TOO_BIG">
<term>ZONEMGR_JITTER_TOO_BIG refresh_jitter is too big, setting to 0.5</term>
<listitem><para>
The value specified in the configuration for the refresh jitter is too large
so its value has been set to the maximum of 0.5.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_KEYBOARD_INTERRUPT">
<term>ZONEMGR_KEYBOARD_INTERRUPT exiting zonemgr process as result of keyboard interrupt</term>
<listitem><para>
An informational message output when the zone manager was being run at a
terminal and it was terminated via a keyboard interrupt signal.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_LOAD_ZONE">
<term>ZONEMGR_LOAD_ZONE loading zone %1 (class %2)</term>
<listitem><para>
This is a debug message indicating that the zone of the specified class
is being loaded.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_NO_MASTER_ADDRESS">
<term>ZONEMGR_NO_MASTER_ADDRESS internal BIND 10 command did not contain address of master</term>
<listitem><para>
A command received by the zone manager from the Auth module did not
contain the address of the master server from which a NOTIFY message
was received.  This may be due to an internal programming error; please
submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_NO_SOA">
<term>ZONEMGR_NO_SOA zone %1 (class %2) does not have an SOA record</term>
<listitem><para>
When loading the named zone of the specified class the zone manager
discovered that the data did not contain an SOA record.  The load has
been abandoned.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_NO_TIMER_THREAD">
<term>ZONEMGR_NO_TIMER_THREAD trying to stop zone timer thread but it is not running</term>
<listitem><para>
An attempt was made to stop the timer thread (used to track when zones
should be refreshed) but it was not running.  This may indicate an
internal program error.  Please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_NO_ZONE_CLASS">
<term>ZONEMGR_NO_ZONE_CLASS internal BIND 10 command did not contain class of zone</term>
<listitem><para>
A command received by the zone manager from another BIND 10 module did
not contain the class of the zone on which the zone manager should act.
This may be due to an internal programming error; please submit a
bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_NO_ZONE_NAME">
<term>ZONEMGR_NO_ZONE_NAME internal BIND 10 command did not contain name of zone</term>
<listitem><para>
A command received by the zone manager from another BIND 10 module did
not contain the name of the zone on which the zone manager should act.
This may be due to an internal programming error; please submit a
bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_RECEIVE_NOTIFY">
<term>ZONEMGR_RECEIVE_NOTIFY received NOTIFY command for zone %1 (class %2)</term>
<listitem><para>
This is a debug message indicating that the zone manager has received a
NOTIFY command over the command channel.  The command is sent by the Auth
process when it is acting as a slave server for the zone and causes the
zone manager to record the master server for the zone and start a timer;
when the timer expires, the master will be polled to see if it contains
new data.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_RECEIVE_SHUTDOWN">
<term>ZONEMGR_RECEIVE_SHUTDOWN received SHUTDOWN command</term>
<listitem><para>
This is a debug message indicating that the zone manager has received
a SHUTDOWN command over the command channel from the Boss process.
It will act on this command and shut down.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_RECEIVE_UNKNOWN">
<term>ZONEMGR_RECEIVE_UNKNOWN received unknown command '%1'</term>
<listitem><para>
This is a warning message indicating that the zone manager has received
the stated command over the command channel.  The command is not known
to the zone manager and although the command is ignored, its receipt
may indicate an internal error.  Please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_RECEIVE_XFRIN_FAILED">
<term>ZONEMGR_RECEIVE_XFRIN_FAILED received XFRIN FAILED command for zone %1 (class %2)</term>
<listitem><para>
This is a debug message indicating that the zone manager has received
an XFRIN FAILED command over the command channel.  The command is sent
by the Xfrin process when a transfer of zone data into the system has
failed, and causes the zone manager to schedule another transfer attempt.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_RECEIVE_XFRIN_SUCCESS">
<term>ZONEMGR_RECEIVE_XFRIN_SUCCESS received XFRIN SUCCESS command for zone %1 (class %2)</term>
<listitem><para>
This is a debug message indicating that the zone manager has received
an XFRIN SUCCESS command over the command channel.  The command is sent
by the Xfrin process when the transfer of zone data into the system has
succeeded, and causes the data to be loaded and served by BIND 10.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_REFRESH_ZONE">
<term>ZONEMGR_REFRESH_ZONE refreshing zone %1 (class %2)</term>
<listitem><para>
The zone manager is refreshing the named zone of the specified class
with updated information.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_SELECT_ERROR">
<term>ZONEMGR_SELECT_ERROR error with select(): %1</term>
<listitem><para>
An attempt to wait for input from a socket failed.  The failing operation
is a call to the operating system's select() function, which failed for
the given reason.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_SEND_FAIL">
<term>ZONEMGR_SEND_FAIL failed to send command to %1, session has been closed</term>
<listitem><para>
The zone manager attempted to send a command to the named BIND 10 module,
but the send failed.  The session between the modules has been closed.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_SESSION_ERROR">
<term>ZONEMGR_SESSION_ERROR unable to establish session to command channel daemon</term>
<listitem><para>
The zonemgr process was not able to be started because it could not
connect to the command channel daemon.  The most usual cause of this
problem is that the daemon is not running.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_SESSION_TIMEOUT">
<term>ZONEMGR_SESSION_TIMEOUT timeout on session to command channel daemon</term>
<listitem><para>
The zonemgr process was not able to be started because it timed out when
connecting to the command channel daemon.  The most usual cause of this
problem is that the daemon is not running.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_SHUTDOWN">
<term>ZONEMGR_SHUTDOWN zone manager has shut down</term>
<listitem><para>
A debug message, output when the zone manager has shut down completely.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_STARTING">
<term>ZONEMGR_STARTING zone manager starting</term>
<listitem><para>
A debug message output when the zone manager starts up.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_TIMER_THREAD_RUNNING">
<term>ZONEMGR_TIMER_THREAD_RUNNING trying to start timer thread but one is already running</term>
<listitem><para>
This message is issued when an attempt is made to start the timer
thread (which keeps track of when zones need a refresh) but one is
already running.  It indicates either an error in the program logic or
a problem with stopping a previous instance of the timer.  Please submit
a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_UNKNOWN_ZONE_FAIL">
<term>ZONEMGR_UNKNOWN_ZONE_FAIL zone %1 (class %2) is not known to the zone manager</term>
<listitem><para>
An XFRIN operation has failed but the zone that was the subject of the
operation is not being managed by the zone manager. This can be either the
result of a bindctl command to transfer in a currently unknown (or mistyped)
zone, or, if this error appears without the administrator giving transfer
commands, it can indicate an error in the program, as it should not have
initiated transfers of unknown zones on its own.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_UNKNOWN_ZONE_NOTIFIED">
<term>ZONEMGR_UNKNOWN_ZONE_NOTIFIED notified zone %1 (class %2) is not known to the zone manager</term>
<listitem><para>
A NOTIFY was received but the zone that was the subject of the operation
is not being managed by the zone manager.  This may indicate an error
in the program (as the operation should not have been initiated if this
were the case).  Please submit a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ZONEMGR_UNKNOWN_ZONE_SUCCESS">
<term>ZONEMGR_UNKNOWN_ZONE_SUCCESS zone %1 (class %2) is not known to the zone manager</term>
<listitem><para>
An XFRIN operation has succeeded but the zone received is not being
managed by the zone manager.  This may indicate an error in the program
(as the operation should not have been initiated if this were the case).
Please submit a bug report.
</para></listitem>
</varlistentry>
      </variablelist>
    </para>
  </chapter>
</book>
