Commit fb26d933 authored by Stephen Morris's avatar Stephen Morris
Browse files

Merge branch 'master' into trac745

parents 313464ee 48d2369e
232. [func] stephen
To facilitate the writing of extended descriptions in message files,
altered the message file format. The message is now flagged with a "%"
as the first non-blank character in the line and the lines in the
extended description are no longer preceded by a "+".
(Trac #900, git b395258c708b49a5da8d0cffcb48d83294354ba3)
231. [func]*
The logging interface changed slightly. We use
logger.foo(MESSAGE_ID).arg(bar); instead of logger.foo(MESSAGE_ID, bar);
internally. The message definitions use '%1,%2,...' instead of '%s,%d',
which allows us to cope better with mismatched placeholders and allows
reordering of them in case of translation.
(Trac901, git 4903410e45670b30d7283f5d69dc28c2069237d6)
230. [bug] naokikambe
Removed too repeated verbose messages in two cases of:
- when auth sends statistics data to stats
- when stats receives statistics data from other modules
(Trac#620, git 0ecb807011196eac01f281d40bc7c9d44565b364)
229. [doc] jreed
Add manual page for b10-host.
(git a437d4e26b81bb07181ff35a625c540703eee845)
228. [func]* jreed
The host tool is renamed to b10-host. While the utility is
a work in progress, it is expected to now be shipped with
tarballs. Its initial goal was to be a host(1) clone,
rewritten in C++ from scratch and using BIND 10's libdns++.
It now supports the -a (any), -c class, -d (verbose) switches
and has improved output.
(Trac #872, git d846851699d5c76937533adf9ff9d948dfd593ca)
227. [build] jreed
Add missing libdns++ rdata files for the distribution (this
fixes distcheck error). Change three generated libdns++
headers to "nodist" so they aren't included in the distribution
(they were mistakenly included in last tarball).
226. [func]* jelte
Introduced an API for cryptographic operations. Currently it only
supports HMAC, intended for use with TSIG. The current
implementation uses Botan as the backend library.
This introduces a new dependency, on Botan. Currently only Botan
1.8.x works; older or newer versions don't.
(Trac #781, git 9df42279a47eb617f586144dce8cce680598558a)
225. [func] naokikambe
Added the HTTP/XML interface(b10-stats-httpd) to the statistics feature
in BIND 10. b10-stats-httpd is a standalone HTTP server and it requests
statistics data to the stats daemon(b10-stats) and sends it to HTTP
clients in XML format. Items of the data collected via b10-stats-httpd
are almost equivalent to ones which are collected via bindctl. Since it
also can send XSL(Extensible Stylessheet Language) document and XSD(XML
Schema definition) document, XML document is human-friendly to view
through web browsers and its data types are strictly defined.
Added the HTTP/XML interface(b10-stats-httpd) to the
statistics feature in BIND 10. b10-stats-httpd is a standalone
HTTP server and it requests statistics data to the stats
daemon(b10-stats) and sends it to HTTP clients in XML
format. Items of the data collected via b10-stats-httpd
are almost equivalent to ones which are collected via
bindctl. Since it also can send XSL(Extensible Stylessheet
Language) document and XSD(XML Schema definition) document,
XML document is human-friendly to view through web browsers
and its data types are strictly defined.
(Trac #547, git 1cbd51919237a6e65983be46e4f5a63d1877b1d3)
224. [bug] jinmei
......@@ -18,11 +68,12 @@
(Trac #851, git 2463b96680bb3e9a76e50c38a4d7f1d38d810643)
223. [bug] feng
If ip address or port isn't usable for name server, name server process
won't exist and give end user chance to reconfigure them.
If ip address or port isn't usable for name server, name
server process won't exist and give end user chance to
reconfigure them.
(Trac #775, git 572ac2cf62e18f7eb69d670b890e2a3443bfd6e7)
222. [bug] jerry
222. [bug] jerry
src/lib/zonemgr: Fix a bug that xfrin not checking for new copy of
zone on startup. Imposes some random jitters to avoid many zones
need to do refresh at the same time.
......@@ -37,7 +88,7 @@
(potentially) bad packets to a nameserver and prints the responses.
(Trac #703, git 1b666838b6c0fe265522b30971e878d9f0d21fde)
219. [func] ocean
219. [func] ocean
src/lib: move some dns related code out of asiolink library to
asiodns library
(Trac #751, git 262ac6c6fc61224d54705ed4c700dadb606fcb1c)
......@@ -47,9 +98,9 @@
(Trac #806, git 4e47d5f6b692c63c907af6681a75024450884a88)
217. [bug] jerry
src/lib/dns/python: Use a signed version of larger size of integer and
perform more strict range checks with PyArg_ParseTuple() in case of
overflows.
src/lib/dns/python: Use a signed version of larger size of
integer and perform more strict range checks with
PyArg_ParseTuple() in case of overflows.
(Trac #363, git ce281e646be9f0f273229d94ccd75bf7e08d17cf)
216. [func] vorner
......@@ -1071,7 +1122,7 @@ bind10-devel-20100701 released on July 1, 2010
55. [bug] shane
bin/xfrout: xfrout exception on Ctrl-C now no longer generates
exception for 'Interrupted system call'
(Track #136, svn r2147)
(Trac #136, svn r2147)
54. [bug] zhanglikun
bin/xfrout: Enable b10-xfrout can be launched in source
......
......@@ -374,6 +374,79 @@ if test "$lcov" != "no"; then
fi
AC_SUBST(USE_LCOV)
# Check for Botan
botan_path="yes"
AC_ARG_WITH([botan],
AC_HELP_STRING([--with-botan=PATH],
[specify exact directory of Botan library]),
[botan_path="$withval"])
if test "${botan_path}" == "no" ; then
AC_MSG_ERROR([Need botan for libcryptolink])
fi
if test "${botan_path}" != "yes" ; then
if test -x "${botan_path}/bin/botan-config" ; then
BOTAN_CONFIG="${botan_path}/bin/botan-config"
else
AC_MSG_ERROR([${botan_path}/bin/botan-config not found])
fi
else
AC_PATH_PROG([BOTAN_CONFIG], [botan-config])
fi
if test -x "${BOTAN_CONFIG}" ; then
BOTAN_LDFLAGS=`${BOTAN_CONFIG} --libs`
# We expect botan-config --libs to contain -L<path_to_libbotan>, but
# this is not always the case. As a heuristics workaround we add
# -L`botan-config --prefix/lib` in this case. Same for BOTAN_INCLUDES
# (but using include instead of lib) below.
echo ${BOTAN_LDFLAGS} | grep -- -L > /dev/null || \
BOTAN_LDFLAGS="-L`${BOTAN_CONFIG} --prefix`/lib ${BOTAN_LDFLAGS}"
BOTAN_INCLUDES=`${BOTAN_CONFIG} --cflags`
echo ${BOTAN_INCLUDES} | grep -- -I > /dev/null || \
BOTAN_INCLUDES="-I`${BOTAN_CONFIG} --prefix`/include ${BOTAN_INCLUDES}"
# See python_rpath for some info on why we do this
if test $rpath_available = yes; then
BOTAN_RPATH=
for flag in ${BOTAN_LDFLAGS}; do
BOTAN_RPATH="${BOTAN_RPATH} `echo $flag | sed -ne 's/^\(\-L\)/-R/p'`"
done
AC_SUBST(BOTAN_RPATH)
# According to the libtool manual, it should be sufficient if we
# specify the "-R libdir" in our wrapper library of botan (no other
# programs will need libbotan directly); "libdir" should be added to
# the program's binary image. But we've seen in our build environments
# that (some versions of?) libtool doesn't propagate -R as documented,
# and it caused a linker error at run time. To work around this, we
# also add the rpath to the global LDFLAGS.
LDFLAGS="$BOTAN_RPATH $LDFLAGS"
fi
AC_SUBST(BOTAN_LDFLAGS)
AC_SUBST(BOTAN_INCLUDES)
fi
CPPFLAGS_SAVED=$CPPFLAGS
CPPFLAGS="$BOTAN_INCLUDES $CPPFLAGS"
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$BOTAN_LDFLAGS $LDFLAGS"
AC_CHECK_HEADERS([botan/botan.h],,AC_MSG_ERROR([Missing required header files.]))
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([#include <botan/botan.h>
#include <botan/hash.h>
],
[using namespace Botan;
LibraryInitializer::initialize();
HashFunction *h = get_hash("MD5");
])],
[AC_MSG_RESULT([checking for Botan library... yes])],
[AC_MSG_RESULT([checking for Botan library... no])
AC_MSG_ERROR([Needs Botan library 1.8 or higher])]
)
CPPFLAGS=$CPPFLAGS_SAVED
LDFLAGS=$LDFLAGS_SAVED
#
# Configure Boost header path
#
......@@ -673,11 +746,8 @@ AC_CONFIG_FILES([Makefile
src/lib/config/Makefile
src/lib/config/tests/Makefile
src/lib/config/tests/testdata/Makefile
src/lib/util/Makefile
src/lib/util/io/Makefile
src/lib/util/io/tests/Makefile
src/lib/util/unittests/Makefile
src/lib/util/tests/Makefile
src/lib/cryptolink/Makefile
src/lib/cryptolink/tests/Makefile
src/lib/dns/Makefile
src/lib/dns/tests/Makefile
src/lib/dns/tests/testdata/Makefile
......@@ -702,6 +772,11 @@ AC_CONFIG_FILES([Makefile
src/lib/cache/tests/Makefile
src/lib/server_common/Makefile
src/lib/server_common/tests/Makefile
src/lib/util/Makefile
src/lib/util/io/Makefile
src/lib/util/io/tests/Makefile
src/lib/util/unittests/Makefile
src/lib/util/tests/Makefile
tests/Makefile
tests/system/Makefile
tests/tools/Makefile
......@@ -736,9 +811,6 @@ AC_OUTPUT([doc/version.ent
src/bin/stats/stats-httpd-xml.tpl
src/bin/stats/stats-httpd-xsd.tpl
src/bin/stats/stats-httpd-xsl.tpl
src/bin/stats/run_b10-stats.sh
src/bin/stats/run_b10-stats-httpd.sh
src/bin/stats/tests/stats_test
src/bin/bind10/bind10.py
src/bin/bind10/run_bind10.sh
src/bin/bind10/tests/bind10_test.py
......@@ -777,9 +849,6 @@ AC_OUTPUT([doc/version.ent
chmod +x src/bin/xfrin/run_b10-xfrin.sh
chmod +x src/bin/xfrout/run_b10-xfrout.sh
chmod +x src/bin/zonemgr/run_b10-zonemgr.sh
chmod +x src/bin/stats/tests/stats_test
chmod +x src/bin/stats/run_b10-stats.sh
chmod +x src/bin/stats/run_b10-stats-httpd.sh
chmod +x src/bin/bind10/run_bind10.sh
chmod +x src/bin/cmdctl/tests/cmdctl_test
chmod +x src/bin/xfrin/tests/xfrin_test
......@@ -818,12 +887,15 @@ Flags:
DEFS: $DEFS
CPPFLAGS: $CPPFLAGS
CXXFLAGS: $CXXFLAGS
LDFLAGS: $LDFLAGS
B10_CXXFLAGS: $B10_CXXFLAGS
dnl includes too
Python: ${PYTHON_INCLUDES}
${PYTHON_LDFLAGS}
${PYTHON_LIB}
Boost: ${BOOST_INCLUDES}
Botan: ${BOTAN_INCLUDES}
${BOTAN_LDFLAGS}
SQLite: $SQLITE_CFLAGS
$SQLITE_LIBS
......
......@@ -568,11 +568,12 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = ../src/lib/cc ../src/lib/config ../src/lib/dns \
../src/lib/exceptions ../src/lib/datasrc ../src/bin/auth \
../src/bin/resolver ../src/lib/bench ../src/lib/log ../src/lib/asiolink/ \
../src/lib/nsas ../src/lib/testutils ../src/lib/cache \
../src/lib/server_common/ ../src/bin/sockcreator/ ../src/lib/util/
INPUT = ../src/lib/cc ../src/lib/config \
../src/lib/cryptolink ../src/lib/dns ../src/lib/datasrc \
../src/bin/auth ../src/bin/resolver ../src/lib/bench \
../src/lib/log ../src/lib/asiolink/ ../src/lib/nsas \
../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \
../src/bin/sockcreator/ ../src/lib/util/
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
......
......@@ -91,10 +91,6 @@ AuthCountersImpl::submitStatistics() const {
const int seq =
statistics_session_->group_sendmsg(statistics_element, "Stats");
isc::data::ConstElementPtr env, answer;
if (verbose_mode_) {
std::cerr << "[b10-auth] "
<< "send statistics data" << std::endl;
}
// TODO: parse and check response from statistics module
// currently it just returns empty message
statistics_session_->group_recvmsg(env, answer, false, seq);
......
......@@ -18,7 +18,6 @@ CLEANFILES = *.gcno *.gcda
TESTS =
if HAVE_GTEST
BUILT_SOURCES = ../spec_config.h
TESTS += run_unittests
run_unittests_SOURCES = $(top_srcdir)/src/lib/dns/tests/unittest_util.h
run_unittests_SOURCES += $(top_srcdir)/src/lib/dns/tests/unittest_util.cc
......@@ -28,7 +27,6 @@ run_unittests_SOURCES += ../change_user.h ../change_user.cc
run_unittests_SOURCES += ../auth_config.h ../auth_config.cc
run_unittests_SOURCES += ../command.h ../command.cc
run_unittests_SOURCES += ../common.h ../common.cc
run_unittests_SOURCES += ../spec_config.h
run_unittests_SOURCES += ../statistics.h ../statistics.cc
run_unittests_SOURCES += auth_srv_unittest.cc
run_unittests_SOURCES += config_unittest.cc
......
......@@ -23,14 +23,14 @@ BIND10_PATH=@abs_top_builddir@/src/bin/bind10
PATH=@abs_top_builddir@/src/bin/msgq:@abs_top_builddir@/src/bin/auth:@abs_top_builddir@/src/bin/resolver:@abs_top_builddir@/src/bin/cfgmgr:@abs_top_builddir@/src/bin/cmdctl:@abs_top_builddir@/src/bin/stats:@abs_top_builddir@/src/bin/xfrin:@abs_top_builddir@/src/bin/xfrout:@abs_top_builddir@/src/bin/zonemgr:$PATH
export PATH
PYTHONPATH=@abs_top_builddir@/src/lib/python:@abs_top_builddir@/src/lib/dns/python/.libs:@abs_top_builddir@/src/lib/xfr/.libs:@abs_top_builddir@/src/lib/log/.libs
PYTHONPATH=@abs_top_builddir@/src/lib/python:@abs_top_builddir@/src/lib/dns/python/.libs:@abs_top_builddir@/src/lib/xfr/.libs:@abs_top_builddir@/src/lib/log/.libs:@abs_top_builddir@/src/lib/util/io/.libs
export PYTHONPATH
# If necessary (rare cases), explicitly specify paths to dynamic libraries
# required by loadable python modules.
SET_ENV_LIBRARY_PATH=@SET_ENV_LIBRARY_PATH@
if test $SET_ENV_LIBRARY_PATH = yes; then
@ENV_LIBRARY_PATH@=@abs_top_builddir@/src/lib/dns/.libs:@abs_top_builddir@/src/lib/exceptions/.libs:$@ENV_LIBRARY_PATH@
@ENV_LIBRARY_PATH@=@abs_top_builddir@/src/lib/dns/.libs:@abs_top_builddir@/src/lib/cryptolink/.libs:@abs_top_builddir@/src/lib/util/.libs:@abs_top_builddir@/src/lib/util/io/.libs:@abs_top_builddir@/src/lib/exceptions/.libs:$@ENV_LIBRARY_PATH@
export @ENV_LIBRARY_PATH@
fi
......
......@@ -41,7 +41,7 @@ if "B10_FROM_SOURCE" in os.environ:
DATA_PATH = os.environ["B10_FROM_SOURCE_LOCALSTATEDIR"]
else:
DATA_PATH = os.environ["B10_FROM_SOURCE"]
PLUGIN_PATH = [DATA_PATH + '/src/bin/cfgmgr/plugins']
PLUGIN_PATHS = [DATA_PATH + '/src/bin/cfgmgr/plugins']
else:
PREFIX = "@prefix@"
DATA_PATH = "@localstatedir@/@PACKAGE@".replace("${prefix}", PREFIX)
......
......@@ -10,17 +10,20 @@ endif
CLEANFILES = *.gcno *.gcda
bin_PROGRAMS = host
host_SOURCES = host.cc
host_LDADD = $(top_builddir)/src/lib/dns/libdns++.la
host_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
#man_MANS = host.1
#EXTRA_DIST = $(man_MANS) host.xml
#
#if ENABLE_MAN
#
#host.1: host.xml
# xsltproc --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/host.xml
#
#endif
bin_PROGRAMS = b10-host
b10_host_SOURCES = host.cc
b10_host_LDADD = $(top_builddir)/src/lib/dns/libdns++.la
b10_host_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
man_MANS = b10-host.1
EXTRA_DIST = $(man_MANS) b10-host.xml
.PHONY: man
if ENABLE_MAN
man: b10-host.1
b10-host.1: b10-host.xml
xsltproc --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/b10-host.xml
endif
Rewriting host(1) in C++ from scratch using BIND 10's libdns.
Rewriting host(1) in C++ from scratch using BIND 10's libdns++.
Initial functionality:
host _hostname_ [server]
By default, it looks up the A, AAAA, and MX record sets.
Note it doesn't use /etc/resolv.conf at this time.
The default name server used is 127.0.0.1.
-r disable recursive processing
-t _type_ specific query type
-v enable verbose output mode, including elapsed time
The bugs and incompatibilities are listed in the manual page
and in the source code.
'\" t
.\" Title: b10-host
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: May 4, 2011
.\" Manual: BIND10
.\" Source: BIND10
.\" Language: English
.\"
.TH "B10\-HOST" "1" "May 4, 2011" "BIND10" "BIND10"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
b10-host \- DNS lookup utility
.SH "SYNOPSIS"
.HP \w'\fBb10\-host\fR\ 'u
\fBb10\-host\fR [\fB\-a\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-d\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-r\fR] [\fB\-t\ \fR\fB\fItype\fR\fR] [\fB\-v\fR] [\fIname\fR] [\fB\fIserver\fR\fR]
.SH "DESCRIPTION"
.PP
The
\fBb10\-host\fR
utility does DNS lookups\&. Its initial goal is to be a
\fBhost\fR(1)
clone, but also add a few features useful for BIND 10 development testing\&.
.PP
By default, it looks up the A, AAAA, and MX record sets for the
\fIname\fR\&. Optionally, you may select a name server to query against by adding the
\fIserver\fR
argument\&.
.SH "OPTIONS"
.PP
The arguments are as follows:
.PP
\fB\-a\fR
.RS 4
Enable verbose mode and do a query for type ANY\&. (If the
\fB\-t\fR
option is also set, then the ANY query is not done, but it still uses verbose mode\&.)
.RE
.PP
\fB\-c \fR\fB\fIclass\fR\fR
.RS 4
Define the class for the query\&. The default is IN (Internet)\&.
.RE
.PP
\fB\-d\fR
.RS 4
Enable verbose output mode, including elapsed time in milliseconds\&. Verbose mode shows the header, question, answer, authority, and additional sections (if provided)\&. (Same as
\fB\-v\fR\&.)
.RE
.PP
\fB\-p \fR\fB\fIport\fR\fR
.RS 4
Select an alternative port for the query\&. This may be a number or a service name\&. The default is 53 (domain)\&. This is not a standard feature of
\fBhost\fR(1)\&.
.RE
.PP
\fB\-r\fR
.RS 4
Disable recursive processing by not setting the Recursion Desired flag in the query\&.
.RE
.PP
\fB\-t \fR\fB\fItype\fR\fR
.RS 4
Select a specific resource record type for the query\&. By default, it looks up the A, AAAA, and MX record sets\&.
(This overrides the
\fB\-a\fR
option\&.)
.RE
.PP
\fB\-v\fR
.RS 4
Same as
\fB\-d\fR
option\&.
.RE
.SH "COMPATIBILITY / BUGS"
.PP
\fBb10\-host\fR
does not do reverse lookups by default yet (by detecting if name is a IPv4 or IPv6 address)\&.
.PP
Unknown
\fB\-c\fR
class or
\fB\-t\fR
type causes
\fBb10\-host\fR
to Abort\&.
.PP
Not all types are supported yet for formatting\&. Not all switches are supported yet\&.
.PP
It doesn\'t use
/etc/resolv\&.conf
at this time\&. The default name server used is 127\&.0\&.0\&.1\&.
.PP
\fBb10\-host\fR
does not do reverse lookups by default yet (by detecting if name is a IPv4 or IPv6 address)\&.
.PP
\fB\-p\fR
is not a standard feature\&.
.SH "HISTORY"
.PP
The C++ version of
\fBb10\-host\fR
was started in October 2009 by Jeremy C\&. Reed of ISC\&. Its usage and output were based on the standard
\fBhost\fR
command\&.
.SH "COPYRIGHT"
.br
Copyright \(co 2011 Internet Systems Consortium, Inc. ("ISC")
.br
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- 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.
-->
<!-- $Id$ -->
<refentry>
<refentryinfo>
<date>May 4, 2011</date>
</refentryinfo>
<refmeta>
<refentrytitle>b10-host</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>BIND10</refmiscinfo>
</refmeta>
<refnamediv>
<refname>b10-host</refname>
<refpurpose>DNS lookup utility</refpurpose>
</refnamediv>
<docinfo>
<copyright>
<year>2011</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
<refsynopsisdiv>
<cmdsynopsis>
<command>b10-host</command>
<arg><option>-a</option></arg>
<arg><option>-c <replaceable>class</replaceable></option></arg>
<arg><option>-d</option></arg>
<arg><option>-p <replaceable>port</replaceable></option></arg>
<arg><option>-r</option></arg>
<arg><option>-t <replaceable>type</replaceable></option></arg>
<arg><option>-v</option></arg>
<arg><replaceable>name</replaceable></arg>
<arg><option><replaceable>server</replaceable></option></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>DESCRIPTION</title>
<para>
The <command>b10-host</command> utility does DNS lookups.
Its initial goal is to be a
<citerefentry><refentrytitle>host</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>
clone, but also add a few features useful for BIND 10 development
testing.
</para>
<para>
By default, it looks up the A, AAAA, and MX record sets for the
<replaceable>name</replaceable>.
Optionally, you may select a name server to query against by adding
the <replaceable>server</replaceable> argument.
</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
<para>The arguments are as follows:</para>
<variablelist>
<varlistentry>
<term><option>-a</option></term>
<listitem><para>
Enable verbose mode and do a query for type ANY.
(If the <option>-t</option> option is also set, then the
ANY query is not done, but it still uses verbose mode.)
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c <replaceable>class</replaceable></option></term>
<listitem><para>
Define the class for the query.
The default is IN (Internet).
<!-- TODO: bug if class is unknown causes seg fault and possible core dump -->
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem><para>
Enable verbose output mode, including elapsed time in
milliseconds.
Verbose mode shows the header, question, answer, authority,
and additional sections (if provided).
(Same as <option>-v</option>.)
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p <replaceable>port</replaceable></option></term>
<listitem><para>
Select an alternative port for the query.
This may be a number or a service name.
The default is 53 (domain).
This is not a standard feature of
<citerefentry><refentrytitle>host</refentrytitle>
<manvolnum>1</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<listitem><para>
Disable recursive processing by not setting the
Recursion Desired flag in the query.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t <replaceable>type</replaceable></option></term>
<listitem><para>
Select a specific resource record type for the query.
By default, it looks up the A, AAAA, and MX record sets.
<!-- TODO: bug if class is unknown causes seg fault and possible core dump -->
(This overrides the <option>-a</option> option.)
</para></listitem>
</varlistentry>