<?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;
]>
<book>
  <?xml-stylesheet href="bind10-guide.css" type="text/css"?>

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

    <copyright>
      <year>2011</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_FETCHCOMP">
<term>ASIODNS_FETCHCOMP upstream fetch to %1(%2) has now completed</term>
<listitem><para>
A debug message, this records the 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_FETCHSTOP">
<term>ASIODNS_FETCHSTOP 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_OPENSOCK">
<term>ASIODNS_OPENSOCK 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 the number of the system error that cause the problem is given in the
message.
</para></listitem>
</varlistentry>

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

<varlistentry id="ASIODNS_RECVTMO">
<term>ASIODNS_RECVTMO 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_SENDSOCK">
<term>ASIODNS_SENDSOCK error %1 sending data using %2 to %3(%4)</term>
<listitem><para>
The asynchronous I/O code encountered an error when trying send data to
the specified address on the given protocol.  The the number of the system
error that cause the problem is given in the message.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_UNKORIGIN">
<term>ASIODNS_UNKORIGIN unknown origin for ASIO error code %1 (protocol: %2, address %3)</term>
<listitem><para>
This message should not appear and indicates an internal error if it does.
Please enter a bug report.
</para></listitem>
</varlistentry>

<varlistentry id="ASIODNS_UNKRESULT">
<term>ASIODNS_UNKRESULT unknown result (%1) when IOFetch::stop() was executed for I/O to %2(%3)</term>
<listitem><para>
The termination method of the resolver's upstream fetch class was called with
an unknown result code (which is given in the message).  This message should
not appear and may indicate an internal error.  Please enter a bug report.
</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. This
most likely points to an internal inconsistency in the module code. The
exception message is appended to the log error, and the module will
continue to run, but will not send back an answer.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_FOPEN_ERR">
<term>CONFIG_FOPEN_ERR error opening %1: %2</term>
<listitem><para>
There was an error opening the given file.
</para></listitem>
</varlistentry>

<varlistentry id="CONFIG_JSON_PARSE">
<term>CONFIG_JSON_PARSE JSON parse error in %1: %2</term>
<listitem><para>
There was a parse error in 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_MANAGER_CONFIG">
<term>CONFIG_MANAGER_CONFIG 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_MANAGER_MOD_SPEC">
<term>CONFIG_MANAGER_MOD_SPEC module specification not accepted by cfgmgr: %1</term>
<listitem><para>
The module 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_MODULE_SPEC">
<term>CONFIG_MODULE_SPEC module specification error in %1: %2</term>
<listitem><para>
The given file does not appear to be a valid specification file. Please
verify that the filename is correct and that its contents are a valid
BIND10 module specification.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_CREATE">
<term>DATASRC_CACHE_CREATE creating the hotspot cache</term>
<listitem><para>
Debug information that the hotspot cache was created at startup.
</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 cache</term>
<listitem><para>
The hotspot cache is disabled from now on. It is not going to store
information or return anything.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_ENABLE">
<term>DATASRC_CACHE_ENABLE enabling the cache</term>
<listitem><para>
The hotspot cache is enabled from now on.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_EXPIRED">
<term>DATASRC_CACHE_EXPIRED the item '%1' is expired</term>
<listitem><para>
Debug information. There was an attempt to look up an item in the hotspot
cache. And the item was actually there, but it was too old, so it was removed
instead and nothing is reported (the external behaviour is the same as with
CACHE_NOT_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 looked up in the hotspot cache.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_FULL">
<term>DATASRC_CACHE_FULL 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 cache</term>
<listitem><para>
Debug information. It means 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</term>
<listitem><para>
Debug information. It was attempted to look up an item in the hotspot cache,
but it is not there.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_OLD_FOUND">
<term>DATASRC_CACHE_OLD_FOUND older instance of cache item 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 should be directly followed by CACHE_REMOVE.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_CACHE_REMOVE">
<term>DATASRC_CACHE_REMOVE removing '%1' from the 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 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_DO_QUERY">
<term>DATASRC_DO_QUERY handling query for '%1/%2'</term>
<listitem><para>
Debug information. We're processing some internal query for given name and
type.
</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>
Debug information. Some special marks above each * in wildcard name are needed.
They are being added now for this name.
</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 outher 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>
It was requested 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. This 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_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_NOTFOUND">
<term>DATASRC_MEM_NOTFOUND requested domain '%1' not found</term>
<listitem><para>
Debug information. The requested domain does not exist.
</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 at superdomain '%1', domain '%2' is empty</term>
<listitem><para>
Debug information. The search stopped at a superdomain of the requested
domain. The domain is a 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>
Debug information. Yet another data source is being added into the meta data
source. (probably at startup or reconfiguration)
</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 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 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>
There was an CNAME and it was being followed. But it contains no records,
so there's nowhere to go. There will be no answer. This indicates a problem
with supplied data.
We tried to follow
</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. We are returning SERVFAIL.
</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 we created a CNAME
for it already), so it's being followed.
</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 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 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 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 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 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>
Lookup of domain failed because the data have no zone that contain the
domain. Maybe someone sent a query to the wrong server for some reason.
</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_PROVENX_FAIL">
<term>DATASRC_QUERY_PROVENX_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</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>
Debug information. While answering a query, a DNAME was met. The DNAME itself
will be returned, but along with it a CNAME for clients which don't understand
DNAMEs will be synthesized.
</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_PROVENX_FAIL">
<term>DATASRC_QUERY_WILDCARD_PROVENX_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_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_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_NOTFOUND">
<term>DATASRC_SQLITE_ENCLOSURE_NOTFOUND no zone contains it</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_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>
Debug information. We're trying to look up name preceding the supplied one.
</para></listitem>
</varlistentry>

