Commit e34ad6d4 authored by Marcin Siodelski's avatar Marcin Siodelski

[1959] Merge branch 'master' into trac1959

Merge needed to get the StatsMgr.h and recent changes to DHCP Lib.

Conflicts:
	tests/tools/perfdhcp/Makefile.am
	tests/tools/perfdhcp/tests/Makefile.am
        src/lib/dhcp/iface_mgr.cc
parents 8e7ce816 ad2d728d
...@@ -35,3 +35,4 @@ TAGS ...@@ -35,3 +35,4 @@ TAGS
/coverage-cpp-html /coverage-cpp-html
/dns++.pc /dns++.pc
/report.info /report.info
/logger_lockfile
459. [func] tomek
b10-dhcp6: DHCPv6 server component is now integrated into
BIND10 framework. It can be started from BIND10 (using bindctl)
and can receive commands. The only supported command for now
is 'Dhcp6 shutdown'.
b10-dhcp4: Command line-switch '-s' to disable msgq was added.
b10-dhcp6: Command line-switch '-s' to disable msgq was added.
(Trac #1708, git e0d7c52a71414f4de1361b09d3c70431c96daa3f)
458. [build]* jinmei
BIND 10 now relies on Boost offset_ptr, which caused some new
portability issues. Such issues are detected at ./configure time.
If ./configure stops due to this, try the following workaround:
- If it's about the use of mutable for a reference with clang++,
upgrade Boost version to 1.44 or higher, or try a different
compiler (e.g. g++ generally seems to be free from this issue)
- If it's about the use of "variadic templates", specify
--without-werror so the warning won't be promoted to an error.
Specifying BOOST_NO_USER_CONFIG in CXXFLAGS may also work
(which would be the case if Boost is installed via pkgsrc)
(Trac #2147, git 30061d1139aad8716e97d6b620c259752fd0a3cd)
457. [build]* muks
BIND 10 library names now have a "b10-" prefix. This is to avoid
clashes with other similarly named libraries on the system.
(Trac #2071, git ac20a00c28069804edc0a36050995df52f601efb)
456. [build]* muks
BIND 10 now compiles against log4cplus-1.1.0 (RC releases)
also. Note: some older versions of log4cplus don't work any more;
known oldest workable version is 1.0.4. Thanks to John Lumby for
sending a patch.
(Trac #2169, git 7d7e5269d57451191c0aef1b127d292d3615fe2c)
455. [func]* vorner
The server now uses newer API for data sources. This would be an
internal change, however, the data sources are now configured
differently. Please, migrate your configuration to the top-level
"data_sources" module.
(Trac #1976, git 0d4685b3e7603585afde1b587cbfefdfaf6a1bb3)
454. [bug] jelte 454. [bug] jelte
b10-cfgmgr now loads its configuration check plugins directly from b10-cfgmgr now loads its configuration check plugins directly from
the plugin search path, as opposed to importing them from the the plugin search path, as opposed to importing them from the
...@@ -13,7 +54,7 @@ ...@@ -13,7 +54,7 @@
(Trac #1986, git bd6b0a5ed3481f78fb4e5cb0b18c7b6e5920f9f8) (Trac #1986, git bd6b0a5ed3481f78fb4e5cb0b18c7b6e5920f9f8)
452. [func]* muks 452. [func]* muks
b10-showtech: An initial implementation of the b10-showtech tool isc-sysinfo: An initial implementation of the isc-sysinfo tool
is now available. It gathers and outputs system information which is now available. It gathers and outputs system information which
can be used by future tech support staff. can be used by future tech support staff.
(Trac #2062, git 144e80212746f8d55e6a59edcf689fec9f32ae95) (Trac #2062, git 144e80212746f8d55e6a59edcf689fec9f32ae95)
......
...@@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS} ...@@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
# ^^^^^^^^ This has to be the first line and cannot come later in this # ^^^^^^^^ This has to be the first line and cannot come later in this
# Makefile.am due to some bork in some versions of autotools. # Makefile.am due to some bork in some versions of autotools.
SUBDIRS = compatcheck doc src tests SUBDIRS = compatcheck doc . src tests
USE_LCOV=@USE_LCOV@ USE_LCOV=@USE_LCOV@
LCOV=@LCOV@ LCOV=@LCOV@
GENHTML=@GENHTML@ GENHTML=@GENHTML@
...@@ -427,3 +427,9 @@ pkgconfigdir = $(libdir)/pkgconfig ...@@ -427,3 +427,9 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = dns++.pc pkgconfig_DATA = dns++.pc
CLEANFILES = $(abs_top_builddir)/logger_lockfile CLEANFILES = $(abs_top_builddir)/logger_lockfile
if HAVE_GTEST_SOURCE
noinst_LIBRARIES = libgtest.a
libgtest_a_CXXFLAGS = $(GTEST_INCLUDES) $(AM_CXXFLAGS)
nodist_libgtest_a_SOURCES = $(GTEST_SOURCE)/src/gtest-all.cc
endif
...@@ -454,20 +454,30 @@ AC_SUBST(PYCOVERAGE) ...@@ -454,20 +454,30 @@ AC_SUBST(PYCOVERAGE)
AC_SUBST(PYCOVERAGE_RUN) AC_SUBST(PYCOVERAGE_RUN)
AC_SUBST(USE_PYCOVERAGE) AC_SUBST(USE_PYCOVERAGE)
enable_gtest="no"
GTEST_INCLUDES=
AC_ARG_WITH([gtest-source],
[AS_HELP_STRING([--with-gtest-source=PATH],
[location of the Googletest source, defaults to /usr/src/gtest])],
[enable_gtest="yes" ; GTEST_SOURCE="$withval"],
[GTEST_SOURCE="/usr/src/gtest"])
AC_ARG_WITH([gtest],
[AS_HELP_STRING([--with-gtest=PATH],
[specify a path to gtest header files (PATH/include) and library (PATH/lib)])],
[gtest_path="$withval"; enable_gtest="yes"], [gtest_path="no"])
AC_ARG_WITH(lcov, AC_ARG_WITH(lcov,
[ --with-lcov[=PROGRAM] enable gtest and coverage target using the specified lcov], lcov="$withval", lcov="no") [ --with-lcov[=PROGRAM] enable gtest and coverage target using the specified lcov], lcov="$withval", lcov="no")
AC_ARG_WITH(gtest,
[ --with-gtest=PATH specify a path to gtest header files (PATH/include) and library (PATH/lib)],
gtest_path="$withval", gtest_path="no")
USE_LCOV="no" USE_LCOV="no"
if test "$lcov" != "no"; then if test "$lcov" != "no"; then
# force gtest if not set # force gtest if not set
if test "$gtest_path" = "no"; then if test "$enable_gtest" = "no"; then
# AC_MSG_ERROR("lcov needs gtest for test coverage report") # AC_MSG_ERROR("lcov needs gtest for test coverage report")
AC_MSG_NOTICE([gtest support is now enabled, because used by coverage tests]) AC_MSG_NOTICE([gtest support is now enabled, because used by coverage tests])
gtest_path="yes" enable_gtest="yes"
fi fi
if test "$lcov" != "yes"; then if test "$lcov" != "yes"; then
LCOV=$lcov LCOV=$lcov
...@@ -799,6 +809,17 @@ AC_TRY_COMPILE([ ...@@ -799,6 +809,17 @@ AC_TRY_COMPILE([
CPPFLAGS_BOOST_THREADCONF="-DBOOST_DISABLE_THREADS=1"], CPPFLAGS_BOOST_THREADCONF="-DBOOST_DISABLE_THREADS=1"],
[AC_MSG_RESULT(yes)]) [AC_MSG_RESULT(yes)])
# Boost offset_ptr is required in one library (not optional right now), and
# it's known it doesn't compile on some platforms, depending on boost version,
# its local configuration, and compiler.
AC_MSG_CHECKING([Boost offset_ptr compiles])
AC_TRY_COMPILE([
#include <boost/interprocess/offset_ptr.hpp>
],,
[AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_MSG_ERROR([Failed to compile a required header file. Try upgrading Boost to 1.44 or higher (when using clang++) or specifying --without-werror. See the ChangeLog entry for Trac no. 2147 for more details.])])
CPPFLAGS="$CPPFLAGS_SAVES $CPPFLAGS_BOOST_THREADCONF" CPPFLAGS="$CPPFLAGS_SAVES $CPPFLAGS_BOOST_THREADCONF"
AC_SUBST(BOOST_INCLUDES) AC_SUBST(BOOST_INCLUDES)
...@@ -813,98 +834,138 @@ AC_SUBST(MULTITHREADING_FLAG) ...@@ -813,98 +834,138 @@ AC_SUBST(MULTITHREADING_FLAG)
# #
# Check availability of gtest, which will be used for unit tests. # Check availability of gtest, which will be used for unit tests.
# #
if test "$gtest_path" != "no" GTEST_LDFLAGS=
then GTEST_LDADD=
DISTCHECK_GTEST_CONFIGURE_FLAG="--with-gtest=\"$gtest_path\"" # TODO: set DISTCHECK_GTEST_CONFIGURE_FLAG for --with-gtest too
if test "$gtest_path" != "yes"; then DISTCHECK_GTEST_CONFIGURE_FLAG=
GTEST_PATHS=$gtest_path
if test -x "${gtest_path}/bin/gtest-config" ; then if test "x$enable_gtest" = "xyes" ; then
GTEST_CONFIG="${gtest_path}/bin/gtest-config"
fi if test -n "$with_gtest_source" ; then
else
AC_PATH_PROG([GTEST_CONFIG], [gtest-config]) if test "x$GTEST_SOURCE" = "xyes" ; then
fi
if test -x "${GTEST_CONFIG}" ; then : AC_MSG_CHECKING([for gtest source])
# using cppflags instead of cxxflags # If not specified, try some common paths.
GTEST_INCLUDES=`${GTEST_CONFIG} --cppflags` GTEST_SOURCE=
GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` for d in /usr/src/gtest /usr/local /usr/pkg /opt /opt/local ; do
GTEST_LDADD=`${GTEST_CONFIG} --libs` if test -f $d/src/gtest-all.cc -a $d/src/gtest_main.cc; then
GTEST_FOUND="true" GTEST_SOURCE=$d
else AC_MSG_RESULT([$GTEST_SOURCE])
AC_MSG_WARN([Unable to locate Google Test gtest-config.]) break
if test -z "${GTEST_PATHS}" ; then fi
GTEST_PATHS="/usr /usr/local" done
fi if test -z $GTEST_SOURCE ; then
GTEST_FOUND="false" AC_MSG_ERROR([no gtest source but it was selected])
fi fi
if test "${GTEST_FOUND}" != "true"; then else
GTEST_FOUND="false" AC_CHECK_FILES([$GTEST_SOURCE/src/gtest-all.cc]
for dir in $GTEST_PATHS; do [$GTEST_SOURCE/src/gtest_main.cc],
if test -f "$dir/include/gtest/gtest.h"; then [have_gtest_source=yes],
GTEST_INCLUDES="-I$dir/include" [AC_MSG_ERROR([no gtest source at $GTEST_SOURCE])])
GTEST_LDFLAGS="-L$dir/lib" fi
GTEST_LDADD="-lgtest" have_gtest_source=yes
GTEST_FOUND="true" GTEST_LDFLAGS="\$(top_builddir)/libgtest.a"
# There is no gtest-config script on this DISTCHECK_GTEST_CONFIGURE_FLAG="--with-gtest-source=$GTEST_SOURCE"
# system, which is supposed to inform us GTEST_INCLUDES="-I$GTEST_SOURCE -I$GTEST_SOURCE/include"
# whether we need pthreads as well (a # See $GTEST_SOURCE/include/gtest/internal/gtest-port.h
# gtest compile-time option). So we still # about GTEST_HAS_PTHREAD.
# need to test that manually. case "$host" in
CPPFLAGS_SAVED="$CPPFLAGS" *-solaris*|*-linux*|*-hpux*)
CPPFLAGS="$CPPFLAGS $GTEST_INCLUDES" GTEST_LDADD="$GTEST_LDADD $PTHREAD_LDFLAGS"
LDFLAGS_SAVED="$LDFLAGS" ;;
LDFLAGS="$LDFLAGS $GTEST_LDFLAGS" esac
LIBS_SAVED=$LIBS fi
LIBS="$LIBS $GTEST_LDADD"
AC_MSG_CHECKING([Checking whether gtest tests need pthreads]) if test "$gtest_path" != "no" ; then
# First try to compile without pthreads if test "$gtest_path" != "yes"; then
AC_TRY_LINK([ GTEST_PATHS=$gtest_path
#include <gtest/gtest.h> if test -x "${gtest_path}/bin/gtest-config" ; then
],[ GTEST_CONFIG="${gtest_path}/bin/gtest-config"
int i = 0; fi
char* c = NULL; else
::testing::InitGoogleTest(&i, &c); AC_PATH_PROG([GTEST_CONFIG], [gtest-config])
return (0); fi
], if test -x "${GTEST_CONFIG}" ; then :
[ AC_MSG_RESULT(no) ], # using cppflags instead of cxxflags
[ GTEST_INCLUDES=`${GTEST_CONFIG} --cppflags`
LIBS="$SAVED_LIBS $GTEST_LDADD $PTHREAD_LDFLAGS" GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
# Now try to compile with pthreads GTEST_LDADD=`${GTEST_CONFIG} --libs`
AC_TRY_LINK([ GTEST_FOUND="true"
#include <gtest/gtest.h> else
],[ AC_MSG_WARN([Unable to locate Google Test gtest-config.])
int i = 0; if test -z "${GTEST_PATHS}" ; then
char* c = NULL; GTEST_PATHS="/usr /usr/local"
::testing::InitGoogleTest(&i, &c); fi
return (0); GTEST_FOUND="false"
], fi
[ AC_MSG_RESULT(yes) if test "${GTEST_FOUND}" != "true"; then
GTEST_LDADD="$GTEST_LDADD $PTHREAD_LDFLAGS" GTEST_FOUND="false"
], for dir in $GTEST_PATHS; do
# Apparently we can't compile it at all if test -f "$dir/include/gtest/gtest.h"; then
[ AC_MSG_ERROR(unable to compile with gtest) ]) GTEST_INCLUDES="-I$dir/include"
]) GTEST_LDFLAGS="-L$dir/lib"
CPPFLAGS=$CPPFLAGS_SAVED GTEST_LDADD="-lgtest"
LDFLAGS=$LDFLAGS_SAVED GTEST_FOUND="true"
LIBS=$LIBS_SAVED # There is no gtest-config script on this
break # system, which is supposed to inform us
fi # whether we need pthreads as well (a
done # gtest compile-time option). So we still
fi # need to test that manually.
if test "${GTEST_FOUND}" != "true"; then CPPFLAGS_SAVED="$CPPFLAGS"
AC_MSG_ERROR([Cannot find gtest in: $GTEST_PATHS]) CPPFLAGS="$CPPFLAGS $GTEST_INCLUDES"
fi LDFLAGS_SAVED="$LDFLAGS"
else LDFLAGS="$LDFLAGS $GTEST_LDFLAGS"
GTEST_INCLUDES= LIBS_SAVED=$LIBS
GTEST_LDFLAGS= LIBS="$LIBS $GTEST_LDADD"
GTEST_LDADD= AC_MSG_CHECKING([Checking whether gtest tests need pthreads])
DISTCHECK_GTEST_CONFIGURE_FLAG= # First try to compile without pthreads
AC_TRY_LINK([
#include <gtest/gtest.h>
],[
int i = 0;
char* c = NULL;
::testing::InitGoogleTest(&i, &c);
return (0);
],
[ AC_MSG_RESULT(no) ],
[
LIBS="$SAVED_LIBS $GTEST_LDADD $PTHREAD_LDFLAGS"
# Now try to compile with pthreads
AC_TRY_LINK([
#include <gtest/gtest.h>
],[
int i = 0;
char* c = NULL;
::testing::InitGoogleTest(&i, &c);
return (0);
],
[ AC_MSG_RESULT(yes)
GTEST_LDADD="$GTEST_LDADD $PTHREAD_LDFLAGS"
],
# Apparently we can't compile it at all
[ AC_MSG_ERROR(unable to compile with gtest) ])
])
CPPFLAGS=$CPPFLAGS_SAVED
LDFLAGS=$LDFLAGS_SAVED
LIBS=$LIBS_SAVED
break
fi
done
fi
if test "${GTEST_FOUND}" != "true"; then
AC_MSG_ERROR([Cannot find gtest in: $GTEST_PATHS])
fi
fi
fi fi
AM_CONDITIONAL(HAVE_GTEST, test $gtest_path != "no") AM_CONDITIONAL(HAVE_GTEST, test $enable_gtest != "no")
AM_CONDITIONAL(HAVE_GTEST_SOURCE, test "X$have_gtest_source" = "Xyes")
AC_SUBST(DISTCHECK_GTEST_CONFIGURE_FLAG) AC_SUBST(DISTCHECK_GTEST_CONFIGURE_FLAG)
AC_SUBST(GTEST_INCLUDES) AC_SUBST(GTEST_INCLUDES)
AC_SUBST(GTEST_LDFLAGS) AC_SUBST(GTEST_LDFLAGS)
AC_SUBST(GTEST_LDADD) AC_SUBST(GTEST_LDADD)
AC_SUBST(GTEST_SOURCE)
dnl check for pkg-config itself so we don't try the m4 macro without pkg-config dnl check for pkg-config itself so we don't try the m4 macro without pkg-config
AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes, no) AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes, no)
...@@ -1018,6 +1079,7 @@ AC_CONFIG_FILES([Makefile ...@@ -1018,6 +1079,7 @@ AC_CONFIG_FILES([Makefile
src/bin/msgq/tests/Makefile src/bin/msgq/tests/Makefile
src/bin/auth/Makefile src/bin/auth/Makefile
src/bin/auth/tests/Makefile src/bin/auth/tests/Makefile
src/bin/auth/tests/testdata/Makefile
src/bin/auth/benchmarks/Makefile src/bin/auth/benchmarks/Makefile
src/bin/ddns/Makefile src/bin/ddns/Makefile
src/bin/ddns/tests/Makefile src/bin/ddns/tests/Makefile
...@@ -1027,7 +1089,7 @@ AC_CONFIG_FILES([Makefile ...@@ -1027,7 +1089,7 @@ AC_CONFIG_FILES([Makefile
src/bin/dhcp4/tests/Makefile src/bin/dhcp4/tests/Makefile
src/bin/resolver/Makefile src/bin/resolver/Makefile
src/bin/resolver/tests/Makefile src/bin/resolver/tests/Makefile
src/bin/showtech/Makefile src/bin/sysinfo/Makefile
src/bin/sockcreator/Makefile src/bin/sockcreator/Makefile
src/bin/sockcreator/tests/Makefile src/bin/sockcreator/tests/Makefile
src/bin/xfrin/Makefile src/bin/xfrin/Makefile
...@@ -1142,6 +1204,7 @@ AC_CONFIG_FILES([Makefile ...@@ -1142,6 +1204,7 @@ AC_CONFIG_FILES([Makefile
AC_OUTPUT([doc/version.ent AC_OUTPUT([doc/version.ent
src/bin/cfgmgr/b10-cfgmgr.py src/bin/cfgmgr/b10-cfgmgr.py
src/bin/cfgmgr/tests/b10-cfgmgr_test.py src/bin/cfgmgr/tests/b10-cfgmgr_test.py
src/bin/cfgmgr/plugins/datasrc.spec.pre
src/bin/cmdctl/cmdctl.py src/bin/cmdctl/cmdctl.py
src/bin/cmdctl/run_b10-cmdctl.sh src/bin/cmdctl/run_b10-cmdctl.sh
src/bin/cmdctl/tests/cmdctl_test src/bin/cmdctl/tests/cmdctl_test
...@@ -1164,7 +1227,7 @@ AC_OUTPUT([doc/version.ent ...@@ -1164,7 +1227,7 @@ AC_OUTPUT([doc/version.ent
src/bin/zonemgr/zonemgr.spec.pre src/bin/zonemgr/zonemgr.spec.pre
src/bin/zonemgr/tests/zonemgr_test src/bin/zonemgr/tests/zonemgr_test
src/bin/zonemgr/run_b10-zonemgr.sh src/bin/zonemgr/run_b10-zonemgr.sh
src/bin/showtech/showtech.py src/bin/sysinfo/sysinfo.py
src/bin/stats/stats.py src/bin/stats/stats.py
src/bin/stats/stats_httpd.py src/bin/stats/stats_httpd.py
src/bin/bind10/bind10_src.py src/bin/bind10/bind10_src.py
...@@ -1306,12 +1369,12 @@ Features: ...@@ -1306,12 +1369,12 @@ Features:
$enable_features $enable_features
Developer: Developer:
Google Tests: $gtest_path Google Tests: $enable_gtest
Valgrind: $found_valgrind Valgrind: $found_valgrind
C++ Code Coverage: $USE_LCOV C++ Code Coverage: $USE_LCOV
Python Code Coverage: $USE_PYCOVERAGE Python Code Coverage: $USE_PYCOVERAGE
Logger checks: $enable_logger_checks Logger checks: $enable_logger_checks
Generate Manuals: $enable_man Generate Manuals: $enable_man
END END
......
...@@ -8,4 +8,4 @@ Description: BIND 10 DNS library ...@@ -8,4 +8,4 @@ Description: BIND 10 DNS library
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@
Requires: botan-1.8 Requires: botan-1.8
Cflags: -I${includedir}/@PACKAGE_NAME@ Cflags: -I${includedir}/@PACKAGE_NAME@
Libs: -L${libdir} -ldns++ -lcryptolink -lutil -lexceptions -lm Libs: -L${libdir} -lb10-dns++ -lb10-cryptolink -lb10-util -lb10-exceptions -lm
...@@ -573,7 +573,8 @@ WARN_LOGFILE = ...@@ -573,7 +573,8 @@ WARN_LOGFILE =
# with spaces. # with spaces.
INPUT = ../src/lib/exceptions ../src/lib/cc \ INPUT = ../src/lib/exceptions ../src/lib/cc \
../src/lib/config ../src/lib/cryptolink ../src/lib/dns ../src/lib/datasrc \ ../src/lib/config ../src/lib/cryptolink ../src/lib/dns \
../src/lib/datasrc ../src/lib/datasrc/memory \
../src/bin/auth ../src/bin/resolver ../src/lib/bench ../src/lib/log \ ../src/bin/auth ../src/bin/resolver ../src/lib/bench ../src/lib/log \
../src/lib/log/compiler ../src/lib/asiolink/ ../src/lib/nsas \ ../src/lib/log/compiler ../src/lib/asiolink/ ../src/lib/nsas \
../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \ ../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \
......
...@@ -72,11 +72,13 @@ ...@@ -72,11 +72,13 @@
* DHCPv6 server component does not support relayed traffic yet, as * DHCPv6 server component does not support relayed traffic yet, as
* support for relay decapsulation is not implemented yet. * support for relay decapsulation is not implemented yet.
* *
* DHCPv6 server component does not listen to BIND10 message queue.
*
* DHCPv6 server component does not use BIND10 logging yet. * DHCPv6 server component does not use BIND10 logging yet.
* *
* DHCPv6 server component is not integrated with boss yet. * @section dhcpv6Session BIND10 message queue integration
*
* DHCPv4 server component is now integrated with BIND10 message queue.
* It follows the same principle as DHCPv4. See \ref dhcpv4Session for
* details.
* *
* @page libdhcp libdhcp++ * @page libdhcp libdhcp++
* *
......
This diff is collapsed.
This diff is collapsed.
...@@ -1485,134 +1485,165 @@ can use various data source backends. ...@@ -1485,134 +1485,165 @@ can use various data source backends.
</section> </section>
<section> <section id='datasrc'>
<title>Data Source Backends</title> <title>Data Source Backends</title>
<para>
Bind 10 has the concept of data sources. A data source is a place
where authoritative zone data reside and where they can be served
from. This can be a master file, a database or something completely
different.
</para>
<para>
Once a query arrives, <command>b10-auth</command> goes through a
configured list of data sources and finds the one containing a best
matching zone. From the equally good ones, the first one is taken.
This data source is then used to answer the query.
</para>
<note><para> <note><para>
For the development prototype release, <command>b10-auth</command> In the development prototype release, <command>b10-auth</command>
supports a SQLite3 data source backend and in-memory data source can serve data from a SQLite3 data source backend and from master
backend. files.
Upcoming versions will be able to use multiple different Upcoming versions will be able to use multiple different
data sources, such as MySQL and Berkeley DB. data sources, such as MySQL and Berkeley DB.
</para></note> </para></note>
<para> <para>
By default, the SQLite3 backend uses the data file located at The configuration is located in data_sources/classes. Each item there
represents one RR class and a list used to answer queries for that
class. The default contains two classes. The CH class contains a static
data source &mdash; one that serves things like
<quote>AUTHORS.BIND.</quote>. The IN class contains single SQLite3
data source with database file located at
<filename>/usr/local/var/bind10-devel/zone.sqlite3</filename>. <filename>/usr/local/var/bind10-devel/zone.sqlite3</filename>.
(The full path is what was defined at build configure time for
<option>--localstatedir</option>.
The default is <filename>/usr/local/var/</filename>.)
This data file location may be changed by defining the
<quote>database_file</quote> configuration.
</para> </para>
<section id="in-memory-datasource"> <para>
<title>In-memory Data Source</title> Each data source has several options. The first one is
<varname>type</varname>, which specifies the type of data source to
<para> use. Valid types include the ones listed below, but bind10 uses
<!-- How to configure it. --> dynamically loaded modules for them, so there may be more in your
The following commands to <command>bindctl</command> case. This option is mandatory.
provide an example of configuring an in-memory data </para>
source containing the <quote>example.com</quote> zone