# Copyright (C) 2011  Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.

# No namespace declaration - these constants go in the global namespace
# along with the resolver methods.

% RESOLVER_AXFR_TCP AXFR request received over TCP
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.

% RESOLVER_AXFR_UDP AXFR request received over UDP
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.

% RESOLVER_CLIENT_TIME_SMALL client timeout of %1 is too small
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.

% RESOLVER_CONFIG_CHANNEL configuration channel created
This is a debug message output when the resolver has successfully
established a connection to the configuration channel.

% RESOLVER_CONFIG_ERROR error in configuration: %1
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.

% RESOLVER_CONFIG_LOADED configuration loaded
This is a debug message output when the resolver configuration has been
successfully loaded.

% RESOLVER_CONFIG_UPDATED configuration updated: %1
This is a debug message output when the resolver configuration is being
updated with the specified information.

% RESOLVER_CREATED main resolver object created
This is a debug message indicating that the main resolver object has
been created.

% RESOLVER_DNS_MESSAGE_RECEIVED DNS message received: %1
This is a debug message from the resolver listing the contents of a
received DNS message.

% RESOLVER_DNS_MESSAGE_SENT DNS message of %1 bytes sent: %2
This is a debug message containing details of the response returned by
the resolver to the querying system.

% RESOLVER_FAILED resolver failed, reason: %1
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.

% RESOLVER_FORWARD_ADDRESS setting forward address %1(%2)
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.

% RESOLVER_FORWARD_QUERY processing forward query
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.

% RESOLVER_HEADER_ERROR message received, exception when processing header: %1
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.

% RESOLVER_IXFR IXFR request received
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.

% RESOLVER_LOOKUP_TIME_SMALL lookup timeout of %1 is too small
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.

% RESOLVER_MESSAGE_ERROR error parsing received message: %1 - returning %2
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.

% RESOLVER_NEGATIVE_RETRIES negative number of retries (%1) specified in the configuration
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.

% RESOLVER_NON_IN_PACKET non-IN class (%1) request received, returning REFUSED message
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.

% RESOLVER_NORMAL_QUERY processing normal query
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.

% RESOLVER_NOTIFY_RECEIVED NOTIFY arrived but server is not authoritative
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.

% RESOLVER_NOT_ONE_QUESTION query contained %1 questions, exactly one question was expected
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.

% RESOLVER_NO_ROOT_ADDRESS no root addresses available
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.

% RESOLVER_PARSE_ERROR error parsing received message: %1 - returning %2
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.

% RESOLVER_PRINT_COMMAND print message command, arguments are: %1
This debug message is logged when a "print_message" command is received
by the resolver over the command channel.

% RESOLVER_PROTOCOL_ERROR protocol error parsing received message: %1 - returning %2
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.

% RESOLVER_QUERY_ACCEPTED query accepted: '%1/%2/%3' from %4
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 <query name>/<query type>/<query class>, and the client
that sends the query in the form of <Source IP address>#<source port>.

% RESOLVER_QUERY_DROPPED query dropped: '%1/%2/%3' from %4
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 <query name>/<query
type>/<query class>, and the client that sends the query in the form of
<Source IP address>#<source port>.

% RESOLVER_QUERY_REJECTED query rejected: '%1/%2/%3' from %4
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 <query name>/<query type>/<query class>, and the client
that sends the query in the form of <Source IP address>#<source port>.

% RESOLVER_QUERY_SETUP query setup
This is a debug message noting that the resolver is creating a
RecursiveQuery object.

% RESOLVER_QUERY_SHUTDOWN query shutdown
This is a debug message noting that the resolver is destroying a
RecursiveQuery object.

% RESOLVER_QUERY_TIME_SMALL query timeout of %1 is too small
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.

% RESOLVER_RECEIVED_MESSAGE resolver has received a DNS message
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.

% RESOLVER_RECURSIVE running in recursive mode
This is an informational message that appears at startup noting that
the resolver is running in recursive mode.

% RESOLVER_SERVICE_CREATED service object created
This debug message is output when resolver creates the main service object
(which handles the received queries).

% RESOLVER_SET_PARAMS query timeout: %1, client timeout: %2, lookup timeout: %3, retry count: %4
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.

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.

% RESOLVER_SET_QUERY_ACL query ACL is configured
This debug message is generated when a new query ACL is configured for
the resolver.

% RESOLVER_SET_ROOT_ADDRESS setting root address %1(%2)
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.

% RESOLVER_SHUTDOWN resolver shutdown complete
This informational message is output when the resolver has shut down.

% RESOLVER_SHUTDOWN_RECEIVED received command to shut down
A debug message noting that the server was asked to terminate and is
complying to the request.

% RESOLVER_STARTED resolver started
This informational message is output by the resolver when all initialization
has been completed and it is entering its main loop.

% RESOLVER_STARTING starting resolver with command line '%1'
An informational message, this is output when the resolver starts up.

% RESOLVER_UNEXPECTED_RESPONSE received unexpected response, ignoring
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.

% RESOLVER_UNSUPPORTED_OPCODE opcode %1 not supported by the resolver
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.