<varlistentry id="DATASRC_SQLITE_PREVIOUS_NO_ZONE">
<term>DATASRC_SQLITE_PREVIOUS_NO_ZONE no zone containing '%1'</term>
<listitem><para>
The SQLite data source tried to identify name preceding this one. But this
one is not contained in any zone in the data source.
</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_BAD_CLASS">
<term>DATASRC_STATIC_BAD_CLASS static data source can handle CH only</term>
<listitem><para>
For some reason, someone asked the static data source a query that is not in
the CH class.
</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="LOGIMPL_ABOVEDBGMAX">
<term>LOGIMPL_ABOVEDBGMAX debug level of %1 is too high and will be set to the maximum of %2</term>
<listitem><para>
A message from the underlying logger implementation code, the debug level
(as set by the string DEBGUGn) is above the maximum allowed value and has
been reduced to that value.
</para></listitem>
</varlistentry>

<varlistentry id="LOGIMPL_BADDEBUG">
<term>LOGIMPL_BADDEBUG debug string is '%1': must be of the form DEBUGn</term>
<listitem><para>
The string indicating the extended logging level (used by the underlying
logger implementation code) is not of the stated form.  In particular,
it starts DEBUG but does not end with an integer.
</para></listitem>
</varlistentry>

<varlistentry id="LOGIMPL_BELOWDBGMIN">
<term>LOGIMPL_BELOWDBGMIN debug level of %1 is too low and will be set to the minimum of %2</term>
<listitem><para>
A message from the underlying logger implementation code, the debug level
(as set by the string DEBGUGn) is below the minimum allowed value and has
been increased to that value.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_BADDESTINATION">
<term>MSG_BADDESTINATION 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="MSG_BADSEVERITY">
<term>MSG_BADSEVERITY 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", or "FATAL".
</para></listitem>
</varlistentry>

<varlistentry id="MSG_BADSTREAM">
<term>MSG_BADSTREAM bad log console output stream: %1</term>
<listitem><para>
A log console output stream was given that was not recognized. The
output stream should be one of "stdout", or "stderr"
</para></listitem>
</varlistentry>

