Commit 6fe86386 authored by Mukund Sivaraman's avatar Mukund Sivaraman
Browse files

Merge branch 'master' into trac2503

Conflicts:
	src/lib/datasrc/tests/memory/testdata/Makefile.am
parents 3de3abb8 cbb1e342
522. [func]* jelte
Configuration of TSIG keys for b10-xfrin has changed; instead of
specifying the full TSIG key (<name>:<base64>:<algo>) it now expects
just the name, and uses the global TSIG Key Ring like all the other
components (configuration list /tsig_keys/keys).
Note: this is not automatically updated, so if you use TSIG in
xfrin, you need to update your configuration.
(Trac #1351, git e65b7b36f60f14b7abe083da411e6934cdfbae7a)
521. [func] marcin
Implemented definitions for DHCPv6 standard options identified
by codes up to 48. These definitions are now used by the DHCPv6
server to create instances of options being sent to a client.
(Trac #2491, git 0a4faa07777189ed9c25211987a1a9b574015a95)
520. [func] jelte
The system no longer prints initial log messages to stdout
regardless of what logging configuration is present, but it
temporarily stores any log messages until the configuration is
processed. If there is no specific configuration, or if the
configuration cannot be accessed, it will still fall back to stdout.
Note that there are still a few instances where output is printed,
these shall be addressed separately.
Note also that, currently, in case it falls back to stdout (such as
when it cannot connect to b10-cfgmgr), all log messages are always
printed (including debug messages), regardless of whether -v was
used. This shall also be addressed in a future change.
(Trac #2445, git 74a0abe5a6d10b28e4a3e360e87b129c232dea68)
519. [bug] muks
Fixed a problem in inmem NSEC lookup which caused returning an
incorrect NSEC record or (in rare cases) assert failures
when a non-existent domain was queried, which was a sub-domain of
a domain that existed.
(Trac #2504, git 835553eb309d100b062051f7ef18422d2e8e3ae4)
518. [func] stephen
Extend DHCP MySQL backend to handle IPv4 addresses.
(Trac #2404, git ce7db48d3ff5d5aad12b1da5e67ae60073cb2607)
517. [func] stephen
Added IOAddress::toBytes() to get byte representation of address.
Also added convenience methods for V4/V6 address determination.
(Trac #2396, git c23f87e8ac3ea781b38d688f8f7b58539f85e35a)
516. [bug] marcin
Fixed 'make distcheck' failure when running perfdhcp unit tests.
The unit tests used to read files from the folder specified
with the path relative to current folder, thus when the test was
run from a different folder the files could not be found.
(Trac #2479, git 4e8325e1b309f1d388a3055ec1e1df98c377f383)
515. [bug] jinmei 515. [bug] jinmei
The in-memory data source now accepts an RRSIG provided without The in-memory data source now accepts an RRSIG provided without
a covered RRset in loading. A subsequent query for its owner name a covered RRset in loading. A subsequent query for its owner name
......
...@@ -903,11 +903,12 @@ AC_SUBST(MULTITHREADING_FLAG) ...@@ -903,11 +903,12 @@ AC_SUBST(MULTITHREADING_FLAG)
# #
GTEST_LDFLAGS= GTEST_LDFLAGS=
GTEST_LDADD= GTEST_LDADD=
# TODO: set DISTCHECK_GTEST_CONFIGURE_FLAG for --with-gtest too
DISTCHECK_GTEST_CONFIGURE_FLAG= DISTCHECK_GTEST_CONFIGURE_FLAG=
if test "x$enable_gtest" = "xyes" ; then if test "x$enable_gtest" = "xyes" ; then
DISTCHECK_GTEST_CONFIGURE_FLAG="--with-gtest=$gtest_path"
if test -n "$with_gtest_source" ; then if test -n "$with_gtest_source" ; then
if test "x$GTEST_SOURCE" = "xyes" ; then if test "x$GTEST_SOURCE" = "xyes" ; then
...@@ -1375,6 +1376,7 @@ AC_OUTPUT([doc/version.ent ...@@ -1375,6 +1376,7 @@ AC_OUTPUT([doc/version.ent
src/lib/log/tests/console_test.sh src/lib/log/tests/console_test.sh
src/lib/log/tests/destination_test.sh src/lib/log/tests/destination_test.sh
src/lib/log/tests/init_logger_test.sh src/lib/log/tests/init_logger_test.sh
src/lib/log/tests/buffer_logger_test.sh
src/lib/log/tests/local_file_test.sh src/lib/log/tests/local_file_test.sh
src/lib/log/tests/logger_lock_test.sh src/lib/log/tests/logger_lock_test.sh
src/lib/log/tests/severity_test.sh src/lib/log/tests/severity_test.sh
......
...@@ -580,8 +580,8 @@ INPUT = ../src/lib/exceptions ../src/lib/cc \ ...@@ -580,8 +580,8 @@ INPUT = ../src/lib/exceptions ../src/lib/cc \
../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \ ../src/lib/testutils ../src/lib/cache ../src/lib/server_common/ \
../src/bin/sockcreator/ ../src/lib/util/ ../src/lib/util/io/ \ ../src/bin/sockcreator/ ../src/lib/util/ ../src/lib/util/io/ \
../src/lib/util/threads/ ../src/lib/resolve ../src/lib/acl \ ../src/lib/util/threads/ ../src/lib/resolve ../src/lib/acl \
../src/lib/statistics ../src/bin/dhcp6 ../src/lib/dhcp ../src/bin/dhcp4 \ ../src/lib/statistics ../src/bin/dhcp6 ../src/lib/dhcp ../src/lib/dhcpsrv \
../tests/tools/perfdhcp devel ../src/bin/dhcp4 ../tests/tools/perfdhcp devel
# This tag can be used to specify the character encoding of the source files # 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 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
......
...@@ -472,7 +472,7 @@ var/ ...@@ -472,7 +472,7 @@ var/
<title>Packages</title> <title>Packages</title>
<para> <para>
Some operating systems or softare package vendors may Some operating systems or software package vendors may
provide ready-to-use, pre-built software packages for provide ready-to-use, pre-built software packages for
the BIND 10 suite. the BIND 10 suite.
Installing a pre-built package means you do not need to Installing a pre-built package means you do not need to
...@@ -758,7 +758,7 @@ as a dependency earlier --> ...@@ -758,7 +758,7 @@ as a dependency earlier -->
If the configure fails, it may be due to missing or old If the configure fails, it may be due to missing or old
dependencies. dependencies.
</para> </para>
<note> <note>
<para>For notes on configuring and building DHCPv6 with MySQL see <xref linkend="dhcp6-install">.</xref></para> <para>For notes on configuring and building DHCPv6 with MySQL see <xref linkend="dhcp6-install">.</xref></para>
</note> </note>
...@@ -1841,10 +1841,8 @@ config set /Boss/components/b10-zonemgr/kind dispensable ...@@ -1841,10 +1841,8 @@ config set /Boss/components/b10-zonemgr/kind dispensable
<para> <para>
The key ring lives in the configuration in "tsig_keys/keys". Most of The key ring lives in the configuration in "tsig_keys/keys". Most of
the system uses the keys from there &mdash; ACLs, authoritative server to the system uses the keys from there &mdash; ACLs, authoritative server to
sign responses to signed queries, and <command>b10-xfrout</command> sign responses to signed queries, and <command>b10-xfrin</command>
to sign transfers. The <command>b10-xfrin</command> uses its own and <command>b10-xfrout</command> to sign transfers.
configuration for keys, but that will be fixed in Trac ticket
<ulink url="http://bind10.isc.org/ticket/1351">#1351</ulink>.
</para> </para>
<para> <para>
...@@ -2157,7 +2155,7 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ] ...@@ -2157,7 +2155,7 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ]
you indicate that the system is not usable without the you indicate that the system is not usable without the
component and if such component fails, the system shuts component and if such component fails, the system shuts
down no matter when the failure happened. This is the down no matter when the failure happened. This is the
behaviour of the core components (the ones you can't turn behavior of the core components (the ones you can't turn
off), but you can declare any other components as core as off), but you can declare any other components as core as
well if you wish (but you can turn these off, they just well if you wish (but you can turn these off, they just
can't fail). can't fail).
...@@ -2721,6 +2719,15 @@ TODO ...@@ -2721,6 +2719,15 @@ TODO
</para> </para>
</section> </section>
<section>
<title>TSIG</title>
If you want to use TSIG for incoming transfers, a system wide TSIG
key ring must be configured (see <xref linkend="tsig-key-ring"/>).
To specify a key to use, set tsig_key value to the name of the key
to use from the key ring.
&gt; <userinput>config set Xfrin/zones[0]/tsig_key "<option>example.key</option>"</userinput>
</section>
<section> <section>
<title>Enabling IXFR</title> <title>Enabling IXFR</title>
<para> <para>
......
...@@ -147,7 +147,7 @@ main(int argc, char* argv[]) { ...@@ -147,7 +147,7 @@ main(int argc, char* argv[]) {
// Initialize logging. If verbose, we'll use maximum verbosity. // Initialize logging. If verbose, we'll use maximum verbosity.
isc::log::initLogger(AUTH_NAME, isc::log::initLogger(AUTH_NAME,
(verbose ? isc::log::DEBUG : isc::log::INFO), (verbose ? isc::log::DEBUG : isc::log::INFO),
isc::log::MAX_DEBUG_LEVEL, NULL); isc::log::MAX_DEBUG_LEVEL, NULL, true);
int ret = 0; int ret = 0;
...@@ -256,7 +256,9 @@ main(int argc, char* argv[]) { ...@@ -256,7 +256,9 @@ main(int argc, char* argv[]) {
// If we haven't registered callback for data sources, this will be just // If we haven't registered callback for data sources, this will be just
// no-op. // no-op.
config_session->removeRemoteConfig("data_sources"); if (config_session != NULL) {
config_session->removeRemoteConfig("data_sources");
}
delete xfrin_session; delete xfrin_session;
delete config_session; delete config_session;
......
...@@ -225,7 +225,7 @@ createBuiltinVersionResponse(const qid_t qid, vector<uint8_t>& data) { ...@@ -225,7 +225,7 @@ createBuiltinVersionResponse(const qid_t qid, vector<uint8_t>& data) {
message.setHeaderFlag(Message::HEADERFLAG_AA); message.setHeaderFlag(Message::HEADERFLAG_AA);
RRsetPtr rrset_version = RRsetPtr(new RRset(version_name, RRClass::CH(), RRsetPtr rrset_version = RRsetPtr(new RRset(version_name, RRClass::CH(),
RRType::TXT(), RRTTL(0))); RRType::TXT(), RRTTL(0)));
rrset_version->addRdata(generic::TXT(PACKAGE_STRING)); rrset_version->addRdata(generic::TXT("\"" PACKAGE_STRING "\""));
message.addRRset(Message::SECTION_ANSWER, rrset_version); message.addRRset(Message::SECTION_ANSWER, rrset_version);
RRsetPtr rrset_version_ns = RRsetPtr(new RRset(apex_name, RRClass::CH(), RRsetPtr rrset_version_ns = RRsetPtr(new RRset(apex_name, RRClass::CH(),
......
...@@ -48,7 +48,7 @@ else: ...@@ -48,7 +48,7 @@ else:
PREFIX = "@prefix@" PREFIX = "@prefix@"
DATAROOTDIR = "@datarootdir@" DATAROOTDIR = "@datarootdir@"
SPECFILE_LOCATION = "@datadir@/@PACKAGE@/bob.spec".replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX) SPECFILE_LOCATION = "@datadir@/@PACKAGE@/bob.spec".replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
import subprocess import subprocess
import signal import signal
import re import re
...@@ -76,7 +76,7 @@ import isc.bind10.socket_cache ...@@ -76,7 +76,7 @@ import isc.bind10.socket_cache
import libutil_io_python import libutil_io_python
import tempfile import tempfile
isc.log.init("b10-boss") isc.log.init("b10-boss", buffer=True)
logger = isc.log.Logger("boss") logger = isc.log.Logger("boss")
# Pending system-wide debug level definitions, the ones we # Pending system-wide debug level definitions, the ones we
...@@ -166,14 +166,14 @@ class ProcessStartError(Exception): pass ...@@ -166,14 +166,14 @@ class ProcessStartError(Exception): pass
class BoB: class BoB:
"""Boss of BIND class.""" """Boss of BIND class."""
def __init__(self, msgq_socket_file=None, data_path=None, def __init__(self, msgq_socket_file=None, data_path=None,
config_filename=None, clear_config=False, config_filename=None, clear_config=False,
verbose=False, nokill=False, setuid=None, setgid=None, verbose=False, nokill=False, setuid=None, setgid=None,
username=None, cmdctl_port=None, wait_time=10): username=None, cmdctl_port=None, wait_time=10):
""" """
Initialize the Boss of BIND. This is a singleton (only one can run). Initialize the Boss of BIND. This is a singleton (only one can run).
The msgq_socket_file specifies the UNIX domain socket file that the The msgq_socket_file specifies the UNIX domain socket file that the
msgq process listens on. If verbose is True, then the boss reports msgq process listens on. If verbose is True, then the boss reports
what it is doing. what it is doing.
...@@ -216,6 +216,12 @@ class BoB: ...@@ -216,6 +216,12 @@ class BoB:
self.clear_config = clear_config self.clear_config = clear_config
self.cmdctl_port = cmdctl_port self.cmdctl_port = cmdctl_port
self.wait_time = wait_time self.wait_time = wait_time
self.msgq_timeout = 5
# _run_under_unittests is only meant to be used when testing. It
# bypasses execution of some code to help with testing.
self._run_under_unittests = False
self._component_configurator = isc.bind10.component.Configurator(self, self._component_configurator = isc.bind10.component.Configurator(self,
isc.bind10.special_component.get_specials()) isc.bind10.special_component.get_specials())
# The priorities here make them start in the correct order. First # The priorities here make them start in the correct order. First
...@@ -332,6 +338,7 @@ class BoB: ...@@ -332,6 +338,7 @@ class BoB:
""" """
logger.info(BIND10_KILLING_ALL_PROCESSES) logger.info(BIND10_KILLING_ALL_PROCESSES)
self.__kill_children(True) self.__kill_children(True)
self.components = {}
def _read_bind10_config(self): def _read_bind10_config(self):
""" """
...@@ -400,7 +407,7 @@ class BoB: ...@@ -400,7 +407,7 @@ class BoB:
logger.error(BIND10_STARTUP_UNEXPECTED_MESSAGE, msg) logger.error(BIND10_STARTUP_UNEXPECTED_MESSAGE, msg)
except: except:
logger.error(BIND10_STARTUP_UNRECOGNISED_MESSAGE, msg) logger.error(BIND10_STARTUP_UNRECOGNISED_MESSAGE, msg)
return False return False
# The next few methods start the individual processes of BIND-10. They # The next few methods start the individual processes of BIND-10. They
...@@ -408,21 +415,34 @@ class BoB: ...@@ -408,21 +415,34 @@ class BoB:
# raised which is caught by the caller of start_all_processes(); this kills # raised which is caught by the caller of start_all_processes(); this kills
# processes started up to that point before terminating the program. # processes started up to that point before terminating the program.
def _make_process_info(self, name, args, env,
dev_null_stdout=False, dev_null_stderr=False):
"""
Wrapper around ProcessInfo(), useful to override
ProcessInfo() creation during testing.
"""
return ProcessInfo(name, args, env, dev_null_stdout, dev_null_stderr)
def start_msgq(self): def start_msgq(self):
""" """
Start the message queue and connect to the command channel. Start the message queue and connect to the command channel.
""" """
self.log_starting("b10-msgq") self.log_starting("b10-msgq")
msgq_proc = ProcessInfo("b10-msgq", ["b10-msgq"], self.c_channel_env, msgq_proc = self._make_process_info("b10-msgq", ["b10-msgq"],
True, not self.verbose) self.c_channel_env,
True, not self.verbose)
msgq_proc.spawn() msgq_proc.spawn()
self.log_started(msgq_proc.pid) self.log_started(msgq_proc.pid)
# Now connect to the c-channel # Now connect to the c-channel
cc_connect_start = time.time() cc_connect_start = time.time()
while self.cc_session is None: while self.cc_session is None:
# if we are run under unittests, break
if self._run_under_unittests:
break
# if we have been trying for "a while" give up # if we have been trying for "a while" give up
if (time.time() - cc_connect_start) > 5: if (time.time() - cc_connect_start) > self.msgq_timeout:
logger.error(BIND10_CONNECTING_TO_CC_FAIL) logger.error(BIND10_CONNECTING_TO_CC_FAIL)
raise CChannelConnectError("Unable to connect to c-channel after 5 seconds") raise CChannelConnectError("Unable to connect to c-channel after 5 seconds")
...@@ -434,7 +454,8 @@ class BoB: ...@@ -434,7 +454,8 @@ class BoB:
# Subscribe to the message queue. The only messages we expect to receive # Subscribe to the message queue. The only messages we expect to receive
# on this channel are once relating to process startup. # on this channel are once relating to process startup.
self.cc_session.group_subscribe("Boss") if self.cc_session is not None:
self.cc_session.group_subscribe("Boss")
return msgq_proc return msgq_proc
...@@ -450,13 +471,14 @@ class BoB: ...@@ -450,13 +471,14 @@ class BoB:
args.append("--config-filename=" + self.config_filename) args.append("--config-filename=" + self.config_filename)
if self.clear_config: if self.clear_config:
args.append("--clear-config") args.append("--clear-config")
bind_cfgd = ProcessInfo("b10-cfgmgr", args, bind_cfgd = self._make_process_info("b10-cfgmgr", args,
self.c_channel_env) self.c_channel_env)
bind_cfgd.spawn() bind_cfgd.spawn()
self.log_started(bind_cfgd.pid) self.log_started(bind_cfgd.pid)
# Wait for the configuration manager to start up as subsequent initialization # Wait for the configuration manager to start up as
# cannot proceed without it. The time to wait can be set on the command line. # subsequent initialization cannot proceed without it. The
# time to wait can be set on the command line.
time_remaining = self.wait_time time_remaining = self.wait_time
msg, env = self.cc_session.group_recvmsg() msg, env = self.cc_session.group_recvmsg()
while time_remaining > 0 and not self.process_running(msg, "ConfigManager"): while time_remaining > 0 and not self.process_running(msg, "ConfigManager"):
...@@ -464,7 +486,7 @@ class BoB: ...@@ -464,7 +486,7 @@ class BoB:
time.sleep(1) time.sleep(1)
time_remaining = time_remaining - 1 time_remaining = time_remaining - 1
msg, env = self.cc_session.group_recvmsg() msg, env = self.cc_session.group_recvmsg()
if not self.process_running(msg, "ConfigManager"): if not self.process_running(msg, "ConfigManager"):
raise ProcessStartError("Configuration manager process has not started") raise ProcessStartError("Configuration manager process has not started")
...@@ -481,7 +503,7 @@ class BoB: ...@@ -481,7 +503,7 @@ class BoB:
process, the log_starting/log_started methods are not used. process, the log_starting/log_started methods are not used.
""" """
logger.info(BIND10_STARTING_CC) logger.info(BIND10_STARTING_CC)
self.ccs = isc.config.ModuleCCSession(SPECFILE_LOCATION, self.ccs = isc.config.ModuleCCSession(SPECFILE_LOCATION,
self.config_handler, self.config_handler,
self.command_handler, self.command_handler,
socket_file = self.msgq_socket_file) socket_file = self.msgq_socket_file)
...@@ -499,7 +521,7 @@ class BoB: ...@@ -499,7 +521,7 @@ class BoB:
The port and address arguments are for log messages only. The port and address arguments are for log messages only.
""" """
self.log_starting(name, port, address) self.log_starting(name, port, address)
newproc = ProcessInfo(name, args, c_channel_env) newproc = self._make_process_info(name, args, c_channel_env)
newproc.spawn() newproc.spawn()
self.log_started(newproc.pid) self.log_started(newproc.pid)
return newproc return newproc
...@@ -611,7 +633,6 @@ class BoB: ...@@ -611,7 +633,6 @@ class BoB:
if self.msgq_socket_file is not None: if self.msgq_socket_file is not None:
c_channel_env["BIND10_MSGQ_SOCKET_FILE"] = self.msgq_socket_file c_channel_env["BIND10_MSGQ_SOCKET_FILE"] = self.msgq_socket_file
logger.debug(DBG_PROCESS, BIND10_CHECK_MSGQ_ALREADY_RUNNING) logger.debug(DBG_PROCESS, BIND10_CHECK_MSGQ_ALREADY_RUNNING)
# try to connect, and if we can't wait a short while
try: try:
self.cc_session = isc.cc.Session(self.msgq_socket_file) self.cc_session = isc.cc.Session(self.msgq_socket_file)
logger.fatal(BIND10_MSGQ_ALREADY_RUNNING) logger.fatal(BIND10_MSGQ_ALREADY_RUNNING)
...@@ -679,7 +700,7 @@ class BoB: ...@@ -679,7 +700,7 @@ class BoB:
except: except:
pass pass
# XXX: some delay probably useful... how much is uncertain # XXX: some delay probably useful... how much is uncertain
# I have changed the delay from 0.5 to 1, but sometime it's # I have changed the delay from 0.5 to 1, but sometime it's
# still not enough. # still not enough.
time.sleep(1) time.sleep(1)
self.reap_children() self.reap_children()
...@@ -728,17 +749,19 @@ class BoB: ...@@ -728,17 +749,19 @@ class BoB:
return os.waitpid(-1, os.WNOHANG) return os.waitpid(-1, os.WNOHANG)
def reap_children(self): def reap_children(self):
"""Check to see if any of our child processes have exited, """Check to see if any of our child processes have exited,
and note this for later handling. and note this for later handling.
""" """
while True: while True:
try: try:
(pid, exit_status) = self._get_process_exit_status() (pid, exit_status) = self._get_process_exit_status()
except OSError as o: except OSError as o:
if o.errno == errno.ECHILD: break if o.errno == errno.ECHILD:
break
# XXX: should be impossible to get any other error here # XXX: should be impossible to get any other error here
raise raise
if pid == 0: break if pid == 0:
break
if pid in self.components: if pid in self.components:
# One of the components we know about. Get information on it. # One of the components we know about. Get information on it.
component = self.components.pop(pid) component = self.components.pop(pid)
...@@ -760,11 +783,11 @@ class BoB: ...@@ -760,11 +783,11 @@ class BoB:
""" """
Restart any dead processes: Restart any dead processes:
* Returns the time when the next process is ready to be restarted. * Returns the time when the next process is ready to be restarted.
* If the server is shutting down, returns 0. * If the server is shutting down, returns 0.
* If there are no processes, returns None. * If there are no processes, returns None.
The values returned can be safely passed into select() as the The values returned can be safely passed into select() as the
timeout value. timeout value.
""" """
...@@ -909,8 +932,10 @@ class BoB: ...@@ -909,8 +932,10 @@ class BoB:
""" """
if self._srv_socket is not None: if self._srv_socket is not None:
self._srv_socket.close() self._srv_socket.close()
os.remove(self._socket_path) if os.path.exists(self._socket_path):
os.rmdir(self._tmpdir) os.remove(self._socket_path)
if os.path.isdir(self._tmpdir):
os.rmdir(self._tmpdir)
def _srv_accept(self): def _srv_accept(self):
""" """
...@@ -1006,7 +1031,7 @@ boss_of_bind = None ...@@ -1006,7 +1031,7 @@ boss_of_bind = None
def reaper(signal_number, stack_frame): def reaper(signal_number, stack_frame):
"""A child process has died (SIGCHLD received).""" """A child process has died (SIGCHLD received)."""
# don't do anything... # don't do anything...
# the Python signal handler has been set up to write # the Python signal handler has been set up to write
# down a pipe, waking up our select() bit # down a pipe, waking up our select() bit
pass pass
...@@ -1173,7 +1198,7 @@ and the created lock file must be writable for that user. ...@@ -1173,7 +1198,7 @@ and the created lock file must be writable for that user.
except KeyError: except KeyError:
pass pass
# Next try getting information about the user, assuming user name # Next try getting information about the user, assuming user name
# passed. # passed.
# If the information is both a valid user name and user number, we # If the information is both a valid user name and user number, we
# prefer the name because we try it second. A minor point, hopefully. # prefer the name because we try it second. A minor point, hopefully.
......
This diff is collapsed.
...@@ -27,7 +27,7 @@ import glob ...@@ -27,7 +27,7 @@ import glob
import os.path import os.path
import imp import imp
import isc.log import isc.log
isc.log.init("b10-cfgmgr") isc.log.init("b10-cfgmgr", buffer=True)
from isc.config.cfgmgr import ConfigManager, ConfigManagerDataReadError, logger from isc.config.cfgmgr import ConfigManager, ConfigManagerDataReadError, logger
from isc.log_messages.cfgmgr_messages import * from isc.log_messages.cfgmgr_messages import *
......
...@@ -49,7 +49,7 @@ from hashlib import sha1 ...@@ -49,7 +49,7 @@ from hashlib import sha1
from isc.util import socketserver_mixin from isc.util import socketserver_mixin
from isc.log_messages.cmdctl_messages import * from isc.log_messages.cmdctl_messages import *
isc.log.init("b10-cmdctl") isc.log.init("b10-cmdctl", buffer=True)
logger = isc.log.Logger("cmdctl") logger = isc.log.Logger("cmdctl")
# Debug level for communication with BIND10 # Debug level for communication with BIND10
......
...@@ -45,7 +45,7 @@ import os.path ...@@ -45,7 +45,7 @@ import os.path
import signal import signal
import socket import socket
isc.log.init("b10-ddns") isc.log.init("b10-ddns", buffer=True)
logger = isc.log.Logger("ddns") logger = isc.log.Logger("ddns")
TRACE_BASIC = logger.DBGLVL_TRACE_BASIC TRACE_BASIC = logger.DBGLVL_TRACE_BASIC
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <dhcp4/ctrl_dhcp4_srv.h> #include <dhcp4/ctrl_dhcp4_srv.h>
#include <dhcp4/dhcp4_log.h> #include <dhcp4/dhcp4_log.h>
#include <log/logger_support.h> #include <log/logger_support.h>
#include <log/logger_manager.h>
#include <boost/lexical_cast.hpp> #include <boost/lexical_cast.hpp>
...@@ -93,9 +94,10 @@ main(int argc, char* argv[]) { ...@@ -93,9 +94,10 @@ main(int argc, char* argv[]) {
} }