<varlistentry id="MSG_DUPLNS">
<term>MSG_DUPLNS line %1: duplicate $NAMESPACE directive found</term>
<listitem><para>
When reading a message file, more than one $NAMESPACE directive was found.  In
this version of the code, such a condition is regarded as an error and the
read will be abandoned.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_DUPMSGID">
<term>MSG_DUPMSGID duplicate message ID (%1) in compiled code</term>
<listitem><para>
Indicative of a programming error, when it started up, BIND10 detected that
the given message ID had been registered by one or more modules.  (All message
IDs should be unique throughout BIND10.)  This has no impact on the operation
of the server other that erroneous messages may be logged.  (When BIND10 loads
the message IDs (and their associated text), if a duplicate ID is found it is
discarded.  However, when the module that supplied the duplicate ID logs that
particular message, the text supplied by the module that added the original
ID will be output - something that may bear no relation to the condition being
logged.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_IDNOTFND">
<term>MSG_IDNOTFND 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.  Either the message
identification has been mis-spelled in the file, or the local file was used
for an earlier version of the software and the message with that
identification has been removed.
</para><para>
This message may appear a number of times in the file, once for every such
unknown message identification.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_INVMSGID">
<term>MSG_INVMSGID line %1: invalid message identification '%2'</term>
<listitem><para>
The concatenation of the prefix and the message identification is used as
a symbol in the C++ module; as such it may only contain
</para></listitem>
</varlistentry>

<varlistentry id="MSG_NOMSGID">
<term>MSG_NOMSGID line %1: message definition line found without a message ID</term>
<listitem><para>
Message definition lines are 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="MSG_NOMSGTXT">
<term>MSG_NOMSGTXT line %1: line found containing a message ID ('%2') and no text</term>
<listitem><para>
Message definition lines are lines starting with a "%".  The rest of the line
should comprise the message ID and text describing the message.  This error
is generated when a line is found in the message file that contains the
leading "%" and the message identification but no text.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_NSEXTRARG">
<term>MSG_NSEXTRARG line %1: $NAMESPACE directive has too many arguments</term>
<listitem><para>
The $NAMESPACE directive 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="MSG_NSINVARG">
<term>MSG_NSINVARG line %1: $NAMESPACE directive has an invalid argument ('%2')</term>
<listitem><para>
The $NAMESPACE argument should be a valid C++ namespace.  The reader does a
cursory check on its validity, checking that the characters in the namespace
are correct.  The error is generated when the reader finds an invalid
character. (Valid are alphanumeric characters, underscores and colons.)
</para></listitem>
</varlistentry>

<varlistentry id="MSG_NSNOARG">
<term>MSG_NSNOARG line %1: no arguments were given to the $NAMESPACE directive</term>
<listitem><para>
The $NAMESPACE directive 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 no arguments.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_OPENIN">
<term>MSG_OPENIN 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="MSG_OPENOUT">
<term>MSG_OPENOUT unable to open %1 for output: %2</term>
<listitem><para>
The program was not able to open the specified output file for the reason
given.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_PRFEXTRARG">
<term>MSG_PRFEXTRARG line %1: $PREFIX directive has too many arguments</term>
<listitem><para>
The $PREFIX directive takes a single argument, a prefix to be added to the
symbol names when a C++ .h file is created.  This error is generated when the
compiler finds a $PREFIX directive with more than one argument.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_PRFINVARG">
<term>MSG_PRFINVARG line %1: $PREFIX directive has an invalid argument ('%2')</term>
<listitem><para>
The $PREFIX argument is used in a symbol name in a C++ header file.  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 restictions.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_RDLOCMES">
<term>MSG_RDLOCMES reading local message file %1</term>
<listitem><para>
This is an informational message output by BIND10 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="MSG_READERR">
<term>MSG_READERR 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="MSG_UNRECDIR">
<term>MSG_UNRECDIR line %1: unrecognised directive '%2'</term>
<listitem><para>
A line starting with a dollar symbol was found, but the first word on the line
(shown in the message) was not a recognised message compiler directive.
</para></listitem>
</varlistentry>

<varlistentry id="MSG_WRITERR">
<term>MSG_WRITERR 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="NSAS_INVRESPSTR">
<term>NSAS_INVRESPSTR queried for %1 but got invalid response</term>
<listitem><para>
This message indicates an internal error in the nameserver address store
component (NSAS) of the resolver.  The NSAS made a query for a RR for the
specified nameserver but received an invalid response.  Either the success
function was called without a DNS message or the message was invalid on some
way. (In the latter case, the error should have been picked up elsewhere in
the processing logic, hence the raising of the error here.)
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_INVRESPTC">
<term>NSAS_INVRESPTC queried for %1 RR of type/class %2/%3, received response %4/%5</term>
<listitem><para>
This message indicates an internal error in the nameserver address store
component (NSAS) of the resolver.  The NSAS made a query for the given RR
type and class, but instead received an answer with the given type and class.
</para></listitem>
</varlistentry>

<varlistentry id="NSAS_LOOKUPCANCEL">
<term>NSAS_LOOKUPCANCEL lookup for zone %1 has been cancelled</term>
<listitem><para>
A debug message, this is output when a NSAS (nameserver address store -
part of the resolver) lookup for a zone has been cancelled.
</para></listitem>
</varlistentry>

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

<varlistentry id="NSAS_NSADDR">
<term>NSAS_NSADDR asking resolver to obtain A and AAAA records for %1</term>
<listitem><para>
A debug message, 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_NSLKUPFAIL">
<term>NSAS_NSLKUPFAIL failed to lookup any %1 for %2</term>
<listitem><para>
A debug message, 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_NSLKUPSUCC">
<term>NSAS_NSLKUPSUCC found address %1 for %2</term>
<listitem><para>
A debug message, 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_SETRTT">
<term>NSAS_SETRTT reporting RTT for %1 as %2; new value is now %3</term>
<listitem><para>
A NSAS (nameserver address store - part of the resolver) debug message
reporting the 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 is not necessarily equal to the RTT
reported.)
</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 recording 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_FOLLOWCNAME">
<term>RESLIB_FOLLOWCNAME 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_LONGCHAIN">
<term>RESLIB_LONGCHAIN 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_NONSRRSET">
<term>RESLIB_NONSRRSET 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 categorised 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_NSASLOOK">
<term>RESLIB_NSASLOOK 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_NXDOMRR">
<term>RESLIB_NXDOMRR 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_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_PROTOCOLRTRY">
<term>RESLIB_PROTOCOLRTRY 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_RCODERR">
<term>RESLIB_RCODERR RCODE indicates error in response to query for &lt;%1&gt;</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_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_REFERZONE">
<term>RESLIB_REFERZONE 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_RESCAFND">
<term>RESLIB_RESCAFND 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_RESCANOTFND">
<term>RESLIB_RESCANOTFND 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_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_RRSETFND">
<term>RESLIB_RRSETFND 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_RUNCAFND">
<term>RESLIB_RUNCAFND 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_RUNCALOOK">
<term>RESLIB_RUNCALOOK 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_RUNQUFAIL">
<term>RESLIB_RUNQUFAIL 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_RUNQUSUCC">
<term>RESLIB_RUNQUSUCC 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_TESTSERV">
<term>RESLIB_TESTSERV setting test server to %1(%2)</term>
<listitem><para>
This is an internal debugging message and is 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.  As it should never be seen in normal
operation, it is a warning message instead of a debug message.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TESTUPSTR">
<term>RESLIB_TESTUPSTR 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 query has timed out and as
there are no retries left, an error will be reported.
</para></listitem>
</varlistentry>

<varlistentry id="RESLIB_TIMEOUTRTRY">
<term>RESLIB_TIMEOUTRTRY 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_AXFRTCP">
<term>RESOLVER_AXFRTCP AXFR request received over TCP</term>
<listitem><para>
A debug message, the resolver received a NOTIFY message over TCP.  The server
cannot process it and will return an error message to the sender with the
RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_AXFRUDP">
<term>RESOLVER_AXFRUDP AXFR request received over UDP</term>
<listitem><para>
A debug message, the resolver received a NOTIFY message over UDP.  The server
cannot process it (and in any case, an AXFR request should be sent over TCP)
and will return an error message to the sender with the RCODE set to FORMERR.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CLTMOSMALL">
<term>RESOLVER_CLTMOSMALL client timeout of %1 is too small</term>
<listitem><para>
An error indicating that the configuration value specified for the query
timeout is too small.
</para></listitem>
</varlistentry>

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

<varlistentry id="RESOLVER_CONFIGERR">
<term>RESOLVER_CONFIGERR 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, given as a parameter in the message,
will give more details.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIGLOAD">
<term>RESOLVER_CONFIGLOAD configuration loaded</term>
<listitem><para>
A debug message, output when the resolver configuration has been successfully
loaded.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CONFIGUPD">
<term>RESOLVER_CONFIGUPD configuration updated: %1</term>
<listitem><para>
A debug message, the configuration has been updated with the specified
information.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_CREATED">
<term>RESOLVER_CREATED main resolver object created</term>
<listitem><para>
A debug message, output when the Resolver() object has been created.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_DNSMSGRCVD">
<term>RESOLVER_DNSMSGRCVD DNS message received: %1</term>
<listitem><para>
A debug message, this always precedes some other logging message and is the
formatted contents of the DNS packet that the other message refers to.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_DNSMSGSENT">
<term>RESOLVER_DNSMSGSENT DNS message of %1 bytes sent: %2</term>
<listitem><para>
A debug message, this contains details of the response sent back 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.  All it can do is to shut down.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_FWDADDR">
<term>RESOLVER_FWDADDR setting forward address %1(%2)</term>
<listitem><para>
This message may appear multiple times during startup, and it lists the
forward addresses used by the resolver when running in forwarding mode.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_FWDQUERY">
<term>RESOLVER_FWDQUERY processing forward query</term>
<listitem><para>
The received query has passed all checks and is being forwarded to upstream
servers.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_HDRERR">
<term>RESOLVER_HDRERR message received, exception when processing header: %1</term>
<listitem><para>
A debug message 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>
The resolver received a NOTIFY message over TCP.  The server cannot process it
and will return an error message to the sender with the RCODE set to NOTIMP.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_LKTMOSMALL">
<term>RESOLVER_LKTMOSMALL lookup timeout of %1 is too small</term>
<listitem><para>
An error indicating that the configuration value specified for the lookup
timeout is too small.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NFYNOTAUTH">
<term>RESOLVER_NFYNOTAUTH NOTIFY arrived but server is not authoritative</term>
<listitem><para>
The resolver 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_NORMQUERY">
<term>RESOLVER_NORMQUERY processing normal query</term>
<listitem><para>
The received query has passed all checks and is being processed by the resolver.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NOROOTADDR">
<term>RESOLVER_NOROOTADDR no root addresses available</term>
<listitem><para>
A warning message during startup, 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_NOTIN">
<term>RESOLVER_NOTIN non-IN class request received, returning REFUSED message</term>
<listitem><para>
A debug message, the resolver has received a DNS packet that was not IN class.
The resolver cannot handle such packets, so is returning a REFUSED response to
the sender.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_NOTONEQUES">
<term>RESOLVER_NOTONEQUES query contained %1 questions, exactly one question was expected</term>
<listitem><para>
A debug message, the resolver received a query that contained the number of
entires 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_OPCODEUNS">
<term>RESOLVER_OPCODEUNS opcode %1 not supported by the resolver</term>
<listitem><para>
A debug message, 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="RESOLVER_PARSEERR">
<term>RESOLVER_PARSEERR error parsing received message: %1 - returning %2</term>
<listitem><para>
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_PRINTMSG">
<term>RESOLVER_PRINTMSG print message command, aeguments are: %1</term>
<listitem><para>
This message is logged when a "print_message" command is received over the
command channel.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_PROTERR">
<term>RESOLVER_PROTERR protocol error parsing received message: %1 - returning %2</term>
<listitem><para>
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_QUSETUP">
<term>RESOLVER_QUSETUP query setup</term>
<listitem><para>
A debug message noting that the resolver is creating a RecursiveQuery object.
</para></listitem>
</varlistentry>

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

<varlistentry id="RESOLVER_QUTMOSMALL">
<term>RESOLVER_QUTMOSMALL query timeout of %1 is too small</term>
<listitem><para>
An error indicating that the configuration value specified for the query
timeout is too small.
</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_RECVMSG">
<term>RESOLVER_RECVMSG resolver has received a DNS message</term>
<listitem><para>
A debug message indicating that the resolver has received a message.  Depending
on the debug settings, subsequent log output will indicate the nature of the
message.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_RETRYNEG">
<term>RESOLVER_RETRYNEG negative number of retries (%1) specified in the configuration</term>
<listitem><para>
An error message indicating that the resolver configuration has specified a
negative retry count.  Only zero or positive values are valid.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_ROOTADDR">
<term>RESOLVER_ROOTADDR setting root address %1(%2)</term>
<listitem><para>
This message may appear multiple times during startup; it lists the root
addresses used by the resolver.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SERVICE">
<term>RESOLVER_SERVICE service object created</term>
<listitem><para>
A debug message, output when the main service object (which handles the
received queries) is created.
</para></listitem>
</varlistentry>

<varlistentry id="RESOLVER_SETPARAM">
<term>RESOLVER_SETPARAM query timeout: %1, client timeout: %2, lookup timeout: %3, retry count: %4</term>
<listitem><para>
A debug message, lists the parameters associated with the message.  These are:
query timeout: the timeout (in ms) used for queries originated by the resolver
to upstream servers.  Client timeout: the interval to resolver a query by
a client: after this time, the resolver sends back a SERVFAIL to the client
whilst continuing to resolver 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 clent 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 resolve 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_SHUTDOWN">
<term>RESOLVER_SHUTDOWN resolver shutdown complete</term>
<listitem><para>
This information message is output when the resolver has shut down.
</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_UNEXRESP">
<term>RESOLVER_UNEXRESP received unexpected response, ignoring</term>
<listitem><para>
A debug message noting that the server has received a response instead of a
query and is ignoring it.
</para></listitem>
</varlistentry>
      </variablelist>
    </para>
  </chapter>
</book>
