]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[441-make-distcheck-fails-on-fedora-29-automake-1-16] Second attempt to fix automake...
authorFrancis Dupont <fdupont@isc.org>
Sat, 9 Feb 2019 00:47:45 +0000 (01:47 +0100)
committerFrancis Dupont <fdupont@isc.org>
Wed, 13 Mar 2019 12:37:54 +0000 (08:37 -0400)
89 files changed:
configure.ac
src/bin/agent/.gitignore
src/bin/agent/Makefile.am
src/bin/agent/ca_messages.cc [new file with mode: 0644]
src/bin/agent/ca_messages.h [new file with mode: 0644]
src/bin/d2/.gitignore
src/bin/d2/Makefile.am
src/bin/d2/d2_messages.cc [new file with mode: 0644]
src/bin/d2/d2_messages.h [new file with mode: 0644]
src/bin/dhcp4/.gitignore
src/bin/dhcp4/Makefile.am
src/bin/dhcp4/dhcp4_messages.cc [new file with mode: 0644]
src/bin/dhcp4/dhcp4_messages.h [new file with mode: 0644]
src/bin/dhcp6/.gitignore
src/bin/dhcp6/Makefile.am
src/bin/dhcp6/dhcp6_messages.cc [new file with mode: 0644]
src/bin/dhcp6/dhcp6_messages.h [new file with mode: 0644]
src/bin/lfc/.gitignore
src/bin/lfc/Makefile.am
src/bin/lfc/lfc_messages.cc [new file with mode: 0644]
src/bin/lfc/lfc_messages.h [new file with mode: 0644]
src/bin/netconf/.gitignore
src/bin/netconf/Makefile.am
src/bin/netconf/netconf_messages.cc [new file with mode: 0644]
src/bin/netconf/netconf_messages.h [new file with mode: 0644]
src/hooks/dhcp/high_availability/.gitignore
src/hooks/dhcp/high_availability/Makefile.am
src/hooks/dhcp/high_availability/ha_messages.cc [new file with mode: 0644]
src/hooks/dhcp/high_availability/ha_messages.h [new file with mode: 0644]
src/hooks/dhcp/lease_cmds/.gitignore
src/hooks/dhcp/lease_cmds/Makefile.am
src/hooks/dhcp/lease_cmds/lease_cmds_messages.cc [new file with mode: 0644]
src/hooks/dhcp/lease_cmds/lease_cmds_messages.h [new file with mode: 0644]
src/hooks/dhcp/mysql_cb/.gitignore [deleted file]
src/hooks/dhcp/mysql_cb/Makefile.am
src/hooks/dhcp/mysql_cb/mysql_cb_messages.cc [new file with mode: 0644]
src/hooks/dhcp/mysql_cb/mysql_cb_messages.h [new file with mode: 0644]
src/hooks/dhcp/stat_cmds/.gitignore
src/hooks/dhcp/stat_cmds/Makefile.am
src/hooks/dhcp/stat_cmds/stat_cmds_messages.cc [new file with mode: 0644]
src/hooks/dhcp/stat_cmds/stat_cmds_messages.h [new file with mode: 0644]
src/hooks/dhcp/user_chk/.gitignore [deleted file]
src/hooks/dhcp/user_chk/Makefile.am
src/hooks/dhcp/user_chk/user_chk_messages.cc [new file with mode: 0644]
src/hooks/dhcp/user_chk/user_chk_messages.h [new file with mode: 0644]
src/lib/asiodns/.gitignore [deleted file]
src/lib/asiodns/Makefile.am
src/lib/asiodns/asiodns_messages.cc [new file with mode: 0644]
src/lib/asiodns/asiodns_messages.h [new file with mode: 0644]
src/lib/config/.gitignore [deleted file]
src/lib/config/Makefile.am
src/lib/config/config_messages.cc [new file with mode: 0644]
src/lib/config/config_messages.h [new file with mode: 0644]
src/lib/database/.gitignore [deleted file]
src/lib/database/Makefile.am
src/lib/database/db_messages.cc [new file with mode: 0644]
src/lib/database/db_messages.h [new file with mode: 0644]
src/lib/dhcp_ddns/.gitignore [deleted file]
src/lib/dhcp_ddns/Makefile.am
src/lib/dhcp_ddns/dhcp_ddns_messages.cc [new file with mode: 0644]
src/lib/dhcp_ddns/dhcp_ddns_messages.h [new file with mode: 0644]
src/lib/dhcpsrv/.gitignore [deleted file]
src/lib/dhcpsrv/Makefile.am
src/lib/dhcpsrv/alloc_engine_messages.cc [new file with mode: 0644]
src/lib/dhcpsrv/alloc_engine_messages.h [new file with mode: 0644]
src/lib/dhcpsrv/dhcpsrv_messages.cc [new file with mode: 0644]
src/lib/dhcpsrv/dhcpsrv_messages.h [new file with mode: 0644]
src/lib/dhcpsrv/hosts_messages.cc [new file with mode: 0644]
src/lib/dhcpsrv/hosts_messages.h [new file with mode: 0644]
src/lib/eval/.gitignore [deleted file]
src/lib/eval/Makefile.am
src/lib/eval/eval_messages.cc [new file with mode: 0644]
src/lib/eval/eval_messages.h [new file with mode: 0644]
src/lib/hooks/.gitignore [deleted file]
src/lib/hooks/Makefile.am
src/lib/hooks/hooks_messages.cc [new file with mode: 0644]
src/lib/hooks/hooks_messages.h [new file with mode: 0644]
src/lib/http/.gitignore [deleted file]
src/lib/http/Makefile.am
src/lib/http/http_messages.cc [new file with mode: 0644]
src/lib/http/http_messages.h [new file with mode: 0644]
src/lib/log/tests/.gitignore
src/lib/log/tests/Makefile.am
src/lib/log/tests/log_test_messages.cc [new file with mode: 0644]
src/lib/log/tests/log_test_messages.h [new file with mode: 0644]
src/lib/process/.gitignore [deleted file]
src/lib/process/Makefile.am
src/lib/process/process_messages.cc [new file with mode: 0644]
src/lib/process/process_messages.h [new file with mode: 0644]

index 461bbe66b9d6e8c3d48ff7a2c3145fbe44edffc3..e25d13d4ff36184a420bc3388fcd792d1618644c 100644 (file)
@@ -1370,6 +1370,12 @@ AC_SUBST(PERL)
 AC_PATH_PROGS(AWK, gawk awk)
 AC_SUBST(AWK)
 
+AC_ARG_ENABLE(generate_messages, [AC_HELP_STRING([--enable-generate-messages],
+  [indicates that the messages files will be regenerated. [default=no]])],
+  enable_generate_messages=$enableval, enable_generate_messages=no)
+
+AM_CONDITIONAL([GENERATE_MESSAGES], [test x$enable_generate_messages != xno])
+
 AC_ARG_ENABLE(generate_parser, [AC_HELP_STRING([--enable-generate-parser],
   [indicates that the parsers will be regenerated. This implies that the
    bison and flex are required [default=no]])],
index c24184cb91876be43c97dec3dfb09917abb4abf0..fd2f92f14cd773acb9a82512e303813cc9e9b076 100644 (file)
@@ -1,6 +1,3 @@
 /kea-ctrl-agent
-/ca_messages.cc
-/ca_messages.h
-/s-messages
 /kea-ctrl-agent.8
 
index ffea77b4dfe979276026aa19d311c0d0ab1561be..58ffab2c2edd1eb29fc06258caf1e340e0a03807 100644 (file)
@@ -9,7 +9,7 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES  = *.gcno *.gcda ca_messages.h ca_messages.cc s-messages
+CLEANFILES  = *.gcno *.gcda
 
 man_MANS = kea-ctrl-agent.8
 DISTCLEANFILES = $(man_MANS)
@@ -30,15 +30,6 @@ $(man_MANS):
 
 endif
 
-ca_messages.h ca_messages.cc: s-messages
-
-s-messages: ca_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/agent/ca_messages.mes
-       touch $@
-
-BUILT_SOURCES = ca_messages.h ca_messages.cc
-
-
 # convenience archive
 
 noinst_LTLIBRARIES = libagent.la
@@ -55,8 +46,7 @@ libagent_la_SOURCES += ca_response_creator_factory.h
 libagent_la_SOURCES += simple_parser.cc simple_parser.h
 libagent_la_SOURCES += parser_context.cc parser_context.h parser_context_decl.h
 libagent_la_SOURCES += agent_lexer.ll location.hh position.hh stack.hh
-
-nodist_libagent_la_SOURCES = ca_messages.h ca_messages.cc
+libagent_la_SOURCES += ca_messages.h ca_messages.cc
 EXTRA_DIST += ca_messages.mes
 EXTRA_DIST += agent_lexer.ll
 EXTRA_DIST += agent_parser.yy
@@ -88,6 +78,39 @@ kea_ctrl_agent_LDADD += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS) $(BOOST_LIBS)
 
 kea_ctrl_agent_LDFLAGS = $(AM_LDFLAGS) $(CRYPTO_LDFLAGS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f ca_messages.h ca_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: ca_messages.h ca_messages.cc
+       @echo Message files regenerated
+
+ca_messages.h ca_messages.cc: ca_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/ca/ca_messages.mes
+
+else
+
+messages ca_messages.h ca_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 if GENERATE_PARSER
 
 parser: agent_lexer.cc location.hh position.hh stack.hh agent_parser.cc agent_parser.h
diff --git a/src/bin/agent/ca_messages.cc b/src/bin/agent/ca_messages.cc
new file mode 100644 (file)
index 0000000..307100c
--- /dev/null
@@ -0,0 +1,41 @@
+// File created from ../../../src/bin/agent/ca_messages.mes on Fri Feb 08 2019 20:33
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace agent {
+
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARDED = "CTRL_AGENT_COMMAND_FORWARDED";
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARD_BEGIN = "CTRL_AGENT_COMMAND_FORWARD_BEGIN";
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARD_FAILED = "CTRL_AGENT_COMMAND_FORWARD_FAILED";
+extern const isc::log::MessageID CTRL_AGENT_CONFIG_CHECK_FAIL = "CTRL_AGENT_CONFIG_CHECK_FAIL";
+extern const isc::log::MessageID CTRL_AGENT_CONFIG_FAIL = "CTRL_AGENT_CONFIG_FAIL";
+extern const isc::log::MessageID CTRL_AGENT_FAILED = "CTRL_AGENT_FAILED";
+extern const isc::log::MessageID CTRL_AGENT_HTTP_SERVICE_STARTED = "CTRL_AGENT_HTTP_SERVICE_STARTED";
+extern const isc::log::MessageID CTRL_AGENT_RUN_EXIT = "CTRL_AGENT_RUN_EXIT";
+extern const isc::log::MessageID CTRL_AGENT_STARTED = "CTRL_AGENT_STARTED";
+
+} // namespace agent
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "CTRL_AGENT_COMMAND_FORWARDED", "command %1 successfully forwarded to the service %2",
+    "CTRL_AGENT_COMMAND_FORWARD_BEGIN", "begin forwarding command %1 to service %2",
+    "CTRL_AGENT_COMMAND_FORWARD_FAILED", "failed forwarding command %1: %2",
+    "CTRL_AGENT_CONFIG_CHECK_FAIL", "Control Agent configuration check failed: %1",
+    "CTRL_AGENT_CONFIG_FAIL", "Control Agent configuration failed: %1",
+    "CTRL_AGENT_FAILED", "application experienced a fatal error: %1",
+    "CTRL_AGENT_HTTP_SERVICE_STARTED", "HTTP service bound to address %1:%2",
+    "CTRL_AGENT_RUN_EXIT", "application is exiting the event loop",
+    "CTRL_AGENT_STARTED", "Kea Control Agent version %1 started",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/agent/ca_messages.h b/src/bin/agent/ca_messages.h
new file mode 100644 (file)
index 0000000..acfd355
--- /dev/null
@@ -0,0 +1,24 @@
+// File created from ../../../src/bin/agent/ca_messages.mes on Fri Feb 08 2019 20:33
+
+#ifndef CA_MESSAGES_H
+#define CA_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace agent {
+
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARDED;
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARD_BEGIN;
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_FORWARD_FAILED;
+extern const isc::log::MessageID CTRL_AGENT_CONFIG_CHECK_FAIL;
+extern const isc::log::MessageID CTRL_AGENT_CONFIG_FAIL;
+extern const isc::log::MessageID CTRL_AGENT_FAILED;
+extern const isc::log::MessageID CTRL_AGENT_HTTP_SERVICE_STARTED;
+extern const isc::log::MessageID CTRL_AGENT_RUN_EXIT;
+extern const isc::log::MessageID CTRL_AGENT_STARTED;
+
+} // namespace agent
+} // namespace isc
+
+#endif // CA_MESSAGES_H
index 06446ddf48495bfa51515177d579b7101a43a0d3..5a1a8041bc79c407fcb6f96c4ac407dbdbfd6c5f 100644 (file)
@@ -1,5 +1,2 @@
 /kea-dhcp-ddns
 /kea-dhcp-ddns.8
-/d2_messages.cc
-/d2_messages.h
-/s-messages
index 7f52bafb400cde8d785d8df7b91f4aa1b585dd23..f60f5bde1b31afefd865a41da10c6ddfd907044e 100644 (file)
@@ -10,7 +10,7 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES  = *.gcno *.gcda d2_messages.h d2_messages.cc s-messages
+CLEANFILES  = *.gcno *.gcda
 
 man_MANS = kea-dhcp-ddns.8
 DISTCLEANFILES = $(man_MANS)
@@ -39,14 +39,6 @@ $(man_MANS):
 
 endif
 
-d2_messages.h d2_messages.cc: s-messages
-
-s-messages: d2_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/d2/d2_messages.mes
-       touch $@
-
-BUILT_SOURCES = d2_messages.h d2_messages.cc
-
 # convenience archive
 
 noinst_LTLIBRARIES = libd2.la
@@ -69,8 +61,7 @@ libd2_la_SOURCES += nc_remove.cc nc_remove.h
 libd2_la_SOURCES += nc_trans.cc nc_trans.h
 libd2_la_SOURCES += d2_controller.cc d2_controller.h
 libd2_la_SOURCES += parser_context.cc parser_context.h parser_context_decl.h
-
-nodist_libd2_la_SOURCES = d2_messages.h d2_messages.cc
+libd2_la_SOURCES += d2_messages.h d2_messages.cc
 EXTRA_DIST += d2_messages.mes
 
 sbin_PROGRAMS = kea-dhcp-ddns
@@ -102,6 +93,39 @@ kea_dhcp_ddns_LDFLAGS = $(AM_LDFLAGS) $(CRYPTO_LDFLAGS)
 
 kea_dhcp_ddnsdir = $(pkgdatadir)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f d2_messages.h d2_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: d2_messages.h d2_messages.cc
+       @echo Message files regenerated
+
+d2_messages.h d2_messages.cc: d2_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/d2/d2_messages.mes
+
+else
+
+messages d2_messages.h d2_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 if GENERATE_PARSER
 
 parser: d2_lexer.cc location.hh position.hh stack.hh d2_parser.cc d2_parser.h
diff --git a/src/bin/d2/d2_messages.cc b/src/bin/d2/d2_messages.cc
new file mode 100644 (file)
index 0000000..50b9309
--- /dev/null
@@ -0,0 +1,171 @@
+// File created from ../../../src/bin/d2/d2_messages.mes on Fri Feb 08 2019 20:33
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace d2 {
+
+extern const isc::log::MessageID DHCP_DDNS_ADD_FAILED = "DHCP_DDNS_ADD_FAILED";
+extern const isc::log::MessageID DHCP_DDNS_ADD_SUCCEEDED = "DHCP_DDNS_ADD_SUCCEEDED";
+extern const isc::log::MessageID DHCP_DDNS_ALREADY_RUNNING = "DHCP_DDNS_ALREADY_RUNNING";
+extern const isc::log::MessageID DHCP_DDNS_AT_MAX_TRANSACTIONS = "DHCP_DDNS_AT_MAX_TRANSACTIONS";
+extern const isc::log::MessageID DHCP_DDNS_CLEARED_FOR_SHUTDOWN = "DHCP_DDNS_CLEARED_FOR_SHUTDOWN";
+extern const isc::log::MessageID DHCP_DDNS_COMMAND = "DHCP_DDNS_COMMAND";
+extern const isc::log::MessageID DHCP_DDNS_CONFIGURE = "DHCP_DDNS_CONFIGURE";
+extern const isc::log::MessageID DHCP_DDNS_CONFIG_CHECK_FAIL = "DHCP_DDNS_CONFIG_CHECK_FAIL";
+extern const isc::log::MessageID DHCP_DDNS_CONFIG_FAIL = "DHCP_DDNS_CONFIG_FAIL";
+extern const isc::log::MessageID DHCP_DDNS_FAILED = "DHCP_DDNS_FAILED";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_FORWARD_ADD_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_BUILD_FAILURE = "DHCP_DDNS_FORWARD_ADD_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_IO_ERROR = "DHCP_DDNS_FORWARD_ADD_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_REJECTED = "DHCP_DDNS_FORWARD_ADD_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_RESP_CORRUPT = "DHCP_DDNS_FORWARD_ADD_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_FORWARD_REMOVE_ADDRS_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BUILD_FAILURE = "DHCP_DDNS_FORWARD_REMOVE_ADDRS_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_IO_ERROR = "DHCP_DDNS_FORWARD_REMOVE_ADDRS_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_REJECTED = "DHCP_DDNS_FORWARD_REMOVE_ADDRS_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_RESP_CORRUPT = "DHCP_DDNS_FORWARD_REMOVE_ADDRS_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_FORWARD_REMOVE_RRS_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BUILD_FAILURE = "DHCP_DDNS_FORWARD_REMOVE_RRS_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_IO_ERROR = "DHCP_DDNS_FORWARD_REMOVE_RRS_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_REJECTED = "DHCP_DDNS_FORWARD_REMOVE_RRS_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_RESP_CORRUPT = "DHCP_DDNS_FORWARD_REMOVE_RRS_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_FORWARD_REPLACE_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_BUILD_FAILURE = "DHCP_DDNS_FORWARD_REPLACE_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_IO_ERROR = "DHCP_DDNS_FORWARD_REPLACE_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_REJECTED = "DHCP_DDNS_FORWARD_REPLACE_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_RESP_CORRUPT = "DHCP_DDNS_FORWARD_REPLACE_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_FWD_REQUEST_IGNORED = "DHCP_DDNS_FWD_REQUEST_IGNORED";
+extern const isc::log::MessageID DHCP_DDNS_INVALID_RESPONSE = "DHCP_DDNS_INVALID_RESPONSE";
+extern const isc::log::MessageID DHCP_DDNS_NOT_ON_LOOPBACK = "DHCP_DDNS_NOT_ON_LOOPBACK";
+extern const isc::log::MessageID DHCP_DDNS_NO_ELIGIBLE_JOBS = "DHCP_DDNS_NO_ELIGIBLE_JOBS";
+extern const isc::log::MessageID DHCP_DDNS_NO_FWD_MATCH_ERROR = "DHCP_DDNS_NO_FWD_MATCH_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NO_MATCH = "DHCP_DDNS_NO_MATCH";
+extern const isc::log::MessageID DHCP_DDNS_NO_REV_MATCH_ERROR = "DHCP_DDNS_NO_REV_MATCH_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_PROCESS_INIT = "DHCP_DDNS_PROCESS_INIT";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_QUEUE_FULL = "DHCP_DDNS_QUEUE_MGR_QUEUE_FULL";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_QUEUE_RECEIVE = "DHCP_DDNS_QUEUE_MGR_QUEUE_RECEIVE";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECONFIGURING = "DHCP_DDNS_QUEUE_MGR_RECONFIGURING";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECOVERING = "DHCP_DDNS_QUEUE_MGR_RECOVERING";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECV_ERROR = "DHCP_DDNS_QUEUE_MGR_RECV_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RESUME_ERROR = "DHCP_DDNS_QUEUE_MGR_RESUME_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RESUMING = "DHCP_DDNS_QUEUE_MGR_RESUMING";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STARTED = "DHCP_DDNS_QUEUE_MGR_STARTED";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_START_ERROR = "DHCP_DDNS_QUEUE_MGR_START_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOPPED = "DHCP_DDNS_QUEUE_MGR_STOPPED";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOPPING = "DHCP_DDNS_QUEUE_MGR_STOPPING";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOP_ERROR = "DHCP_DDNS_QUEUE_MGR_STOP_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_UNEXPECTED_HANDLER_ERROR = "DHCP_DDNS_QUEUE_MGR_UNEXPECTED_HANDLER_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_UNEXPECTED_STOP = "DHCP_DDNS_QUEUE_MGR_UNEXPECTED_STOP";
+extern const isc::log::MessageID DHCP_DDNS_REMOVE_FAILED = "DHCP_DDNS_REMOVE_FAILED";
+extern const isc::log::MessageID DHCP_DDNS_REMOVE_SUCCEEDED = "DHCP_DDNS_REMOVE_SUCCEEDED";
+extern const isc::log::MessageID DHCP_DDNS_REQUEST_DROPPED = "DHCP_DDNS_REQUEST_DROPPED";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_REVERSE_REMOVE_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BUILD_FAILURE = "DHCP_DDNS_REVERSE_REMOVE_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_IO_ERROR = "DHCP_DDNS_REVERSE_REMOVE_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_REJECTED = "DHCP_DDNS_REVERSE_REMOVE_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_RESP_CORRUPT = "DHCP_DDNS_REVERSE_REMOVE_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_BAD_DNSCLIENT_STATUS = "DHCP_DDNS_REVERSE_REPLACE_BAD_DNSCLIENT_STATUS";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_BUILD_FAILURE = "DHCP_DDNS_REVERSE_REPLACE_BUILD_FAILURE";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_IO_ERROR = "DHCP_DDNS_REVERSE_REPLACE_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_REJECTED = "DHCP_DDNS_REVERSE_REPLACE_REJECTED";
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_RESP_CORRUPT = "DHCP_DDNS_REVERSE_REPLACE_RESP_CORRUPT";
+extern const isc::log::MessageID DHCP_DDNS_REV_REQUEST_IGNORED = "DHCP_DDNS_REV_REQUEST_IGNORED";
+extern const isc::log::MessageID DHCP_DDNS_RUN_EXIT = "DHCP_DDNS_RUN_EXIT";
+extern const isc::log::MessageID DHCP_DDNS_SHUTDOWN_COMMAND = "DHCP_DDNS_SHUTDOWN_COMMAND";
+extern const isc::log::MessageID DHCP_DDNS_STARTED = "DHCP_DDNS_STARTED";
+extern const isc::log::MessageID DHCP_DDNS_STARTING_TRANSACTION = "DHCP_DDNS_STARTING_TRANSACTION";
+extern const isc::log::MessageID DHCP_DDNS_STATE_MODEL_UNEXPECTED_ERROR = "DHCP_DDNS_STATE_MODEL_UNEXPECTED_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_TRANS_SEND_ERROR = "DHCP_DDNS_TRANS_SEND_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_UPDATE_REQUEST_SENT = "DHCP_DDNS_UPDATE_REQUEST_SENT";
+extern const isc::log::MessageID DHCP_DDNS_UPDATE_RESPONSE_RECEIVED = "DHCP_DDNS_UPDATE_RESPONSE_RECEIVED";
+
+} // namespace d2
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DHCP_DDNS_ADD_FAILED", "DHCP_DDNS Request ID %1: Transaction outcome %2",
+    "DHCP_DDNS_ADD_SUCCEEDED", "DHCP_DDNS Request ID %1: successfully added the DNS mapping addition for this request: %2",
+    "DHCP_DDNS_ALREADY_RUNNING", "%1 already running? %2",
+    "DHCP_DDNS_AT_MAX_TRANSACTIONS", "application has %1 queued requests but has reached maximum number of %2 concurrent transactions",
+    "DHCP_DDNS_CLEARED_FOR_SHUTDOWN", "application has met shutdown criteria for shutdown type: %1",
+    "DHCP_DDNS_COMMAND", "command directive received, command: %1 - args: %2",
+    "DHCP_DDNS_CONFIGURE", "configuration %1 received: %2",
+    "DHCP_DDNS_CONFIG_CHECK_FAIL", "DHCP-DDNS server configuration check failed: %1",
+    "DHCP_DDNS_CONFIG_FAIL", "DHCP-DDNS server configuration failed: %1",
+    "DHCP_DDNS_FAILED", "application experienced a fatal error: %1",
+    "DHCP_DDNS_FORWARD_ADD_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while adding a forward address mapping for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_FORWARD_ADD_BUILD_FAILURE", "DNS Request ID %1:  update message to add a forward DNS entry could not be constructed for this request: %2, reason: %3",
+    "DHCP_DDNS_FORWARD_ADD_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a forward mapping add for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_FORWARD_ADD_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to add the address mapping for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_FORWARD_ADD_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while adding forward address mapping for FQDN, %3",
+    "DHCP_DDNS_FORWARD_REMOVE_ADDRS_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while removing a forward address mapping for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_FORWARD_REMOVE_ADDRS_BUILD_FAILURE", "DNS Request ID %1: update message to remove a forward DNS Address entry could not be constructed for this request: %2, reason: %3",
+    "DHCP_DDNS_FORWARD_REMOVE_ADDRS_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a forward mapping address removal for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_FORWARD_REMOVE_ADDRS_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to remove the forward address mapping for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_FORWARD_REMOVE_ADDRS_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while removing forward address mapping for FQDN, %3",
+    "DHCP_DDNS_FORWARD_REMOVE_RRS_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while removing forward RRs for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_FORWARD_REMOVE_RRS_BUILD_FAILURE", "DNS Request ID %1: update message to remove forward DNS RR entries could not be constructed for this request: %2,  reason: %3",
+    "DHCP_DDNS_FORWARD_REMOVE_RRS_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a forward RR removal for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_FORWARD_REMOVE_RRS_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to remove forward RR entries for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_FORWARD_REMOVE_RRS_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while removing forward RRs for FQDN, %3",
+    "DHCP_DDNS_FORWARD_REPLACE_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while replacing forward address mapping for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_FORWARD_REPLACE_BUILD_FAILURE", "DNS Request ID %1: update message to replace a forward DNS entry could not be constructed from this request: %2, reason: %3",
+    "DHCP_DDNS_FORWARD_REPLACE_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a forward mapping replace for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_FORWARD_REPLACE_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to replace the address mapping for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_FORWARD_REPLACE_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while replacing forward address mapping for FQDN, %3",
+    "DHCP_DDNS_FWD_REQUEST_IGNORED", "Request ID %1: Forward updates are disabled, the forward portion of request will be ignored: %2",
+    "DHCP_DDNS_INVALID_RESPONSE", "received response to DNS Update message is malformed: %1",
+    "DHCP_DDNS_NOT_ON_LOOPBACK", "the DHCP-DDNS server has been configured to listen on %1 which is not the local loopback.  This is an insecure configuration supported for testing purposes only",
+    "DHCP_DDNS_NO_ELIGIBLE_JOBS", "although there are queued requests, there are pending transactions for each, Queue count: %1  Transaction count: %2",
+    "DHCP_DDNS_NO_FWD_MATCH_ERROR", "Request ID %1: the configured list of forward DDNS domains does not contain a match for: %2  The request has been discarded.",
+    "DHCP_DDNS_NO_MATCH", "No DNS servers match FQDN %1",
+    "DHCP_DDNS_NO_REV_MATCH_ERROR", "Request ID %1: the configured list of reverse DDNS domains does not contain a match for: %2  The request has been discarded.",
+    "DHCP_DDNS_PROCESS_INIT", "application init invoked",
+    "DHCP_DDNS_QUEUE_MGR_QUEUE_FULL", "application request queue has reached maximum number of entries %1",
+    "DHCP_DDNS_QUEUE_MGR_QUEUE_RECEIVE", "Request ID %1: received and queued a request.",
+    "DHCP_DDNS_QUEUE_MGR_RECONFIGURING", "application is reconfiguring the queue manager",
+    "DHCP_DDNS_QUEUE_MGR_RECOVERING", "application is attempting to recover from a queue manager IO error",
+    "DHCP_DDNS_QUEUE_MGR_RECV_ERROR", "application's queue manager was notified of a request receive error by its listener.",
+    "DHCP_DDNS_QUEUE_MGR_RESUME_ERROR", "application could not restart the queue manager, reason: %1",
+    "DHCP_DDNS_QUEUE_MGR_RESUMING", "application is resuming listening for requests now that the request queue size has reached %1 of a maximum %2 allowed",
+    "DHCP_DDNS_QUEUE_MGR_STARTED", "application's queue manager has begun listening for requests.",
+    "DHCP_DDNS_QUEUE_MGR_START_ERROR", "application could not start the queue manager, reason: %1",
+    "DHCP_DDNS_QUEUE_MGR_STOPPED", "application's queue manager has stopped listening for requests.",
+    "DHCP_DDNS_QUEUE_MGR_STOPPING", "application is stopping the queue manager for %1",
+    "DHCP_DDNS_QUEUE_MGR_STOP_ERROR", "application encountered an error stopping the queue manager: %1",
+    "DHCP_DDNS_QUEUE_MGR_UNEXPECTED_HANDLER_ERROR", "application's queue manager request receive handler experienced an unexpected exception %1:",
+    "DHCP_DDNS_QUEUE_MGR_UNEXPECTED_STOP", "application's queue manager receive was",
+    "DHCP_DDNS_REMOVE_FAILED", "DHCP_DDNS Request ID %1: Transaction outcome: %2",
+    "DHCP_DDNS_REMOVE_SUCCEEDED", "DHCP_DDNS Request ID %1: successfully removed the DNS mapping addition for this request: %2",
+    "DHCP_DDNS_REQUEST_DROPPED", "Request ID %1: Request contains no enabled update requests and will be dropped: %2",
+    "DHCP_DDNS_REVERSE_REMOVE_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while removing reverse address mapping for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_REVERSE_REMOVE_BUILD_FAILURE", "DNS Request ID %1: update message to remove a reverse DNS entry could not be constructed from this request: %2,  reason: %3",
+    "DHCP_DDNS_REVERSE_REMOVE_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a reverse mapping remove for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_REVERSE_REMOVE_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to remove the reverse mapping for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_REVERSE_REMOVE_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while removing reverse address mapping for FQDN, %3",
+    "DHCP_DDNS_REVERSE_REPLACE_BAD_DNSCLIENT_STATUS", "DHCP_DDNS Request ID %1: received an unknown DNSClient status: %2, while replacing reverse address mapping for FQDN %3 to DNS server %4",
+    "DHCP_DDNS_REVERSE_REPLACE_BUILD_FAILURE", "DNS Request ID %1: update message to replace a reverse DNS entry could not be constructed from this request: %2, reason: %3",
+    "DHCP_DDNS_REVERSE_REPLACE_IO_ERROR", "DHCP_DDNS Request ID %1: encountered an IO error sending a reverse mapping replacement for FQDN %2 to DNS server %3",
+    "DHCP_DDNS_REVERSE_REPLACE_REJECTED", "DNS Request ID %1: Server, %2, rejected a DNS update request to replace the reverse mapping for FQDN, %3, with an RCODE: %4",
+    "DHCP_DDNS_REVERSE_REPLACE_RESP_CORRUPT", "DHCP_DDNS Request ID %1: received a corrupt response from the DNS server, %2, while replacing reverse address mapping for FQDN, %3",
+    "DHCP_DDNS_REV_REQUEST_IGNORED", "Request ID %1: Reverse updates are disabled, the reverse portion of request will be ignored: %2",
+    "DHCP_DDNS_RUN_EXIT", "application is exiting the event loop",
+    "DHCP_DDNS_SHUTDOWN_COMMAND", "application received shutdown command with args: %1",
+    "DHCP_DDNS_STARTED", "Kea DHCP-DDNS server version %1 started",
+    "DHCP_DDNS_STARTING_TRANSACTION", "Request ID %1:",
+    "DHCP_DDNS_STATE_MODEL_UNEXPECTED_ERROR", "Request ID %1: application encountered an unexpected error while carrying out a NameChangeRequest: %2",
+    "DHCP_DDNS_TRANS_SEND_ERROR", "Request ID %1: application encountered an unexpected error while attempting to send a DNS update: %2",
+    "DHCP_DDNS_UPDATE_REQUEST_SENT", "Request ID %1: %2 to server: %3",
+    "DHCP_DDNS_UPDATE_RESPONSE_RECEIVED", "Request ID %1: to server: %2 status: %3",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/d2/d2_messages.h b/src/bin/d2/d2_messages.h
new file mode 100644 (file)
index 0000000..299f8bb
--- /dev/null
@@ -0,0 +1,89 @@
+// File created from ../../../src/bin/d2/d2_messages.mes on Fri Feb 08 2019 20:33
+
+#ifndef D2_MESSAGES_H
+#define D2_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace d2 {
+
+extern const isc::log::MessageID DHCP_DDNS_ADD_FAILED;
+extern const isc::log::MessageID DHCP_DDNS_ADD_SUCCEEDED;
+extern const isc::log::MessageID DHCP_DDNS_ALREADY_RUNNING;
+extern const isc::log::MessageID DHCP_DDNS_AT_MAX_TRANSACTIONS;
+extern const isc::log::MessageID DHCP_DDNS_CLEARED_FOR_SHUTDOWN;
+extern const isc::log::MessageID DHCP_DDNS_COMMAND;
+extern const isc::log::MessageID DHCP_DDNS_CONFIGURE;
+extern const isc::log::MessageID DHCP_DDNS_CONFIG_CHECK_FAIL;
+extern const isc::log::MessageID DHCP_DDNS_CONFIG_FAIL;
+extern const isc::log::MessageID DHCP_DDNS_FAILED;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_ADD_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_FORWARD_REPLACE_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_FWD_REQUEST_IGNORED;
+extern const isc::log::MessageID DHCP_DDNS_INVALID_RESPONSE;
+extern const isc::log::MessageID DHCP_DDNS_NOT_ON_LOOPBACK;
+extern const isc::log::MessageID DHCP_DDNS_NO_ELIGIBLE_JOBS;
+extern const isc::log::MessageID DHCP_DDNS_NO_FWD_MATCH_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NO_MATCH;
+extern const isc::log::MessageID DHCP_DDNS_NO_REV_MATCH_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_PROCESS_INIT;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_QUEUE_FULL;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_QUEUE_RECEIVE;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECONFIGURING;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECOVERING;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RECV_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RESUME_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_RESUMING;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STARTED;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_START_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOPPED;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOPPING;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_STOP_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_UNEXPECTED_HANDLER_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_QUEUE_MGR_UNEXPECTED_STOP;
+extern const isc::log::MessageID DHCP_DDNS_REMOVE_FAILED;
+extern const isc::log::MessageID DHCP_DDNS_REMOVE_SUCCEEDED;
+extern const isc::log::MessageID DHCP_DDNS_REQUEST_DROPPED;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_BAD_DNSCLIENT_STATUS;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_BUILD_FAILURE;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_REJECTED;
+extern const isc::log::MessageID DHCP_DDNS_REVERSE_REPLACE_RESP_CORRUPT;
+extern const isc::log::MessageID DHCP_DDNS_REV_REQUEST_IGNORED;
+extern const isc::log::MessageID DHCP_DDNS_RUN_EXIT;
+extern const isc::log::MessageID DHCP_DDNS_SHUTDOWN_COMMAND;
+extern const isc::log::MessageID DHCP_DDNS_STARTED;
+extern const isc::log::MessageID DHCP_DDNS_STARTING_TRANSACTION;
+extern const isc::log::MessageID DHCP_DDNS_STATE_MODEL_UNEXPECTED_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_TRANS_SEND_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_UPDATE_REQUEST_SENT;
+extern const isc::log::MessageID DHCP_DDNS_UPDATE_RESPONSE_RECEIVED;
+
+} // namespace d2
+} // namespace isc
+
+#endif // D2_MESSAGES_H
index 4d09efbc942b5488280bcbbb8d8f081cb4bad439..770611fd32b9cfb186a8011d0f9646d49473ba67 100644 (file)
@@ -1,6 +1,3 @@
 /kea-dhcp4
 /kea-dhcp4.8
-/dhcp4_messages.cc
-/dhcp4_messages.h
-/s-messages
 /dhcp4_parser.report
index 56defd6e6c53823bf446b684db74dcf5c1aba4cf..6eeb137290c866dcd9baefaea131d4773a4fa4f8 100644 (file)
@@ -20,7 +20,7 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES  = *.gcno *.gcda dhcp4_messages.h dhcp4_messages.cc s-messages
+CLEANFILES  = *.gcno *.gcda
 
 man_MANS = kea-dhcp4.8
 DISTCLEANFILES = $(man_MANS)
@@ -42,14 +42,6 @@ $(man_MANS):
 
 endif
 
-dhcp4_messages.h dhcp4_messages.cc: s-messages
-
-s-messages: dhcp4_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/dhcp4/dhcp4_messages.mes
-       touch $@
-
-BUILT_SOURCES = dhcp4_messages.h dhcp4_messages.cc
-
 # convenience archive
 
 noinst_LTLIBRARIES = libdhcp4.la
@@ -63,8 +55,7 @@ libdhcp4_la_SOURCES += dhcp4to6_ipc.cc dhcp4to6_ipc.h
 libdhcp4_la_SOURCES += dhcp4_lexer.ll location.hh position.hh stack.hh
 libdhcp4_la_SOURCES += dhcp4_parser.cc dhcp4_parser.h
 libdhcp4_la_SOURCES += parser_context.cc parser_context.h parser_context_decl.h
-
-nodist_libdhcp4_la_SOURCES = dhcp4_messages.h dhcp4_messages.cc
+libdhcp4_la_SOURCES += dhcp4_messages.h dhcp4_messages.cc
 EXTRA_DIST += dhcp4_messages.mes
 
 sbin_PROGRAMS = kea-dhcp4
@@ -116,6 +107,39 @@ endif
 
 kea_dhcp4dir = $(pkgdatadir)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f dhcp4_messages.h dhcp4_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: dhcp4_messages.h dhcp4_messages.cc
+       @echo Message files regenerated
+
+dhcp4_messages.h dhcp4_messages.cc: dhcp4_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcp4/dhcp4_messages.mes
+
+else
+
+messages dhcp4_messages.h dhcp4_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 if GENERATE_PARSER
 
 parser: dhcp4_lexer.cc location.hh position.hh stack.hh dhcp4_parser.cc dhcp4_parser.h
diff --git a/src/bin/dhcp4/dhcp4_messages.cc b/src/bin/dhcp4/dhcp4_messages.cc
new file mode 100644 (file)
index 0000000..46e0efd
--- /dev/null
@@ -0,0 +1,275 @@
+// File created from ../../../src/bin/dhcp4/dhcp4_messages.mes on Fri Feb 08 2019 20:32
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCP4_ACTIVATE_INTERFACE = "DHCP4_ACTIVATE_INTERFACE";
+extern const isc::log::MessageID DHCP4_ALREADY_RUNNING = "DHCP4_ALREADY_RUNNING";
+extern const isc::log::MessageID DHCP4_BUFFER_RECEIVED = "DHCP4_BUFFER_RECEIVED";
+extern const isc::log::MessageID DHCP4_BUFFER_RECEIVE_FAIL = "DHCP4_BUFFER_RECEIVE_FAIL";
+extern const isc::log::MessageID DHCP4_BUFFER_UNPACK = "DHCP4_BUFFER_UNPACK";
+extern const isc::log::MessageID DHCP4_BUFFER_WAIT_SIGNAL = "DHCP4_BUFFER_WAIT_SIGNAL";
+extern const isc::log::MessageID DHCP4_CLASS_ASSIGNED = "DHCP4_CLASS_ASSIGNED";
+extern const isc::log::MessageID DHCP4_CLASS_UNCONFIGURED = "DHCP4_CLASS_UNCONFIGURED";
+extern const isc::log::MessageID DHCP4_CLASS_UNDEFINED = "DHCP4_CLASS_UNDEFINED";
+extern const isc::log::MessageID DHCP4_CLASS_UNTESTABLE = "DHCP4_CLASS_UNTESTABLE";
+extern const isc::log::MessageID DHCP4_CLIENTID_IGNORED_FOR_LEASES = "DHCP4_CLIENTID_IGNORED_FOR_LEASES";
+extern const isc::log::MessageID DHCP4_CLIENT_FQDN_DATA = "DHCP4_CLIENT_FQDN_DATA";
+extern const isc::log::MessageID DHCP4_CLIENT_FQDN_PROCESS = "DHCP4_CLIENT_FQDN_PROCESS";
+extern const isc::log::MessageID DHCP4_CLIENT_HOSTNAME_DATA = "DHCP4_CLIENT_HOSTNAME_DATA";
+extern const isc::log::MessageID DHCP4_CLIENT_HOSTNAME_PROCESS = "DHCP4_CLIENT_HOSTNAME_PROCESS";
+extern const isc::log::MessageID DHCP4_CLIENT_NAME_PROC_FAIL = "DHCP4_CLIENT_NAME_PROC_FAIL";
+extern const isc::log::MessageID DHCP4_COMMAND_RECEIVED = "DHCP4_COMMAND_RECEIVED";
+extern const isc::log::MessageID DHCP4_CONFIG_COMPLETE = "DHCP4_CONFIG_COMPLETE";
+extern const isc::log::MessageID DHCP4_CONFIG_FETCH = "DHCP4_CONFIG_FETCH";
+extern const isc::log::MessageID DHCP4_CONFIG_LOAD_FAIL = "DHCP4_CONFIG_LOAD_FAIL";
+extern const isc::log::MessageID DHCP4_CONFIG_MERGED = "DHCP4_CONFIG_MERGED";
+extern const isc::log::MessageID DHCP4_CONFIG_NEW_SUBNET = "DHCP4_CONFIG_NEW_SUBNET";
+extern const isc::log::MessageID DHCP4_CONFIG_OPTION_DUPLICATE = "DHCP4_CONFIG_OPTION_DUPLICATE";
+extern const isc::log::MessageID DHCP4_CONFIG_PACKET_QUEUE = "DHCP4_CONFIG_PACKET_QUEUE";
+extern const isc::log::MessageID DHCP4_CONFIG_RECEIVED = "DHCP4_CONFIG_RECEIVED";
+extern const isc::log::MessageID DHCP4_CONFIG_START = "DHCP4_CONFIG_START";
+extern const isc::log::MessageID DHCP4_CONFIG_UPDATE = "DHCP4_CONFIG_UPDATE";
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_ATTEMPT_FAILED = "DHCP4_DB_RECONNECT_ATTEMPT_FAILED";
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_ATTEMPT_SCHEDULE = "DHCP4_DB_RECONNECT_ATTEMPT_SCHEDULE";
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_DISABLED = "DHCP4_DB_RECONNECT_DISABLED";
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_NO_DB_CTL = "DHCP4_DB_RECONNECT_NO_DB_CTL";
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_RETRIES_EXHAUSTED = "DHCP4_DB_RECONNECT_RETRIES_EXHAUSTED";
+extern const isc::log::MessageID DHCP4_DDNS_REQUEST_SEND_FAILED = "DHCP4_DDNS_REQUEST_SEND_FAILED";
+extern const isc::log::MessageID DHCP4_DEACTIVATE_INTERFACE = "DHCP4_DEACTIVATE_INTERFACE";
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE = "DHCP4_DECLINE_LEASE";
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE_MISMATCH = "DHCP4_DECLINE_LEASE_MISMATCH";
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE_NOT_FOUND = "DHCP4_DECLINE_LEASE_NOT_FOUND";
+extern const isc::log::MessageID DHCP4_DHCP4O6_BAD_PACKET = "DHCP4_DHCP4O6_BAD_PACKET";
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_RECEIVED = "DHCP4_DHCP4O6_PACKET_RECEIVED";
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_SEND = "DHCP4_DHCP4O6_PACKET_SEND";
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_SEND_FAIL = "DHCP4_DHCP4O6_PACKET_SEND_FAIL";
+extern const isc::log::MessageID DHCP4_DHCP4O6_RECEIVE_FAIL = "DHCP4_DHCP4O6_RECEIVE_FAIL";
+extern const isc::log::MessageID DHCP4_DHCP4O6_RECEIVING = "DHCP4_DHCP4O6_RECEIVING";
+extern const isc::log::MessageID DHCP4_DHCP4O6_RESPONSE_DATA = "DHCP4_DHCP4O6_RESPONSE_DATA";
+extern const isc::log::MessageID DHCP4_DYNAMIC_RECONFIGURATION = "DHCP4_DYNAMIC_RECONFIGURATION";
+extern const isc::log::MessageID DHCP4_DYNAMIC_RECONFIGURATION_FAIL = "DHCP4_DYNAMIC_RECONFIGURATION_FAIL";
+extern const isc::log::MessageID DHCP4_EMPTY_HOSTNAME = "DHCP4_EMPTY_HOSTNAME";
+extern const isc::log::MessageID DHCP4_FLEX_ID = "DHCP4_FLEX_ID";
+extern const isc::log::MessageID DHCP4_GENERATE_FQDN = "DHCP4_GENERATE_FQDN";
+extern const isc::log::MessageID DHCP4_HANDLE_SIGNAL_EXCEPTION = "DHCP4_HANDLE_SIGNAL_EXCEPTION";
+extern const isc::log::MessageID DHCP4_HOOKS_LIBS_RELOAD_FAIL = "DHCP4_HOOKS_LIBS_RELOAD_FAIL";
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_RCVD_DROP = "DHCP4_HOOK_BUFFER_RCVD_DROP";
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_RCVD_SKIP = "DHCP4_HOOK_BUFFER_RCVD_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_SEND_SKIP = "DHCP4_HOOK_BUFFER_SEND_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_DECLINE_SKIP = "DHCP4_HOOK_DECLINE_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_LEASE4_RELEASE_SKIP = "DHCP4_HOOK_LEASE4_RELEASE_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_LEASES4_COMMITTED_DROP = "DHCP4_HOOK_LEASES4_COMMITTED_DROP";
+extern const isc::log::MessageID DHCP4_HOOK_LEASES4_COMMITTED_PARK = "DHCP4_HOOK_LEASES4_COMMITTED_PARK";
+extern const isc::log::MessageID DHCP4_HOOK_PACKET_RCVD_SKIP = "DHCP4_HOOK_PACKET_RCVD_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_PACKET_SEND_SKIP = "DHCP4_HOOK_PACKET_SEND_SKIP";
+extern const isc::log::MessageID DHCP4_HOOK_SUBNET4_SELECT_DROP = "DHCP4_HOOK_SUBNET4_SELECT_DROP";
+extern const isc::log::MessageID DHCP4_HOOK_SUBNET4_SELECT_SKIP = "DHCP4_HOOK_SUBNET4_SELECT_SKIP";
+extern const isc::log::MessageID DHCP4_INFORM_DIRECT_REPLY = "DHCP4_INFORM_DIRECT_REPLY";
+extern const isc::log::MessageID DHCP4_INIT_FAIL = "DHCP4_INIT_FAIL";
+extern const isc::log::MessageID DHCP4_INIT_REBOOT = "DHCP4_INIT_REBOOT";
+extern const isc::log::MessageID DHCP4_LEASE_ADVERT = "DHCP4_LEASE_ADVERT";
+extern const isc::log::MessageID DHCP4_LEASE_ALLOC = "DHCP4_LEASE_ALLOC";
+extern const isc::log::MessageID DHCP4_NCR_CREATE = "DHCP4_NCR_CREATE";
+extern const isc::log::MessageID DHCP4_NCR_CREATION_FAILED = "DHCP4_NCR_CREATION_FAILED";
+extern const isc::log::MessageID DHCP4_NOT_RUNNING = "DHCP4_NOT_RUNNING";
+extern const isc::log::MessageID DHCP4_NO_LEASE_INIT_REBOOT = "DHCP4_NO_LEASE_INIT_REBOOT";
+extern const isc::log::MessageID DHCP4_NO_SOCKETS_OPEN = "DHCP4_NO_SOCKETS_OPEN";
+extern const isc::log::MessageID DHCP4_OPEN_CONFIG_DB = "DHCP4_OPEN_CONFIG_DB";
+extern const isc::log::MessageID DHCP4_OPEN_SOCKET = "DHCP4_OPEN_SOCKET";
+extern const isc::log::MessageID DHCP4_OPEN_SOCKET_FAIL = "DHCP4_OPEN_SOCKET_FAIL";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0001 = "DHCP4_PACKET_DROP_0001";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0002 = "DHCP4_PACKET_DROP_0002";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0003 = "DHCP4_PACKET_DROP_0003";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0004 = "DHCP4_PACKET_DROP_0004";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0005 = "DHCP4_PACKET_DROP_0005";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0006 = "DHCP4_PACKET_DROP_0006";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0007 = "DHCP4_PACKET_DROP_0007";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0008 = "DHCP4_PACKET_DROP_0008";
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0009 = "DHCP4_PACKET_DROP_0009";
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0001 = "DHCP4_PACKET_NAK_0001";
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0002 = "DHCP4_PACKET_NAK_0002";
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0003 = "DHCP4_PACKET_NAK_0003";
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0004 = "DHCP4_PACKET_NAK_0004";
+extern const isc::log::MessageID DHCP4_PACKET_OPTIONS_SKIPPED = "DHCP4_PACKET_OPTIONS_SKIPPED";
+extern const isc::log::MessageID DHCP4_PACKET_PACK = "DHCP4_PACKET_PACK";
+extern const isc::log::MessageID DHCP4_PACKET_PACK_FAIL = "DHCP4_PACKET_PACK_FAIL";
+extern const isc::log::MessageID DHCP4_PACKET_PROCESS_EXCEPTION = "DHCP4_PACKET_PROCESS_EXCEPTION";
+extern const isc::log::MessageID DHCP4_PACKET_PROCESS_STD_EXCEPTION = "DHCP4_PACKET_PROCESS_STD_EXCEPTION";
+extern const isc::log::MessageID DHCP4_PACKET_RECEIVED = "DHCP4_PACKET_RECEIVED";
+extern const isc::log::MessageID DHCP4_PACKET_SEND = "DHCP4_PACKET_SEND";
+extern const isc::log::MessageID DHCP4_PACKET_SEND_FAIL = "DHCP4_PACKET_SEND_FAIL";
+extern const isc::log::MessageID DHCP4_PARSER_COMMIT_EXCEPTION = "DHCP4_PARSER_COMMIT_EXCEPTION";
+extern const isc::log::MessageID DHCP4_PARSER_COMMIT_FAIL = "DHCP4_PARSER_COMMIT_FAIL";
+extern const isc::log::MessageID DHCP4_PARSER_EXCEPTION = "DHCP4_PARSER_EXCEPTION";
+extern const isc::log::MessageID DHCP4_PARSER_FAIL = "DHCP4_PARSER_FAIL";
+extern const isc::log::MessageID DHCP4_POST_ALLOCATION_NAME_UPDATE_FAIL = "DHCP4_POST_ALLOCATION_NAME_UPDATE_FAIL";
+extern const isc::log::MessageID DHCP4_QUERY_DATA = "DHCP4_QUERY_DATA";
+extern const isc::log::MessageID DHCP4_RELEASE = "DHCP4_RELEASE";
+extern const isc::log::MessageID DHCP4_RELEASE_EXCEPTION = "DHCP4_RELEASE_EXCEPTION";
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL = "DHCP4_RELEASE_FAIL";
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL_NO_LEASE = "DHCP4_RELEASE_FAIL_NO_LEASE";
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL_WRONG_CLIENT = "DHCP4_RELEASE_FAIL_WRONG_CLIENT";
+extern const isc::log::MessageID DHCP4_RESERVED_HOSTNAME_ASSIGNED = "DHCP4_RESERVED_HOSTNAME_ASSIGNED";
+extern const isc::log::MessageID DHCP4_RESPONSE_DATA = "DHCP4_RESPONSE_DATA";
+extern const isc::log::MessageID DHCP4_RESPONSE_FQDN_DATA = "DHCP4_RESPONSE_FQDN_DATA";
+extern const isc::log::MessageID DHCP4_RESPONSE_HOSTNAME_DATA = "DHCP4_RESPONSE_HOSTNAME_DATA";
+extern const isc::log::MessageID DHCP4_RESPONSE_HOSTNAME_GENERATE = "DHCP4_RESPONSE_HOSTNAME_GENERATE";
+extern const isc::log::MessageID DHCP4_SERVER_FAILED = "DHCP4_SERVER_FAILED";
+extern const isc::log::MessageID DHCP4_SHUTDOWN = "DHCP4_SHUTDOWN";
+extern const isc::log::MessageID DHCP4_SHUTDOWN_REQUEST = "DHCP4_SHUTDOWN_REQUEST";
+extern const isc::log::MessageID DHCP4_SRV_CONSTRUCT_ERROR = "DHCP4_SRV_CONSTRUCT_ERROR";
+extern const isc::log::MessageID DHCP4_SRV_D2STOP_ERROR = "DHCP4_SRV_D2STOP_ERROR";
+extern const isc::log::MessageID DHCP4_SRV_DHCP4O6_ERROR = "DHCP4_SRV_DHCP4O6_ERROR";
+extern const isc::log::MessageID DHCP4_STARTED = "DHCP4_STARTED";
+extern const isc::log::MessageID DHCP4_STARTING = "DHCP4_STARTING";
+extern const isc::log::MessageID DHCP4_START_INFO = "DHCP4_START_INFO";
+extern const isc::log::MessageID DHCP4_SUBNET_DATA = "DHCP4_SUBNET_DATA";
+extern const isc::log::MessageID DHCP4_SUBNET_DYNAMICALLY_CHANGED = "DHCP4_SUBNET_DYNAMICALLY_CHANGED";
+extern const isc::log::MessageID DHCP4_SUBNET_SELECTED = "DHCP4_SUBNET_SELECTED";
+extern const isc::log::MessageID DHCP4_SUBNET_SELECTION_FAILED = "DHCP4_SUBNET_SELECTION_FAILED";
+extern const isc::log::MessageID DHCP6_DHCP4O6_PACKET_RECEIVED = "DHCP6_DHCP4O6_PACKET_RECEIVED";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DHCP4_ACTIVATE_INTERFACE", "activating interface %1",
+    "DHCP4_ALREADY_RUNNING", "%1 already running? %2",
+    "DHCP4_BUFFER_RECEIVED", "received buffer from %1:%2 to %3:%4 over interface %5",
+    "DHCP4_BUFFER_RECEIVE_FAIL", "error on attempt to receive packet: %1",
+    "DHCP4_BUFFER_UNPACK", "parsing buffer received from %1 to %2 over interface %3",
+    "DHCP4_BUFFER_WAIT_SIGNAL", "signal received while waiting for next packet, next waiting signal is %1",
+    "DHCP4_CLASS_ASSIGNED", "%1: client packet has been assigned to the following class(es): %2",
+    "DHCP4_CLASS_UNCONFIGURED", "%1: client packet belongs to an unconfigured class: %2",
+    "DHCP4_CLASS_UNDEFINED", "required class %1 has no definition",
+    "DHCP4_CLASS_UNTESTABLE", "required class %1 has no test expression",
+    "DHCP4_CLIENTID_IGNORED_FOR_LEASES", "%1: not using client identifier for lease allocation for subnet %2",
+    "DHCP4_CLIENT_FQDN_DATA", "%1: Client sent FQDN option: %2",
+    "DHCP4_CLIENT_FQDN_PROCESS", "%1: processing Client FQDN option",
+    "DHCP4_CLIENT_HOSTNAME_DATA", "%1: client sent Hostname option: %2",
+    "DHCP4_CLIENT_HOSTNAME_PROCESS", "%1: processing client's Hostname option",
+    "DHCP4_CLIENT_NAME_PROC_FAIL", "%1: failed to process the fqdn or hostname sent by a client: %2",
+    "DHCP4_COMMAND_RECEIVED", "received command %1, arguments: %2",
+    "DHCP4_CONFIG_COMPLETE", "DHCPv4 server has completed configuration: %1",
+    "DHCP4_CONFIG_FETCH", "Fetching configuration data from config backends.",
+    "DHCP4_CONFIG_LOAD_FAIL", "configuration error using file: %1, reason: %2",
+    "DHCP4_CONFIG_MERGED", "Configuration backend data has been merged.",
+    "DHCP4_CONFIG_NEW_SUBNET", "a new subnet has been added to configuration: %1",
+    "DHCP4_CONFIG_OPTION_DUPLICATE", "multiple options with the code %1 added to the subnet %2",
+    "DHCP4_CONFIG_PACKET_QUEUE", "DHCPv4 packet queue info after configuration: %1",
+    "DHCP4_CONFIG_RECEIVED", "received configuration %1",
+    "DHCP4_CONFIG_START", "DHCPv4 server is processing the following configuration: %1",
+    "DHCP4_CONFIG_UPDATE", "updated configuration received: %1",
+    "DHCP4_DB_RECONNECT_ATTEMPT_FAILED", "database reconnect failed: %1",
+    "DHCP4_DB_RECONNECT_ATTEMPT_SCHEDULE", "scheduling attempt %1 of %2 in %3 milliseconds",
+    "DHCP4_DB_RECONNECT_DISABLED", "database reconnect is disabled: max-reconnect-tries %1, reconnect-wait-time %2",
+    "DHCP4_DB_RECONNECT_NO_DB_CTL", "unexpected error in database reconnect",
+    "DHCP4_DB_RECONNECT_RETRIES_EXHAUSTED", "maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down!",
+    "DHCP4_DDNS_REQUEST_SEND_FAILED", "failed sending a request to kea-dhcp-ddns, error: %1,  ncr: %2",
+    "DHCP4_DEACTIVATE_INTERFACE", "deactivate interface %1",
+    "DHCP4_DECLINE_LEASE", "Received DHCPDECLINE for addr %1 from client %2. The lease will be unavailable for %3 seconds.",
+    "DHCP4_DECLINE_LEASE_MISMATCH", "Received DHCPDECLINE for addr %1 from client %2, but the data doesn't match: received hwaddr: %3, lease hwaddr: %4, received client-id: %5, lease client-id: %6",
+    "DHCP4_DECLINE_LEASE_NOT_FOUND", "Received DHCPDECLINE for addr %1 from client %2, but no such lease found.",
+    "DHCP4_DHCP4O6_BAD_PACKET", "received malformed DHCPv4o6 packet: %1",
+    "DHCP4_DHCP4O6_PACKET_RECEIVED", "received DHCPv4o6 packet from DHCPv4 server (type %1) for %2 on interface %3",
+    "DHCP4_DHCP4O6_PACKET_SEND", "%1: trying to send packet %2 (type %3) to %4 port %5 on interface %6 encapsulating %7: %8 (type %9)",
+    "DHCP4_DHCP4O6_PACKET_SEND_FAIL", "%1: failed to send DHCPv4o6 packet: %2",
+    "DHCP4_DHCP4O6_RECEIVE_FAIL", "failed to receive DHCPv4o6: %1",
+    "DHCP4_DHCP4O6_RECEIVING", "receiving DHCPv4o6 packet from DHCPv6 server",
+    "DHCP4_DHCP4O6_RESPONSE_DATA", "%1: responding with packet %2 (type %3), packet details: %4",
+    "DHCP4_DYNAMIC_RECONFIGURATION", "initiate server reconfiguration using file: %1, after receiving SIGHUP signal",
+    "DHCP4_DYNAMIC_RECONFIGURATION_FAIL", "dynamic server reconfiguration failed with file: %1",
+    "DHCP4_EMPTY_HOSTNAME", "%1: received empty hostname from the client, skipping processing of this option",
+    "DHCP4_FLEX_ID", "flexible identifier generated for incoming packet: %1",
+    "DHCP4_GENERATE_FQDN", "%1: client did not send a FQDN or hostname; FQDN will be be generated for the client",
+    "DHCP4_HANDLE_SIGNAL_EXCEPTION", "An exception was thrown while handing signal: %1",
+    "DHCP4_HOOKS_LIBS_RELOAD_FAIL", "reload of hooks libraries failed",
+    "DHCP4_HOOK_BUFFER_RCVD_DROP", "received buffer from %1 to %2 over interface %3 was dropped because a callout set the drop flag",
+    "DHCP4_HOOK_BUFFER_RCVD_SKIP", "received buffer from %1 to %2 over interface %3 is not parsed because a callout set the next step to SKIP.",
+    "DHCP4_HOOK_BUFFER_SEND_SKIP", "%1: prepared response is dropped because a callout set the next step to SKIP.",
+    "DHCP4_HOOK_DECLINE_SKIP", "Decline4 hook callouts set status to DROP, ignoring packet.",
+    "DHCP4_HOOK_LEASE4_RELEASE_SKIP", "%1: lease was not released because a callout set the next step to SKIP",
+    "DHCP4_HOOK_LEASES4_COMMITTED_DROP", "%1: packet is dropped, because a callout set the next step to DROP",
+    "DHCP4_HOOK_LEASES4_COMMITTED_PARK", "%1: packet is parked, because a callout set the next step to PARK",
+    "DHCP4_HOOK_PACKET_RCVD_SKIP", "%1: packet is dropped, because a callout set the next step to SKIP",
+    "DHCP4_HOOK_PACKET_SEND_SKIP", "%1: prepared response is not sent, because a callout set the next stp to SKIP",
+    "DHCP4_HOOK_SUBNET4_SELECT_DROP", "%1: packet was dropped, because a callout set the next step to 'drop'",
+    "DHCP4_HOOK_SUBNET4_SELECT_SKIP", "%1: no subnet was selected, because a callout set the next skip flag",
+    "DHCP4_INFORM_DIRECT_REPLY", "%1: DHCPACK in reply to the DHCPINFORM will be sent directly to %2 over %3",
+    "DHCP4_INIT_FAIL", "failed to initialize Kea server: %1",
+    "DHCP4_INIT_REBOOT", "%1: client is in INIT-REBOOT state and requests address %2",
+    "DHCP4_LEASE_ADVERT", "%1: lease %2 will be advertised",
+    "DHCP4_LEASE_ALLOC", "%1: lease %2 has been allocated",
+    "DHCP4_NCR_CREATE", "%1: DDNS updates enabled, therefore sending name change requests",
+    "DHCP4_NCR_CREATION_FAILED", "%1: failed to generate name change requests for DNS: %2",
+    "DHCP4_NOT_RUNNING", "DHCPv4 server is not running",
+    "DHCP4_NO_LEASE_INIT_REBOOT", "%1: no lease for address %2 requested by INIT-REBOOT client",
+    "DHCP4_NO_SOCKETS_OPEN", "no interface configured to listen to DHCP traffic",
+    "DHCP4_OPEN_CONFIG_DB", "Opening configuration database: %1",
+    "DHCP4_OPEN_SOCKET", "opening service sockets on port %1",
+    "DHCP4_OPEN_SOCKET_FAIL", "failed to open socket: %1",
+    "DHCP4_PACKET_DROP_0001", "failed to parse packet from %1 to %2, received over interface %3, reason: %4",
+    "DHCP4_PACKET_DROP_0002", "%1, from interface %2: no suitable subnet configured for a direct client",
+    "DHCP4_PACKET_DROP_0003", "%1, from interface %2: it contains a foreign server identifier",
+    "DHCP4_PACKET_DROP_0004", "%1, from interface %2: missing msg-type option",
+    "DHCP4_PACKET_DROP_0005", "%1: unrecognized type %2 in option 53",
+    "DHCP4_PACKET_DROP_0006", "%1: unsupported DHCPv4 message type %2",
+    "DHCP4_PACKET_DROP_0007", "%1: failed to process packet: %2",
+    "DHCP4_PACKET_DROP_0008", "%1: DHCP service is globally disabled",
+    "DHCP4_PACKET_DROP_0009", "%1: Option 53 missing (no DHCP message type), is this a BOOTP packet?",
+    "DHCP4_PACKET_NAK_0001", "%1: failed to select a subnet for incoming packet, src %2, type %3",
+    "DHCP4_PACKET_NAK_0002", "%1: invalid address %2 requested by INIT-REBOOT",
+    "DHCP4_PACKET_NAK_0003", "%1: failed to advertise a lease, client sent ciaddr %2, requested-ip-address %3",
+    "DHCP4_PACKET_NAK_0004", "%1: failed to grant a lease, client sent ciaddr %2, requested-ip-address %3",
+    "DHCP4_PACKET_OPTIONS_SKIPPED", "An error upacking an option, caused subsequent options to be skipped: %1",
+    "DHCP4_PACKET_PACK", "%1: preparing on-wire format of the packet to be sent",
+    "DHCP4_PACKET_PACK_FAIL", "%1: preparing on-wire-format of the packet to be sent failed %2",
+    "DHCP4_PACKET_PROCESS_EXCEPTION", "exception occurred during packet processing",
+    "DHCP4_PACKET_PROCESS_STD_EXCEPTION", "exception occurred during packet processing: %1",
+    "DHCP4_PACKET_RECEIVED", "%1: %2 (type %3) received from %4 to %5 on interface %6",
+    "DHCP4_PACKET_SEND", "%1: trying to send packet %2 (type %3) from %4:%5 to %6:%7 on interface %8",
+    "DHCP4_PACKET_SEND_FAIL", "%1: failed to send DHCPv4 packet: %2",
+    "DHCP4_PARSER_COMMIT_EXCEPTION", "parser failed to commit changes",
+    "DHCP4_PARSER_COMMIT_FAIL", "parser failed to commit changes: %1",
+    "DHCP4_PARSER_EXCEPTION", "failed to create or run parser for configuration element %1",
+    "DHCP4_PARSER_FAIL", "failed to create or run parser for configuration element %1: %2",
+    "DHCP4_POST_ALLOCATION_NAME_UPDATE_FAIL", "%1: failed to update hostname %2 in a lease after address allocation: %3",
+    "DHCP4_QUERY_DATA", "%1, packet details: %2",
+    "DHCP4_RELEASE", "%1: address %2 was released properly.",
+    "DHCP4_RELEASE_EXCEPTION", "%1: while trying to release address %2 an exception occurred: %3",
+    "DHCP4_RELEASE_FAIL", "%1: failed to remove lease for address %2",
+    "DHCP4_RELEASE_FAIL_NO_LEASE", "%1: client is trying to release non-existing lease %2",
+    "DHCP4_RELEASE_FAIL_WRONG_CLIENT", "%1: client is trying to release the lease %2 which belongs to a different client",
+    "DHCP4_RESERVED_HOSTNAME_ASSIGNED", "%1: server assigned reserved hostname %2",
+    "DHCP4_RESPONSE_DATA", "%1: responding with packet %2 (type %3), packet details: %4",
+    "DHCP4_RESPONSE_FQDN_DATA", "%1: including FQDN option in the server's response: %2",
+    "DHCP4_RESPONSE_HOSTNAME_DATA", "%1: including Hostname option in the server's response: %2",
+    "DHCP4_RESPONSE_HOSTNAME_GENERATE", "%1: server has generated hostname %2 for the client",
+    "DHCP4_SERVER_FAILED", "server failed: %1",
+    "DHCP4_SHUTDOWN", "server shutdown",
+    "DHCP4_SHUTDOWN_REQUEST", "shutdown of server requested",
+    "DHCP4_SRV_CONSTRUCT_ERROR", "error creating Dhcpv4Srv object, reason: %1",
+    "DHCP4_SRV_D2STOP_ERROR", "error stopping IO with DHCP_DDNS during shutdown: %1",
+    "DHCP4_SRV_DHCP4O6_ERROR", "error stopping IO with DHCPv4o6 during shutdown: %1",
+    "DHCP4_STARTED", "Kea DHCPv4 server version %1 started",
+    "DHCP4_STARTING", "Kea DHCPv4 server version %1 starting",
+    "DHCP4_START_INFO", "pid: %1, server port: %2, client port: %3, verbose: %4",
+    "DHCP4_SUBNET_DATA", "%1: the selected subnet details: %2",
+    "DHCP4_SUBNET_DYNAMICALLY_CHANGED", "%1: changed selected subnet %2 to subnet %3 from shared network %4 for client assignments",
+    "DHCP4_SUBNET_SELECTED", "%1: the subnet with ID %2 was selected for client assignments",
+    "DHCP4_SUBNET_SELECTION_FAILED", "%1: failed to select subnet for the client",
+    "DHCP6_DHCP4O6_PACKET_RECEIVED", "received DHCPv4o6 packet from DHCPv6 server (type %1) for %2 port %3 on interface %4",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/dhcp4/dhcp4_messages.h b/src/bin/dhcp4/dhcp4_messages.h
new file mode 100644 (file)
index 0000000..dbcf005
--- /dev/null
@@ -0,0 +1,141 @@
+// File created from ../../../src/bin/dhcp4/dhcp4_messages.mes on Fri Feb 08 2019 20:32
+
+#ifndef DHCP4_MESSAGES_H
+#define DHCP4_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCP4_ACTIVATE_INTERFACE;
+extern const isc::log::MessageID DHCP4_ALREADY_RUNNING;
+extern const isc::log::MessageID DHCP4_BUFFER_RECEIVED;
+extern const isc::log::MessageID DHCP4_BUFFER_RECEIVE_FAIL;
+extern const isc::log::MessageID DHCP4_BUFFER_UNPACK;
+extern const isc::log::MessageID DHCP4_BUFFER_WAIT_SIGNAL;
+extern const isc::log::MessageID DHCP4_CLASS_ASSIGNED;
+extern const isc::log::MessageID DHCP4_CLASS_UNCONFIGURED;
+extern const isc::log::MessageID DHCP4_CLASS_UNDEFINED;
+extern const isc::log::MessageID DHCP4_CLASS_UNTESTABLE;
+extern const isc::log::MessageID DHCP4_CLIENTID_IGNORED_FOR_LEASES;
+extern const isc::log::MessageID DHCP4_CLIENT_FQDN_DATA;
+extern const isc::log::MessageID DHCP4_CLIENT_FQDN_PROCESS;
+extern const isc::log::MessageID DHCP4_CLIENT_HOSTNAME_DATA;
+extern const isc::log::MessageID DHCP4_CLIENT_HOSTNAME_PROCESS;
+extern const isc::log::MessageID DHCP4_CLIENT_NAME_PROC_FAIL;
+extern const isc::log::MessageID DHCP4_COMMAND_RECEIVED;
+extern const isc::log::MessageID DHCP4_CONFIG_COMPLETE;
+extern const isc::log::MessageID DHCP4_CONFIG_FETCH;
+extern const isc::log::MessageID DHCP4_CONFIG_LOAD_FAIL;
+extern const isc::log::MessageID DHCP4_CONFIG_MERGED;
+extern const isc::log::MessageID DHCP4_CONFIG_NEW_SUBNET;
+extern const isc::log::MessageID DHCP4_CONFIG_OPTION_DUPLICATE;
+extern const isc::log::MessageID DHCP4_CONFIG_PACKET_QUEUE;
+extern const isc::log::MessageID DHCP4_CONFIG_RECEIVED;
+extern const isc::log::MessageID DHCP4_CONFIG_START;
+extern const isc::log::MessageID DHCP4_CONFIG_UPDATE;
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_ATTEMPT_FAILED;
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_ATTEMPT_SCHEDULE;
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_DISABLED;
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_NO_DB_CTL;
+extern const isc::log::MessageID DHCP4_DB_RECONNECT_RETRIES_EXHAUSTED;
+extern const isc::log::MessageID DHCP4_DDNS_REQUEST_SEND_FAILED;
+extern const isc::log::MessageID DHCP4_DEACTIVATE_INTERFACE;
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE;
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE_MISMATCH;
+extern const isc::log::MessageID DHCP4_DECLINE_LEASE_NOT_FOUND;
+extern const isc::log::MessageID DHCP4_DHCP4O6_BAD_PACKET;
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_RECEIVED;
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_SEND;
+extern const isc::log::MessageID DHCP4_DHCP4O6_PACKET_SEND_FAIL;
+extern const isc::log::MessageID DHCP4_DHCP4O6_RECEIVE_FAIL;
+extern const isc::log::MessageID DHCP4_DHCP4O6_RECEIVING;
+extern const isc::log::MessageID DHCP4_DHCP4O6_RESPONSE_DATA;
+extern const isc::log::MessageID DHCP4_DYNAMIC_RECONFIGURATION;
+extern const isc::log::MessageID DHCP4_DYNAMIC_RECONFIGURATION_FAIL;
+extern const isc::log::MessageID DHCP4_EMPTY_HOSTNAME;
+extern const isc::log::MessageID DHCP4_FLEX_ID;
+extern const isc::log::MessageID DHCP4_GENERATE_FQDN;
+extern const isc::log::MessageID DHCP4_HANDLE_SIGNAL_EXCEPTION;
+extern const isc::log::MessageID DHCP4_HOOKS_LIBS_RELOAD_FAIL;
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_RCVD_DROP;
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_RCVD_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_BUFFER_SEND_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_DECLINE_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_LEASE4_RELEASE_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_LEASES4_COMMITTED_DROP;
+extern const isc::log::MessageID DHCP4_HOOK_LEASES4_COMMITTED_PARK;
+extern const isc::log::MessageID DHCP4_HOOK_PACKET_RCVD_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_PACKET_SEND_SKIP;
+extern const isc::log::MessageID DHCP4_HOOK_SUBNET4_SELECT_DROP;
+extern const isc::log::MessageID DHCP4_HOOK_SUBNET4_SELECT_SKIP;
+extern const isc::log::MessageID DHCP4_INFORM_DIRECT_REPLY;
+extern const isc::log::MessageID DHCP4_INIT_FAIL;
+extern const isc::log::MessageID DHCP4_INIT_REBOOT;
+extern const isc::log::MessageID DHCP4_LEASE_ADVERT;
+extern const isc::log::MessageID DHCP4_LEASE_ALLOC;
+extern const isc::log::MessageID DHCP4_NCR_CREATE;
+extern const isc::log::MessageID DHCP4_NCR_CREATION_FAILED;
+extern const isc::log::MessageID DHCP4_NOT_RUNNING;
+extern const isc::log::MessageID DHCP4_NO_LEASE_INIT_REBOOT;
+extern const isc::log::MessageID DHCP4_NO_SOCKETS_OPEN;
+extern const isc::log::MessageID DHCP4_OPEN_CONFIG_DB;
+extern const isc::log::MessageID DHCP4_OPEN_SOCKET;
+extern const isc::log::MessageID DHCP4_OPEN_SOCKET_FAIL;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0001;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0002;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0003;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0004;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0005;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0006;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0007;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0008;
+extern const isc::log::MessageID DHCP4_PACKET_DROP_0009;
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0001;
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0002;
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0003;
+extern const isc::log::MessageID DHCP4_PACKET_NAK_0004;
+extern const isc::log::MessageID DHCP4_PACKET_OPTIONS_SKIPPED;
+extern const isc::log::MessageID DHCP4_PACKET_PACK;
+extern const isc::log::MessageID DHCP4_PACKET_PACK_FAIL;
+extern const isc::log::MessageID DHCP4_PACKET_PROCESS_EXCEPTION;
+extern const isc::log::MessageID DHCP4_PACKET_PROCESS_STD_EXCEPTION;
+extern const isc::log::MessageID DHCP4_PACKET_RECEIVED;
+extern const isc::log::MessageID DHCP4_PACKET_SEND;
+extern const isc::log::MessageID DHCP4_PACKET_SEND_FAIL;
+extern const isc::log::MessageID DHCP4_PARSER_COMMIT_EXCEPTION;
+extern const isc::log::MessageID DHCP4_PARSER_COMMIT_FAIL;
+extern const isc::log::MessageID DHCP4_PARSER_EXCEPTION;
+extern const isc::log::MessageID DHCP4_PARSER_FAIL;
+extern const isc::log::MessageID DHCP4_POST_ALLOCATION_NAME_UPDATE_FAIL;
+extern const isc::log::MessageID DHCP4_QUERY_DATA;
+extern const isc::log::MessageID DHCP4_RELEASE;
+extern const isc::log::MessageID DHCP4_RELEASE_EXCEPTION;
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL;
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL_NO_LEASE;
+extern const isc::log::MessageID DHCP4_RELEASE_FAIL_WRONG_CLIENT;
+extern const isc::log::MessageID DHCP4_RESERVED_HOSTNAME_ASSIGNED;
+extern const isc::log::MessageID DHCP4_RESPONSE_DATA;
+extern const isc::log::MessageID DHCP4_RESPONSE_FQDN_DATA;
+extern const isc::log::MessageID DHCP4_RESPONSE_HOSTNAME_DATA;
+extern const isc::log::MessageID DHCP4_RESPONSE_HOSTNAME_GENERATE;
+extern const isc::log::MessageID DHCP4_SERVER_FAILED;
+extern const isc::log::MessageID DHCP4_SHUTDOWN;
+extern const isc::log::MessageID DHCP4_SHUTDOWN_REQUEST;
+extern const isc::log::MessageID DHCP4_SRV_CONSTRUCT_ERROR;
+extern const isc::log::MessageID DHCP4_SRV_D2STOP_ERROR;
+extern const isc::log::MessageID DHCP4_SRV_DHCP4O6_ERROR;
+extern const isc::log::MessageID DHCP4_STARTED;
+extern const isc::log::MessageID DHCP4_STARTING;
+extern const isc::log::MessageID DHCP4_START_INFO;
+extern const isc::log::MessageID DHCP4_SUBNET_DATA;
+extern const isc::log::MessageID DHCP4_SUBNET_DYNAMICALLY_CHANGED;
+extern const isc::log::MessageID DHCP4_SUBNET_SELECTED;
+extern const isc::log::MessageID DHCP4_SUBNET_SELECTION_FAILED;
+extern const isc::log::MessageID DHCP6_DHCP4O6_PACKET_RECEIVED;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // DHCP4_MESSAGES_H
index 5b933291bd92d10185a227220ac7a9e008180015..075b3500ef15292159e69ace4997ee0a0bebbf9e 100644 (file)
@@ -1,6 +1,3 @@
 /kea-dhcp6
 /kea-dhcp6.8
-/dhcp6_messages.cc
-/dhcp6_messages.h
-/s-messages
 /dhcp6_parser.report
index 6d26c557c1dd1d7b349d48210d501a031f991c5a..09279901b3d3de099800469ef04523a9346f2de7 100644 (file)
@@ -20,8 +20,6 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES = dhcp6_messages.h dhcp6_messages.cc s-messages
-
 man_MANS = kea-dhcp6.8
 DISTCLEANFILES = $(man_MANS)
 EXTRA_DIST = $(man_MANS) kea-dhcp6.xml
@@ -43,14 +41,6 @@ $(man_MANS):
 
 endif
 
-dhcp6_messages.h dhcp6_messages.cc: s-messages
-
-s-messages: dhcp6_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/dhcp6/dhcp6_messages.mes
-       touch $@
-
-BUILT_SOURCES = dhcp6_messages.h dhcp6_messages.cc
-
 # convenience archive
 
 noinst_LTLIBRARIES = libdhcp6.la
@@ -64,7 +54,7 @@ libdhcp6_la_SOURCES += dhcp6to4_ipc.cc dhcp6to4_ipc.h
 libdhcp6_la_SOURCES += dhcp6_lexer.ll location.hh position.hh stack.hh
 libdhcp6_la_SOURCES += dhcp6_parser.cc dhcp6_parser.h
 libdhcp6_la_SOURCES += parser_context.cc parser_context.h parser_context_decl.h
-nodist_libdhcp6_la_SOURCES = dhcp6_messages.h dhcp6_messages.cc
+libdhcp6_la_SOURCES += dhcp6_messages.h dhcp6_messages.cc
 EXTRA_DIST += dhcp6_messages.mes
 
 sbin_PROGRAMS = kea-dhcp6
@@ -117,6 +107,39 @@ endif
 
 kea_dhcp6dir = $(pkgdatadir)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f dhcp6_messages.h dhcp6_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: dhcp6_messages.h dhcp6_messages.cc
+       @echo Message files regenerated
+
+dhcp6_messages.h dhcp6_messages.cc: dhcp6_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcp6/dhcp6_messages.mes
+
+else
+
+messages dhcp6_messages.h dhcp6_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 if GENERATE_PARSER
 
 parser: dhcp6_lexer.cc location.hh position.hh stack.hh dhcp6_parser.cc dhcp6_parser.h
diff --git a/src/bin/dhcp6/dhcp6_messages.cc b/src/bin/dhcp6/dhcp6_messages.cc
new file mode 100644 (file)
index 0000000..84f6531
--- /dev/null
@@ -0,0 +1,285 @@
+// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Fri Feb 08 2019 20:33
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCP6_ACTIVATE_INTERFACE = "DHCP6_ACTIVATE_INTERFACE";
+extern const isc::log::MessageID DHCP6_ADD_GLOBAL_STATUS_CODE = "DHCP6_ADD_GLOBAL_STATUS_CODE";
+extern const isc::log::MessageID DHCP6_ADD_STATUS_CODE_FOR_IA = "DHCP6_ADD_STATUS_CODE_FOR_IA";
+extern const isc::log::MessageID DHCP6_ALREADY_RUNNING = "DHCP6_ALREADY_RUNNING";
+extern const isc::log::MessageID DHCP6_BUFFER_RECEIVED = "DHCP6_BUFFER_RECEIVED";
+extern const isc::log::MessageID DHCP6_BUFFER_UNPACK = "DHCP6_BUFFER_UNPACK";
+extern const isc::log::MessageID DHCP6_BUFFER_WAIT_SIGNAL = "DHCP6_BUFFER_WAIT_SIGNAL";
+extern const isc::log::MessageID DHCP6_CLASS_ASSIGNED = "DHCP6_CLASS_ASSIGNED";
+extern const isc::log::MessageID DHCP6_CLASS_UNCONFIGURED = "DHCP6_CLASS_UNCONFIGURED";
+extern const isc::log::MessageID DHCP6_CLASS_UNDEFINED = "DHCP6_CLASS_UNDEFINED";
+extern const isc::log::MessageID DHCP6_CLASS_UNTESTABLE = "DHCP6_CLASS_UNTESTABLE";
+extern const isc::log::MessageID DHCP6_COMMAND_RECEIVED = "DHCP6_COMMAND_RECEIVED";
+extern const isc::log::MessageID DHCP6_CONFIG_COMPLETE = "DHCP6_CONFIG_COMPLETE";
+extern const isc::log::MessageID DHCP6_CONFIG_LOAD_FAIL = "DHCP6_CONFIG_LOAD_FAIL";
+extern const isc::log::MessageID DHCP6_CONFIG_PACKET_QUEUE = "DHCP6_CONFIG_PACKET_QUEUE";
+extern const isc::log::MessageID DHCP6_CONFIG_RECEIVED = "DHCP6_CONFIG_RECEIVED";
+extern const isc::log::MessageID DHCP6_CONFIG_START = "DHCP6_CONFIG_START";
+extern const isc::log::MessageID DHCP6_CONFIG_UPDATE = "DHCP6_CONFIG_UPDATE";
+extern const isc::log::MessageID DHCP6_DB_BACKEND_STARTED = "DHCP6_DB_BACKEND_STARTED";
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_ATTEMPT_FAILED = "DHCP6_DB_RECONNECT_ATTEMPT_FAILED";
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_ATTEMPT_SCHEDULE = "DHCP6_DB_RECONNECT_ATTEMPT_SCHEDULE";
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_DISABLED = "DHCP6_DB_RECONNECT_DISABLED";
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_NO_DB_CTL = "DHCP6_DB_RECONNECT_NO_DB_CTL";
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_RETRIES_EXHAUSTED = "DHCP6_DB_RECONNECT_RETRIES_EXHAUSTED";
+extern const isc::log::MessageID DHCP6_DDNS_CREATE_ADD_NAME_CHANGE_REQUEST = "DHCP6_DDNS_CREATE_ADD_NAME_CHANGE_REQUEST";
+extern const isc::log::MessageID DHCP6_DDNS_FQDN_GENERATED = "DHCP6_DDNS_FQDN_GENERATED";
+extern const isc::log::MessageID DHCP6_DDNS_GENERATED_FQDN_UPDATE_FAIL = "DHCP6_DDNS_GENERATED_FQDN_UPDATE_FAIL";
+extern const isc::log::MessageID DHCP6_DDNS_GENERATE_FQDN = "DHCP6_DDNS_GENERATE_FQDN";
+extern const isc::log::MessageID DHCP6_DDNS_LEASE_RENEW_FQDN_CHANGE = "DHCP6_DDNS_LEASE_RENEW_FQDN_CHANGE";
+extern const isc::log::MessageID DHCP6_DDNS_RECEIVE_FQDN = "DHCP6_DDNS_RECEIVE_FQDN";
+extern const isc::log::MessageID DHCP6_DDNS_REQUEST_SEND_FAILED = "DHCP6_DDNS_REQUEST_SEND_FAILED";
+extern const isc::log::MessageID DHCP6_DDNS_RESPONSE_FQDN_DATA = "DHCP6_DDNS_RESPONSE_FQDN_DATA";
+extern const isc::log::MessageID DHCP6_DDNS_SEND_FQDN = "DHCP6_DDNS_SEND_FQDN";
+extern const isc::log::MessageID DHCP6_DEACTIVATE_INTERFACE = "DHCP6_DEACTIVATE_INTERFACE";
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_DUID_MISMATCH = "DHCP6_DECLINE_FAIL_DUID_MISMATCH";
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_IAID_MISMATCH = "DHCP6_DECLINE_FAIL_IAID_MISMATCH";
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_LEASE_WITHOUT_DUID = "DHCP6_DECLINE_FAIL_LEASE_WITHOUT_DUID";
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_NO_LEASE = "DHCP6_DECLINE_FAIL_NO_LEASE";
+extern const isc::log::MessageID DHCP6_DECLINE_LEASE = "DHCP6_DECLINE_LEASE";
+extern const isc::log::MessageID DHCP6_DECLINE_PROCESS_IA = "DHCP6_DECLINE_PROCESS_IA";
+extern const isc::log::MessageID DHCP6_DHCP4O6_PACKET_RECEIVED = "DHCP6_DHCP4O6_PACKET_RECEIVED";
+extern const isc::log::MessageID DHCP6_DHCP4O6_RECEIVE_FAIL = "DHCP6_DHCP4O6_RECEIVE_FAIL";
+extern const isc::log::MessageID DHCP6_DHCP4O6_RECEIVING = "DHCP6_DHCP4O6_RECEIVING";
+extern const isc::log::MessageID DHCP6_DHCP4O6_SEND_FAIL = "DHCP6_DHCP4O6_SEND_FAIL";
+extern const isc::log::MessageID DHCP6_DYNAMIC_RECONFIGURATION = "DHCP6_DYNAMIC_RECONFIGURATION";
+extern const isc::log::MessageID DHCP6_DYNAMIC_RECONFIGURATION_FAIL = "DHCP6_DYNAMIC_RECONFIGURATION_FAIL";
+extern const isc::log::MessageID DHCP6_FLEX_ID = "DHCP6_FLEX_ID";
+extern const isc::log::MessageID DHCP6_HANDLE_SIGNAL_EXCEPTION = "DHCP6_HANDLE_SIGNAL_EXCEPTION";
+extern const isc::log::MessageID DHCP6_HOOKS_LIBS_RELOAD_FAIL = "DHCP6_HOOKS_LIBS_RELOAD_FAIL";
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_RCVD_DROP = "DHCP6_HOOK_BUFFER_RCVD_DROP";
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_RCVD_SKIP = "DHCP6_HOOK_BUFFER_RCVD_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_SEND_SKIP = "DHCP6_HOOK_BUFFER_SEND_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_DECLINE_DROP = "DHCP6_HOOK_DECLINE_DROP";
+extern const isc::log::MessageID DHCP6_HOOK_DECLINE_SKIP = "DHCP6_HOOK_DECLINE_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_LEASE6_RELEASE_NA_SKIP = "DHCP6_HOOK_LEASE6_RELEASE_NA_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_LEASE6_RELEASE_PD_SKIP = "DHCP6_HOOK_LEASE6_RELEASE_PD_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_LEASES6_COMMITTED_DROP = "DHCP6_HOOK_LEASES6_COMMITTED_DROP";
+extern const isc::log::MessageID DHCP6_HOOK_LEASES6_COMMITTED_PARK = "DHCP6_HOOK_LEASES6_COMMITTED_PARK";
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_RCVD_SKIP = "DHCP6_HOOK_PACKET_RCVD_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP = "DHCP6_HOOK_PACKET_SEND_DROP";
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP = "DHCP6_HOOK_PACKET_SEND_SKIP";
+extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP = "DHCP6_HOOK_SUBNET6_SELECT_DROP";
+extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP = "DHCP6_HOOK_SUBNET6_SELECT_SKIP";
+extern const isc::log::MessageID DHCP6_INIT_FAIL = "DHCP6_INIT_FAIL";
+extern const isc::log::MessageID DHCP6_LEASE_ADVERT = "DHCP6_LEASE_ADVERT";
+extern const isc::log::MessageID DHCP6_LEASE_ADVERT_FAIL = "DHCP6_LEASE_ADVERT_FAIL";
+extern const isc::log::MessageID DHCP6_LEASE_ALLOC = "DHCP6_LEASE_ALLOC";
+extern const isc::log::MessageID DHCP6_LEASE_ALLOC_FAIL = "DHCP6_LEASE_ALLOC_FAIL";
+extern const isc::log::MessageID DHCP6_LEASE_DATA = "DHCP6_LEASE_DATA";
+extern const isc::log::MessageID DHCP6_LEASE_NA_WITHOUT_DUID = "DHCP6_LEASE_NA_WITHOUT_DUID";
+extern const isc::log::MessageID DHCP6_LEASE_PD_WITHOUT_DUID = "DHCP6_LEASE_PD_WITHOUT_DUID";
+extern const isc::log::MessageID DHCP6_LEASE_RENEW = "DHCP6_LEASE_RENEW";
+extern const isc::log::MessageID DHCP6_NOT_RUNNING = "DHCP6_NOT_RUNNING";
+extern const isc::log::MessageID DHCP6_NO_INTERFACES = "DHCP6_NO_INTERFACES";
+extern const isc::log::MessageID DHCP6_NO_SOCKETS_OPEN = "DHCP6_NO_SOCKETS_OPEN";
+extern const isc::log::MessageID DHCP6_OPEN_SOCKET = "DHCP6_OPEN_SOCKET";
+extern const isc::log::MessageID DHCP6_OPEN_SOCKET_FAIL = "DHCP6_OPEN_SOCKET_FAIL";
+extern const isc::log::MessageID DHCP6_PACKET_DROP_DHCP_DISABLED = "DHCP6_PACKET_DROP_DHCP_DISABLED";
+extern const isc::log::MessageID DHCP6_PACKET_DROP_PARSE_FAIL = "DHCP6_PACKET_DROP_PARSE_FAIL";
+extern const isc::log::MessageID DHCP6_PACKET_DROP_SERVERID_MISMATCH = "DHCP6_PACKET_DROP_SERVERID_MISMATCH";
+extern const isc::log::MessageID DHCP6_PACKET_DROP_UNICAST = "DHCP6_PACKET_DROP_UNICAST";
+extern const isc::log::MessageID DHCP6_PACKET_OPTIONS_SKIPPED = "DHCP6_PACKET_OPTIONS_SKIPPED";
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_EXCEPTION = "DHCP6_PACKET_PROCESS_EXCEPTION";
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_FAIL = "DHCP6_PACKET_PROCESS_FAIL";
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_STD_EXCEPTION = "DHCP6_PACKET_PROCESS_STD_EXCEPTION";
+extern const isc::log::MessageID DHCP6_PACKET_RECEIVED = "DHCP6_PACKET_RECEIVED";
+extern const isc::log::MessageID DHCP6_PACKET_RECEIVE_FAIL = "DHCP6_PACKET_RECEIVE_FAIL";
+extern const isc::log::MessageID DHCP6_PACKET_SEND_FAIL = "DHCP6_PACKET_SEND_FAIL";
+extern const isc::log::MessageID DHCP6_PACK_FAIL = "DHCP6_PACK_FAIL";
+extern const isc::log::MessageID DHCP6_PARSER_COMMIT_EXCEPTION = "DHCP6_PARSER_COMMIT_EXCEPTION";
+extern const isc::log::MessageID DHCP6_PARSER_COMMIT_FAIL = "DHCP6_PARSER_COMMIT_FAIL";
+extern const isc::log::MessageID DHCP6_PARSER_EXCEPTION = "DHCP6_PARSER_EXCEPTION";
+extern const isc::log::MessageID DHCP6_PARSER_FAIL = "DHCP6_PARSER_FAIL";
+extern const isc::log::MessageID DHCP6_PD_LEASE_ADVERT = "DHCP6_PD_LEASE_ADVERT";
+extern const isc::log::MessageID DHCP6_PD_LEASE_ADVERT_FAIL = "DHCP6_PD_LEASE_ADVERT_FAIL";
+extern const isc::log::MessageID DHCP6_PD_LEASE_ALLOC = "DHCP6_PD_LEASE_ALLOC";
+extern const isc::log::MessageID DHCP6_PD_LEASE_ALLOC_FAIL = "DHCP6_PD_LEASE_ALLOC_FAIL";
+extern const isc::log::MessageID DHCP6_PD_LEASE_RENEW = "DHCP6_PD_LEASE_RENEW";
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_EXTEND = "DHCP6_PROCESS_IA_NA_EXTEND";
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_RELEASE = "DHCP6_PROCESS_IA_NA_RELEASE";
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_REQUEST = "DHCP6_PROCESS_IA_NA_REQUEST";
+extern const isc::log::MessageID DHCP6_PROCESS_IA_PD_EXTEND = "DHCP6_PROCESS_IA_PD_EXTEND";
+extern const isc::log::MessageID DHCP6_PROCESS_IA_PD_REQUEST = "DHCP6_PROCESS_IA_PD_REQUEST";
+extern const isc::log::MessageID DHCP6_QUERY_DATA = "DHCP6_QUERY_DATA";
+extern const isc::log::MessageID DHCP6_RAPID_COMMIT = "DHCP6_RAPID_COMMIT";
+extern const isc::log::MessageID DHCP6_RELEASE_NA = "DHCP6_RELEASE_NA";
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL = "DHCP6_RELEASE_NA_FAIL";
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL_WRONG_DUID = "DHCP6_RELEASE_NA_FAIL_WRONG_DUID";
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL_WRONG_IAID = "DHCP6_RELEASE_NA_FAIL_WRONG_IAID";
+extern const isc::log::MessageID DHCP6_RELEASE_PD = "DHCP6_RELEASE_PD";
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL = "DHCP6_RELEASE_PD_FAIL";
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL_WRONG_DUID = "DHCP6_RELEASE_PD_FAIL_WRONG_DUID";
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL_WRONG_IAID = "DHCP6_RELEASE_PD_FAIL_WRONG_IAID";
+extern const isc::log::MessageID DHCP6_REQUIRED_OPTIONS_CHECK_FAIL = "DHCP6_REQUIRED_OPTIONS_CHECK_FAIL";
+extern const isc::log::MessageID DHCP6_RESPONSE_DATA = "DHCP6_RESPONSE_DATA";
+extern const isc::log::MessageID DHCP6_SERVER_FAILED = "DHCP6_SERVER_FAILED";
+extern const isc::log::MessageID DHCP6_SHUTDOWN = "DHCP6_SHUTDOWN";
+extern const isc::log::MessageID DHCP6_SHUTDOWN_REQUEST = "DHCP6_SHUTDOWN_REQUEST";
+extern const isc::log::MessageID DHCP6_SOCKET_UNICAST = "DHCP6_SOCKET_UNICAST";
+extern const isc::log::MessageID DHCP6_SRV_CONSTRUCT_ERROR = "DHCP6_SRV_CONSTRUCT_ERROR";
+extern const isc::log::MessageID DHCP6_SRV_D2STOP_ERROR = "DHCP6_SRV_D2STOP_ERROR";
+extern const isc::log::MessageID DHCP6_STANDALONE = "DHCP6_STANDALONE";
+extern const isc::log::MessageID DHCP6_STARTED = "DHCP6_STARTED";
+extern const isc::log::MessageID DHCP6_STARTING = "DHCP6_STARTING";
+extern const isc::log::MessageID DHCP6_START_INFO = "DHCP6_START_INFO";
+extern const isc::log::MessageID DHCP6_SUBNET_DATA = "DHCP6_SUBNET_DATA";
+extern const isc::log::MessageID DHCP6_SUBNET_DYNAMICALLY_CHANGED = "DHCP6_SUBNET_DYNAMICALLY_CHANGED";
+extern const isc::log::MessageID DHCP6_SUBNET_SELECTED = "DHCP6_SUBNET_SELECTED";
+extern const isc::log::MessageID DHCP6_SUBNET_SELECTION_FAILED = "DHCP6_SUBNET_SELECTION_FAILED";
+extern const isc::log::MessageID DHCP6_UNKNOWN_MSG_RECEIVED = "DHCP6_UNKNOWN_MSG_RECEIVED";
+extern const isc::log::MessageID DHCP6_USING_SERVERID = "DHCP6_USING_SERVERID";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DHCP6_ACTIVATE_INTERFACE", "activating interface %1",
+    "DHCP6_ADD_GLOBAL_STATUS_CODE", "%1: adding Status Code to DHCPv6 packet: %2",
+    "DHCP6_ADD_STATUS_CODE_FOR_IA", "%1: adding Status Code to IA with iaid=%2: %3",
+    "DHCP6_ALREADY_RUNNING", "%1 already running? %2",
+    "DHCP6_BUFFER_RECEIVED", "received buffer from %1:%2 to %3:%4 over interface %5",
+    "DHCP6_BUFFER_UNPACK", "parsing buffer received from %1 to %2 over interface %3",
+    "DHCP6_BUFFER_WAIT_SIGNAL", "signal received while waiting for next packet, next waiting signal is %1",
+    "DHCP6_CLASS_ASSIGNED", "%1: client packet has been assigned to the following class(es): %2",
+    "DHCP6_CLASS_UNCONFIGURED", "%1: client packet belongs to an unconfigured class: %2",
+    "DHCP6_CLASS_UNDEFINED", "required class %1 has no definition",
+    "DHCP6_CLASS_UNTESTABLE", "required class %1 has no test expression",
+    "DHCP6_COMMAND_RECEIVED", "received command %1, arguments: %2",
+    "DHCP6_CONFIG_COMPLETE", "DHCPv6 server has completed configuration: %1",
+    "DHCP6_CONFIG_LOAD_FAIL", "configuration error using file: %1, reason: %2",
+    "DHCP6_CONFIG_PACKET_QUEUE", "DHCPv6 packet queue info after configuration: %1",
+    "DHCP6_CONFIG_RECEIVED", "received configuration: %1",
+    "DHCP6_CONFIG_START", "DHCPv6 server is processing the following configuration: %1",
+    "DHCP6_CONFIG_UPDATE", "updated configuration received: %1",
+    "DHCP6_DB_BACKEND_STARTED", "lease database started (type: %1, name: %2)",
+    "DHCP6_DB_RECONNECT_ATTEMPT_FAILED", "database reconnect failed: %1",
+    "DHCP6_DB_RECONNECT_ATTEMPT_SCHEDULE", "scheduling attempt %1 of %2 in %3 milliseconds",
+    "DHCP6_DB_RECONNECT_DISABLED", "database reconnect is disabled: max-reconnect-tries %1, reconnect-wait-time %2",
+    "DHCP6_DB_RECONNECT_NO_DB_CTL", "unexpected error in database reconnect",
+    "DHCP6_DB_RECONNECT_RETRIES_EXHAUSTED", "maximum number of database reconnect attempts: %1, has been exhausted without success, server is shutting down!",
+    "DHCP6_DDNS_CREATE_ADD_NAME_CHANGE_REQUEST", "created name change request: %1",
+    "DHCP6_DDNS_FQDN_GENERATED", "%1: generated FQDN for the client: %2",
+    "DHCP6_DDNS_GENERATED_FQDN_UPDATE_FAIL", "%1: failed to update the lease using address %2, after generating FQDN for a client, reason: %3",
+    "DHCP6_DDNS_GENERATE_FQDN", "%1: client did not send a FQDN option; FQDN will be",
+    "DHCP6_DDNS_LEASE_RENEW_FQDN_CHANGE", "FQDN %1: FQDN for the renewed lease: %2 has changed. New values: hostname = %3, reverse mapping = %4, forward mapping = %5",
+    "DHCP6_DDNS_RECEIVE_FQDN", "%1: received DHCPv6 Client FQDN option: %2",
+    "DHCP6_DDNS_REQUEST_SEND_FAILED", "failed sending a request to kea-dhcp-ddns, error: %1,  ncr: %2",
+    "DHCP6_DDNS_RESPONSE_FQDN_DATA", "%1: including FQDN option in the server's response: %2",
+    "DHCP6_DDNS_SEND_FQDN", "sending DHCPv6 Client FQDN Option to the client: %1",
+    "DHCP6_DEACTIVATE_INTERFACE", "deactivate interface %1",
+    "DHCP6_DECLINE_FAIL_DUID_MISMATCH", "Client %1 sent DECLINE for address %2, but it belongs to client with DUID %3",
+    "DHCP6_DECLINE_FAIL_IAID_MISMATCH", "Client %1 sent DECLINE for address %2, but used a wrong IAID (%3), instead of expected %4",
+    "DHCP6_DECLINE_FAIL_LEASE_WITHOUT_DUID", "Client %1 sent DECLINE for address %2, but the associated lease has no DUID",
+    "DHCP6_DECLINE_FAIL_NO_LEASE", "Client %1 sent DECLINE for address %2, but there's no lease for it",
+    "DHCP6_DECLINE_LEASE", "Client %1 sent DECLINE for address %2 and the server marked it as declined. The lease will be recovered in %3 seconds.",
+    "DHCP6_DECLINE_PROCESS_IA", "Processing of IA (IAID: %1) from client %2 started.",
+    "DHCP6_DHCP4O6_PACKET_RECEIVED", "received DHCPv4o6 packet from DHCPv4 server (type %1) for %2 port %3 on interface %4",
+    "DHCP6_DHCP4O6_RECEIVE_FAIL", "failed to receive DHCPv4o6: %1",
+    "DHCP6_DHCP4O6_RECEIVING", "receiving DHCPv4o6 packet from DHCPv4 server",
+    "DHCP6_DHCP4O6_SEND_FAIL", "failed to send DHCPv4o6 packet: %1",
+    "DHCP6_DYNAMIC_RECONFIGURATION", "initiate server reconfiguration using file: %1, after receiving SIGHUP signal",
+    "DHCP6_DYNAMIC_RECONFIGURATION_FAIL", "dynamic server reconfiguration failed with file: %1",
+    "DHCP6_FLEX_ID", "flexible identifier generated for incoming packet: %1",
+    "DHCP6_HANDLE_SIGNAL_EXCEPTION", "An exception was thrown while handing signal: %1",
+    "DHCP6_HOOKS_LIBS_RELOAD_FAIL", "reload of hooks libraries failed",
+    "DHCP6_HOOK_BUFFER_RCVD_DROP", "received buffer from %1 to %2 over interface %3 was dropped because a callout set the drop flag",
+    "DHCP6_HOOK_BUFFER_RCVD_SKIP", "received buffer from %1 to %2 over interface %3 is not parsed because a callout set the next step to SKIP",
+    "DHCP6_HOOK_BUFFER_SEND_SKIP", "%1: prepared DHCPv6 response was dropped because a callout set the next step to SKIP",
+    "DHCP6_HOOK_DECLINE_DROP", "During Decline processing (client=%1, interface=%2, addr=%3) hook callout set next step to DROP, dropping packet.",
+    "DHCP6_HOOK_DECLINE_SKIP", "During Decline processing (client=%1, interface=%2, addr=%3) hook callout set status to SKIP, skipping decline.",
+    "DHCP6_HOOK_LEASE6_RELEASE_NA_SKIP", "%1: DHCPv6 address lease was not released because a callout set the next step to SKIP",
+    "DHCP6_HOOK_LEASE6_RELEASE_PD_SKIP", "%1: prefix lease was not released because a callout set the next step to SKIP",
+    "DHCP6_HOOK_LEASES6_COMMITTED_DROP", "%1: packet is dropped, because a callout set the next step to DROP",
+    "DHCP6_HOOK_LEASES6_COMMITTED_PARK", "%1: packet is parked, because a callout set the next step to PARK",
+    "DHCP6_HOOK_PACKET_RCVD_SKIP", "%1: packet is dropped, because a callout set the next step to SKIP",
+    "DHCP6_HOOK_PACKET_SEND_DROP", "%1: prepared DHCPv6 response was not sent because a callout set the next ste to DROP",
+    "DHCP6_HOOK_PACKET_SEND_SKIP", "%1: prepared DHCPv6 response is not built because a callout set the next step to SKIP",
+    "DHCP6_HOOK_SUBNET6_SELECT_DROP", "%1: packet was dropped because a callout set the drop flag",
+    "DHCP6_HOOK_SUBNET6_SELECT_SKIP", "%1: no subnet was selected because a callout set the next step to SKIP",
+    "DHCP6_INIT_FAIL", "failed to initialize Kea server: %1",
+    "DHCP6_LEASE_ADVERT", "%1: lease for address %2 and iaid=%3 will be advertised",
+    "DHCP6_LEASE_ADVERT_FAIL", "%1: failed to advertise an address lease for iaid=%2",
+    "DHCP6_LEASE_ALLOC", "%1: lease for address %2 and iaid=%3 has been allocated",
+    "DHCP6_LEASE_ALLOC_FAIL", "%1: failed to grant an address lease for iaid=%2",
+    "DHCP6_LEASE_DATA", "%1: detailed lease information for iaid=%2: %3",
+    "DHCP6_LEASE_NA_WITHOUT_DUID", "%1: address lease for address %2 does not have a DUID",
+    "DHCP6_LEASE_PD_WITHOUT_DUID", "%1: lease for prefix %2/%3 does not have a DUID",
+    "DHCP6_LEASE_RENEW", "%1: lease for address %2 and iaid=%3 has been allocated",
+    "DHCP6_NOT_RUNNING", "IPv6 DHCP server is not running",
+    "DHCP6_NO_INTERFACES", "failed to detect any network interfaces",
+    "DHCP6_NO_SOCKETS_OPEN", "no interface configured to listen to DHCP traffic",
+    "DHCP6_OPEN_SOCKET", "opening service sockets on port %1",
+    "DHCP6_OPEN_SOCKET_FAIL", "failed to open socket: %1",
+    "DHCP6_PACKET_DROP_DHCP_DISABLED", "%1: DHCP service is globally disabled",
+    "DHCP6_PACKET_DROP_PARSE_FAIL", "failed to parse packet from %1 to %2, received over interface %3, reason: %4",
+    "DHCP6_PACKET_DROP_SERVERID_MISMATCH", "%1: dropping packet with server identifier: %2, server is using: %3",
+    "DHCP6_PACKET_DROP_UNICAST", "%1: dropping unicast %2 packet as this packet should be sent to multicast",
+    "DHCP6_PACKET_OPTIONS_SKIPPED", "An error upacking an option, caused subsequent options to be skipped: %1",
+    "DHCP6_PACKET_PROCESS_EXCEPTION", "exception occurred during packet processing",
+    "DHCP6_PACKET_PROCESS_FAIL", "processing of %1 message received from %2 failed: %3",
+    "DHCP6_PACKET_PROCESS_STD_EXCEPTION", "exception occurred during packet processing: %1",
+    "DHCP6_PACKET_RECEIVED", "%1: %2 (type %3) received from %4 to %5 on interface %6",
+    "DHCP6_PACKET_RECEIVE_FAIL", "error on attempt to receive packet: %1",
+    "DHCP6_PACKET_SEND_FAIL", "failed to send DHCPv6 packet: %1",
+    "DHCP6_PACK_FAIL", "failed to assemble response correctly",
+    "DHCP6_PARSER_COMMIT_EXCEPTION", "parser failed to commit changes",
+    "DHCP6_PARSER_COMMIT_FAIL", "parser failed to commit changes: %1",
+    "DHCP6_PARSER_EXCEPTION", "failed to create or run parser for configuration element %1",
+    "DHCP6_PARSER_FAIL", "failed to create or run parser for configuration element %1: %2",
+    "DHCP6_PD_LEASE_ADVERT", "%1: lease for prefix %2/%3 and iaid=%4 will be advertised",
+    "DHCP6_PD_LEASE_ADVERT_FAIL", "%1: failed to advertise a prefix lease for iaid=%2",
+    "DHCP6_PD_LEASE_ALLOC", "%1: lease for prefix %2/%3 and iaid=%4 has been allocated",
+    "DHCP6_PD_LEASE_ALLOC_FAIL", "%1: failed to grant a prefix lease for iaid=%2",
+    "DHCP6_PD_LEASE_RENEW", "%1: lease for prefix %2/%3 and iaid=%4 has been allocated",
+    "DHCP6_PROCESS_IA_NA_EXTEND", "%1: extending lease lifetime for IA_NA option with iaid=%2",
+    "DHCP6_PROCESS_IA_NA_RELEASE", "%1: releasing lease for IA_NA option with iaid=%2",
+    "DHCP6_PROCESS_IA_NA_REQUEST", "%1: server is processing IA_NA option with iaid=%2 and hint=%3",
+    "DHCP6_PROCESS_IA_PD_EXTEND", "%1: extending lease lifetime for IA_PD option with iaid=%2",
+    "DHCP6_PROCESS_IA_PD_REQUEST", "%1: server is processing IA_PD option with iaid=%2 and hint=%3",
+    "DHCP6_QUERY_DATA", "%1, packet details: %2",
+    "DHCP6_RAPID_COMMIT", "%1: Rapid Commit option received, following 2-way exchange",
+    "DHCP6_RELEASE_NA", "%1: binding for address %2 and iaid=%3 was released properly",
+    "DHCP6_RELEASE_NA_FAIL", "%1: failed to remove address lease for address %2 and iaid=%3",
+    "DHCP6_RELEASE_NA_FAIL_WRONG_DUID", "%1: client tried to release address %2, but it belongs to another client using duid=%3",
+    "DHCP6_RELEASE_NA_FAIL_WRONG_IAID", "%1: client tried to release address %2, but it used wrong IAID (expected %3, but got %4)",
+    "DHCP6_RELEASE_PD", "%1: prefix %2/%3 for iaid=%4 was released properly",
+    "DHCP6_RELEASE_PD_FAIL", "%1: failed to release prefix %2/%3 for iaid=%4",
+    "DHCP6_RELEASE_PD_FAIL_WRONG_DUID", "%1: client tried to release prefix %2/%3, but it belongs to another client (duid=%4)",
+    "DHCP6_RELEASE_PD_FAIL_WRONG_IAID", "%1: client tried to release prefix %2/%3, but it used wrong IAID (expected %4, but got %5)",
+    "DHCP6_REQUIRED_OPTIONS_CHECK_FAIL", "%1 message received from %2 failed the following check: %3",
+    "DHCP6_RESPONSE_DATA", "responding with packet type %1 data is %2",
+    "DHCP6_SERVER_FAILED", "server failed: %1",
+    "DHCP6_SHUTDOWN", "server shutdown",
+    "DHCP6_SHUTDOWN_REQUEST", "shutdown of server requested",
+    "DHCP6_SOCKET_UNICAST", "server is about to open socket on address %1 on interface %2",
+    "DHCP6_SRV_CONSTRUCT_ERROR", "error creating Dhcpv6Srv object, reason: %1",
+    "DHCP6_SRV_D2STOP_ERROR", "error stopping IO with DHCP_DDNS during shutdown: %1",
+    "DHCP6_STANDALONE", "skipping message queue, running standalone",
+    "DHCP6_STARTED", "Kea DHCPv6 server version %1 started",
+    "DHCP6_STARTING", "Kea DHCPv6 server version %1 starting",
+    "DHCP6_START_INFO", "pid: %1, server port: %2, client port: %3, verbose: %4",
+    "DHCP6_SUBNET_DATA", "%1: the selected subnet details: %2",
+    "DHCP6_SUBNET_DYNAMICALLY_CHANGED", "%1: changed selected subnet %2 to subnet %3 from shared network %4 for client assignments",
+    "DHCP6_SUBNET_SELECTED", "%1: the subnet with ID %2 was selected for client assignments",
+    "DHCP6_SUBNET_SELECTION_FAILED", "%1: failed to select subnet for the client",
+    "DHCP6_UNKNOWN_MSG_RECEIVED", "received unknown message (type %1) on interface %2",
+    "DHCP6_USING_SERVERID", "server is using server-id %1 and stores in the file %2",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/dhcp6/dhcp6_messages.h b/src/bin/dhcp6/dhcp6_messages.h
new file mode 100644 (file)
index 0000000..e814d61
--- /dev/null
@@ -0,0 +1,146 @@
+// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Fri Feb 08 2019 20:33
+
+#ifndef DHCP6_MESSAGES_H
+#define DHCP6_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCP6_ACTIVATE_INTERFACE;
+extern const isc::log::MessageID DHCP6_ADD_GLOBAL_STATUS_CODE;
+extern const isc::log::MessageID DHCP6_ADD_STATUS_CODE_FOR_IA;
+extern const isc::log::MessageID DHCP6_ALREADY_RUNNING;
+extern const isc::log::MessageID DHCP6_BUFFER_RECEIVED;
+extern const isc::log::MessageID DHCP6_BUFFER_UNPACK;
+extern const isc::log::MessageID DHCP6_BUFFER_WAIT_SIGNAL;
+extern const isc::log::MessageID DHCP6_CLASS_ASSIGNED;
+extern const isc::log::MessageID DHCP6_CLASS_UNCONFIGURED;
+extern const isc::log::MessageID DHCP6_CLASS_UNDEFINED;
+extern const isc::log::MessageID DHCP6_CLASS_UNTESTABLE;
+extern const isc::log::MessageID DHCP6_COMMAND_RECEIVED;
+extern const isc::log::MessageID DHCP6_CONFIG_COMPLETE;
+extern const isc::log::MessageID DHCP6_CONFIG_LOAD_FAIL;
+extern const isc::log::MessageID DHCP6_CONFIG_PACKET_QUEUE;
+extern const isc::log::MessageID DHCP6_CONFIG_RECEIVED;
+extern const isc::log::MessageID DHCP6_CONFIG_START;
+extern const isc::log::MessageID DHCP6_CONFIG_UPDATE;
+extern const isc::log::MessageID DHCP6_DB_BACKEND_STARTED;
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_ATTEMPT_FAILED;
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_ATTEMPT_SCHEDULE;
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_DISABLED;
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_NO_DB_CTL;
+extern const isc::log::MessageID DHCP6_DB_RECONNECT_RETRIES_EXHAUSTED;
+extern const isc::log::MessageID DHCP6_DDNS_CREATE_ADD_NAME_CHANGE_REQUEST;
+extern const isc::log::MessageID DHCP6_DDNS_FQDN_GENERATED;
+extern const isc::log::MessageID DHCP6_DDNS_GENERATED_FQDN_UPDATE_FAIL;
+extern const isc::log::MessageID DHCP6_DDNS_GENERATE_FQDN;
+extern const isc::log::MessageID DHCP6_DDNS_LEASE_RENEW_FQDN_CHANGE;
+extern const isc::log::MessageID DHCP6_DDNS_RECEIVE_FQDN;
+extern const isc::log::MessageID DHCP6_DDNS_REQUEST_SEND_FAILED;
+extern const isc::log::MessageID DHCP6_DDNS_RESPONSE_FQDN_DATA;
+extern const isc::log::MessageID DHCP6_DDNS_SEND_FQDN;
+extern const isc::log::MessageID DHCP6_DEACTIVATE_INTERFACE;
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_DUID_MISMATCH;
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_IAID_MISMATCH;
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_LEASE_WITHOUT_DUID;
+extern const isc::log::MessageID DHCP6_DECLINE_FAIL_NO_LEASE;
+extern const isc::log::MessageID DHCP6_DECLINE_LEASE;
+extern const isc::log::MessageID DHCP6_DECLINE_PROCESS_IA;
+extern const isc::log::MessageID DHCP6_DHCP4O6_PACKET_RECEIVED;
+extern const isc::log::MessageID DHCP6_DHCP4O6_RECEIVE_FAIL;
+extern const isc::log::MessageID DHCP6_DHCP4O6_RECEIVING;
+extern const isc::log::MessageID DHCP6_DHCP4O6_SEND_FAIL;
+extern const isc::log::MessageID DHCP6_DYNAMIC_RECONFIGURATION;
+extern const isc::log::MessageID DHCP6_DYNAMIC_RECONFIGURATION_FAIL;
+extern const isc::log::MessageID DHCP6_FLEX_ID;
+extern const isc::log::MessageID DHCP6_HANDLE_SIGNAL_EXCEPTION;
+extern const isc::log::MessageID DHCP6_HOOKS_LIBS_RELOAD_FAIL;
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_RCVD_DROP;
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_RCVD_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_BUFFER_SEND_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_DECLINE_DROP;
+extern const isc::log::MessageID DHCP6_HOOK_DECLINE_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_LEASE6_RELEASE_NA_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_LEASE6_RELEASE_PD_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_LEASES6_COMMITTED_DROP;
+extern const isc::log::MessageID DHCP6_HOOK_LEASES6_COMMITTED_PARK;
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_RCVD_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP;
+extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP;
+extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP;
+extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP;
+extern const isc::log::MessageID DHCP6_INIT_FAIL;
+extern const isc::log::MessageID DHCP6_LEASE_ADVERT;
+extern const isc::log::MessageID DHCP6_LEASE_ADVERT_FAIL;
+extern const isc::log::MessageID DHCP6_LEASE_ALLOC;
+extern const isc::log::MessageID DHCP6_LEASE_ALLOC_FAIL;
+extern const isc::log::MessageID DHCP6_LEASE_DATA;
+extern const isc::log::MessageID DHCP6_LEASE_NA_WITHOUT_DUID;
+extern const isc::log::MessageID DHCP6_LEASE_PD_WITHOUT_DUID;
+extern const isc::log::MessageID DHCP6_LEASE_RENEW;
+extern const isc::log::MessageID DHCP6_NOT_RUNNING;
+extern const isc::log::MessageID DHCP6_NO_INTERFACES;
+extern const isc::log::MessageID DHCP6_NO_SOCKETS_OPEN;
+extern const isc::log::MessageID DHCP6_OPEN_SOCKET;
+extern const isc::log::MessageID DHCP6_OPEN_SOCKET_FAIL;
+extern const isc::log::MessageID DHCP6_PACKET_DROP_DHCP_DISABLED;
+extern const isc::log::MessageID DHCP6_PACKET_DROP_PARSE_FAIL;
+extern const isc::log::MessageID DHCP6_PACKET_DROP_SERVERID_MISMATCH;
+extern const isc::log::MessageID DHCP6_PACKET_DROP_UNICAST;
+extern const isc::log::MessageID DHCP6_PACKET_OPTIONS_SKIPPED;
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_EXCEPTION;
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_FAIL;
+extern const isc::log::MessageID DHCP6_PACKET_PROCESS_STD_EXCEPTION;
+extern const isc::log::MessageID DHCP6_PACKET_RECEIVED;
+extern const isc::log::MessageID DHCP6_PACKET_RECEIVE_FAIL;
+extern const isc::log::MessageID DHCP6_PACKET_SEND_FAIL;
+extern const isc::log::MessageID DHCP6_PACK_FAIL;
+extern const isc::log::MessageID DHCP6_PARSER_COMMIT_EXCEPTION;
+extern const isc::log::MessageID DHCP6_PARSER_COMMIT_FAIL;
+extern const isc::log::MessageID DHCP6_PARSER_EXCEPTION;
+extern const isc::log::MessageID DHCP6_PARSER_FAIL;
+extern const isc::log::MessageID DHCP6_PD_LEASE_ADVERT;
+extern const isc::log::MessageID DHCP6_PD_LEASE_ADVERT_FAIL;
+extern const isc::log::MessageID DHCP6_PD_LEASE_ALLOC;
+extern const isc::log::MessageID DHCP6_PD_LEASE_ALLOC_FAIL;
+extern const isc::log::MessageID DHCP6_PD_LEASE_RENEW;
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_EXTEND;
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_RELEASE;
+extern const isc::log::MessageID DHCP6_PROCESS_IA_NA_REQUEST;
+extern const isc::log::MessageID DHCP6_PROCESS_IA_PD_EXTEND;
+extern const isc::log::MessageID DHCP6_PROCESS_IA_PD_REQUEST;
+extern const isc::log::MessageID DHCP6_QUERY_DATA;
+extern const isc::log::MessageID DHCP6_RAPID_COMMIT;
+extern const isc::log::MessageID DHCP6_RELEASE_NA;
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL;
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL_WRONG_DUID;
+extern const isc::log::MessageID DHCP6_RELEASE_NA_FAIL_WRONG_IAID;
+extern const isc::log::MessageID DHCP6_RELEASE_PD;
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL;
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL_WRONG_DUID;
+extern const isc::log::MessageID DHCP6_RELEASE_PD_FAIL_WRONG_IAID;
+extern const isc::log::MessageID DHCP6_REQUIRED_OPTIONS_CHECK_FAIL;
+extern const isc::log::MessageID DHCP6_RESPONSE_DATA;
+extern const isc::log::MessageID DHCP6_SERVER_FAILED;
+extern const isc::log::MessageID DHCP6_SHUTDOWN;
+extern const isc::log::MessageID DHCP6_SHUTDOWN_REQUEST;
+extern const isc::log::MessageID DHCP6_SOCKET_UNICAST;
+extern const isc::log::MessageID DHCP6_SRV_CONSTRUCT_ERROR;
+extern const isc::log::MessageID DHCP6_SRV_D2STOP_ERROR;
+extern const isc::log::MessageID DHCP6_STANDALONE;
+extern const isc::log::MessageID DHCP6_STARTED;
+extern const isc::log::MessageID DHCP6_STARTING;
+extern const isc::log::MessageID DHCP6_START_INFO;
+extern const isc::log::MessageID DHCP6_SUBNET_DATA;
+extern const isc::log::MessageID DHCP6_SUBNET_DYNAMICALLY_CHANGED;
+extern const isc::log::MessageID DHCP6_SUBNET_SELECTED;
+extern const isc::log::MessageID DHCP6_SUBNET_SELECTION_FAILED;
+extern const isc::log::MessageID DHCP6_UNKNOWN_MSG_RECEIVED;
+extern const isc::log::MessageID DHCP6_USING_SERVERID;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // DHCP6_MESSAGES_H
index 5c1604f3d30aa7032c503a8e142d55436e3f04db..a64e4394bce103d8dc307021b24b28e916bb5442 100644 (file)
@@ -1,5 +1,2 @@
 /kea-lfc
 /kea-lfc.8
-/lfc_messages.cc
-/lfc_messages.h
-/s-messages
index fa29381a2854e193a08049c30c0d9c5986a2000a..fe4cac8629642ec3b37c9d0859be0811e7ab47f6 100644 (file)
@@ -9,8 +9,6 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES  = lfc_messages.h lfc_messages.cc s-messages
-
 man_MANS = kea-lfc.8
 DISTCLEANFILES = $(man_MANS)
 EXTRA_DIST = $(man_MANS) kea-lfc.xml lfc.dox
@@ -29,14 +27,6 @@ $(man_MANS):
 
 endif
 
-lfc_messages.h lfc_messages.cc: s-messages
-
-s-messages: lfc_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/lfc/lfc_messages.mes
-       touch $@
-
-BUILT_SOURCES = lfc_messages.h lfc_messages.cc
-
 # convenience archive
 
 noinst_LTLIBRARIES = liblfc.la
@@ -44,8 +34,7 @@ noinst_LTLIBRARIES = liblfc.la
 liblfc_la_SOURCES  =
 liblfc_la_SOURCES += lfc_controller.h lfc_controller.cc
 liblfc_la_SOURCES += lfc_log.h lfc_log.cc
-
-nodist_liblfc_la_SOURCES = lfc_messages.h lfc_messages.cc
+liblfc_la_SOURCES += lfc_messages.h lfc_messages.cc
 EXTRA_DIST += lfc_messages.mes
 
 sbin_PROGRAMS = kea-lfc
@@ -97,3 +86,36 @@ kea_lfc_LDFLAGS += $(CQL_LIBS)
 endif
 
 kea_lfcdir = $(pkgdatadir)
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f lfc_messages.h lfc_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: lfc_messages.h lfc_messages.cc
+       @echo Message files regenerated
+
+lfc_messages.h lfc_messages.cc: lfc_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/lfc/lfc_messages.mes
+
+else
+
+messages lfc_messages.h lfc_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
diff --git a/src/bin/lfc/lfc_messages.cc b/src/bin/lfc/lfc_messages.cc
new file mode 100644 (file)
index 0000000..b12d3ac
--- /dev/null
@@ -0,0 +1,45 @@
+// File created from ../../../src/bin/lfc/lfc_messages.mes on Fri Feb 08 2019 20:33
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace lfc {
+
+extern const isc::log::MessageID LFC_FAIL_PID_CREATE = "LFC_FAIL_PID_CREATE";
+extern const isc::log::MessageID LFC_FAIL_PID_DEL = "LFC_FAIL_PID_DEL";
+extern const isc::log::MessageID LFC_FAIL_PROCESS = "LFC_FAIL_PROCESS";
+extern const isc::log::MessageID LFC_FAIL_ROTATE = "LFC_FAIL_ROTATE";
+extern const isc::log::MessageID LFC_PROCESSING = "LFC_PROCESSING";
+extern const isc::log::MessageID LFC_READ_STATS = "LFC_READ_STATS";
+extern const isc::log::MessageID LFC_ROTATING = "LFC_ROTATING";
+extern const isc::log::MessageID LFC_RUNNING = "LFC_RUNNING";
+extern const isc::log::MessageID LFC_START = "LFC_START";
+extern const isc::log::MessageID LFC_TERMINATE = "LFC_TERMINATE";
+extern const isc::log::MessageID LFC_WRITE_STATS = "LFC_WRITE_STATS";
+
+} // namespace lfc
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "LFC_FAIL_PID_CREATE", ": %1",
+    "LFC_FAIL_PID_DEL", ": %1",
+    "LFC_FAIL_PROCESS", ": %1",
+    "LFC_FAIL_ROTATE", ": %1",
+    "LFC_PROCESSING", "Previous file: %1, copy file: %2",
+    "LFC_READ_STATS", "Leases: %1, attempts: %2, errors: %3.",
+    "LFC_ROTATING", "LFC rotating files",
+    "LFC_RUNNING", "LFC instance already running",
+    "LFC_START", "Starting lease file cleanup",
+    "LFC_TERMINATE", "LFC finished processing",
+    "LFC_WRITE_STATS", "Leases: %1, attempts: %2, errors: %3.",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/lfc/lfc_messages.h b/src/bin/lfc/lfc_messages.h
new file mode 100644 (file)
index 0000000..3fe910c
--- /dev/null
@@ -0,0 +1,26 @@
+// File created from ../../../src/bin/lfc/lfc_messages.mes on Fri Feb 08 2019 20:33
+
+#ifndef LFC_MESSAGES_H
+#define LFC_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace lfc {
+
+extern const isc::log::MessageID LFC_FAIL_PID_CREATE;
+extern const isc::log::MessageID LFC_FAIL_PID_DEL;
+extern const isc::log::MessageID LFC_FAIL_PROCESS;
+extern const isc::log::MessageID LFC_FAIL_ROTATE;
+extern const isc::log::MessageID LFC_PROCESSING;
+extern const isc::log::MessageID LFC_READ_STATS;
+extern const isc::log::MessageID LFC_ROTATING;
+extern const isc::log::MessageID LFC_RUNNING;
+extern const isc::log::MessageID LFC_START;
+extern const isc::log::MessageID LFC_TERMINATE;
+extern const isc::log::MessageID LFC_WRITE_STATS;
+
+} // namespace lfc
+} // namespace isc
+
+#endif // LFC_MESSAGES_H
index 053be53a384b88a88f630fecb22cb191afe08f27..e97eafa0a26106e283dcd0d64cb2655b8afdbefb 100644 (file)
@@ -1,5 +1,2 @@
 kea-netconf
 kea-netconf.8
-netconf_messages.cc
-netconf_messages.h
-s-messages
index 50040b69b9c88a13d57b537763aad0e82e96765d..a459320c66c2ad9c17a824ec60565238cbdd165e 100644 (file)
@@ -11,7 +11,7 @@ if USE_STATIC_LINK
 AM_LDFLAGS = -static
 endif
 
-CLEANFILES  = *.gcno *.gcda netconf_messages.h netconf_messages.cc s-messages
+CLEANFILES  = *.gcno *.gcda
 
 man_MANS = kea-netconf.8
 DISTCLEANFILES = $(man_MANS)
@@ -32,14 +32,6 @@ $(man_MANS):
 
 endif
 
-netconf_messages.h netconf_messages.cc: s-messages
-
-s-messages: netconf_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/netconf/netconf_messages.mes
-       touch $@
-
-BUILT_SOURCES = netconf_messages.h netconf_messages.cc
-
 # convenience archive
 
 noinst_LTLIBRARIES = libnetconf.la
@@ -60,8 +52,7 @@ libnetconf_la_SOURCES += parser_context_decl.h
 libnetconf_la_SOURCES += simple_parser.cc simple_parser.h
 libnetconf_la_SOURCES += location.hh position.hh stack.hh
 libnetconf_la_SOURCES += netconf_lexer.ll netconf_parser.yy
-
-nodist_libnetconf_la_SOURCES = netconf_messages.h netconf_messages.cc
+libnetconf_la_SOURCES += netconf_messages.h netconf_messages.cc
 
 EXTRA_DIST += netconf_messages.mes
 EXTRA_DIST += netconf_lexer.ll
@@ -89,6 +80,39 @@ kea_netconf_LDADD += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS) $(BOOST_LIBS) $(SYSREPO_LI
 
 kea_netconfdir = $(pkgdatadir)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f netconf_messages.h netconf_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: netconf_messages.h netconf_messages.cc
+       @echo Message files regenerated
+
+netconf_messages.h netconf_messages.cc: netconf_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/netconf/netconf_messages.mes
+
+else
+
+messages netconf_messages.h netconf_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 if GENERATE_PARSER
 
 parser: netconf_lexer.cc location.hh position.hh stack.hh netconf_parser.cc netconf_parser.h
diff --git a/src/bin/netconf/netconf_messages.cc b/src/bin/netconf/netconf_messages.cc
new file mode 100644 (file)
index 0000000..81f0188
--- /dev/null
@@ -0,0 +1,85 @@
+// File created from ../../../src/bin/netconf/netconf_messages.mes on Fri Feb 08 2019 20:57
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace netconf {
+
+extern const isc::log::MessageID NETCONF_BOOT_UPDATE_COMPLETED = "NETCONF_BOOT_UPDATE_COMPLETED";
+extern const isc::log::MessageID NETCONF_CONFIG_CHANGED_DETAIL = "NETCONF_CONFIG_CHANGED_DETAIL";
+extern const isc::log::MessageID NETCONF_CONFIG_CHANGE_EVENT = "NETCONF_CONFIG_CHANGE_EVENT";
+extern const isc::log::MessageID NETCONF_CONFIG_CHECK_FAIL = "NETCONF_CONFIG_CHECK_FAIL";
+extern const isc::log::MessageID NETCONF_CONFIG_FAIL = "NETCONF_CONFIG_FAIL";
+extern const isc::log::MessageID NETCONF_FAILED = "NETCONF_FAILED";
+extern const isc::log::MessageID NETCONF_GET_CONFIG = "NETCONF_GET_CONFIG";
+extern const isc::log::MessageID NETCONF_GET_CONFIG_FAILED = "NETCONF_GET_CONFIG_FAILED";
+extern const isc::log::MessageID NETCONF_GET_CONFIG_STARTED = "NETCONF_GET_CONFIG_STARTED";
+extern const isc::log::MessageID NETCONF_LOG_CHANGE_FAIL = "NETCONF_LOG_CHANGE_FAIL";
+extern const isc::log::MessageID NETCONF_MODULE_INSTALL = "NETCONF_MODULE_INSTALL";
+extern const isc::log::MessageID NETCONF_MODULE_MISSING_ERR = "NETCONF_MODULE_MISSING_ERR";
+extern const isc::log::MessageID NETCONF_MODULE_MISSING_WARN = "NETCONF_MODULE_MISSING_WARN";
+extern const isc::log::MessageID NETCONF_MODULE_REVISION_ERR = "NETCONF_MODULE_REVISION_ERR";
+extern const isc::log::MessageID NETCONF_MODULE_REVISION_WARN = "NETCONF_MODULE_REVISION_WARN";
+extern const isc::log::MessageID NETCONF_RUN_EXIT = "NETCONF_RUN_EXIT";
+extern const isc::log::MessageID NETCONF_SET_CONFIG = "NETCONF_SET_CONFIG";
+extern const isc::log::MessageID NETCONF_SET_CONFIG_FAILED = "NETCONF_SET_CONFIG_FAILED";
+extern const isc::log::MessageID NETCONF_SET_CONFIG_STARTED = "NETCONF_SET_CONFIG_STARTED";
+extern const isc::log::MessageID NETCONF_STARTED = "NETCONF_STARTED";
+extern const isc::log::MessageID NETCONF_SUBSCRIBE_CONFIG = "NETCONF_SUBSCRIBE_CONFIG";
+extern const isc::log::MessageID NETCONF_SUBSCRIBE_CONFIG_FAILED = "NETCONF_SUBSCRIBE_CONFIG_FAILED";
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG = "NETCONF_UPDATE_CONFIG";
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_COMPLETED = "NETCONF_UPDATE_CONFIG_COMPLETED";
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_FAILED = "NETCONF_UPDATE_CONFIG_FAILED";
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_STARTED = "NETCONF_UPDATE_CONFIG_STARTED";
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG = "NETCONF_VALIDATE_CONFIG";
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_COMPLETED = "NETCONF_VALIDATE_CONFIG_COMPLETED";
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_FAILED = "NETCONF_VALIDATE_CONFIG_FAILED";
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_REJECTED = "NETCONF_VALIDATE_CONFIG_REJECTED";
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_STARTED = "NETCONF_VALIDATE_CONFIG_STARTED";
+
+} // namespace netconf
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "NETCONF_BOOT_UPDATE_COMPLETED", "Boot-update configuration completed for server %1",
+    "NETCONF_CONFIG_CHANGED_DETAIL", "YANG configuration changed: %1",
+    "NETCONF_CONFIG_CHANGE_EVENT", "Received YANG configuration change %1 event",
+    "NETCONF_CONFIG_CHECK_FAIL", "Netconf configuration check failed: %1",
+    "NETCONF_CONFIG_FAIL", "Netconf configuration failed: %1",
+    "NETCONF_FAILED", "application experienced a fatal error: %1",
+    "NETCONF_GET_CONFIG", "got configuration from %1 server: %2",
+    "NETCONF_GET_CONFIG_FAILED", "getting configuration from %1 server failed: %2",
+    "NETCONF_GET_CONFIG_STARTED", "getting configuration from %1 server",
+    "NETCONF_LOG_CHANGE_FAIL", "Netconf configuration change logging failed: %1",
+    "NETCONF_MODULE_INSTALL", "Sysrepo (un)installs a module: %1 (revision %2)",
+    "NETCONF_MODULE_MISSING_ERR", "Missing essential module %1 in sysrepo",
+    "NETCONF_MODULE_MISSING_WARN", "Missing module %1 in sysrepo",
+    "NETCONF_MODULE_REVISION_ERR", "Essential module %1 does have the right revision: expected %2, got %3",
+    "NETCONF_MODULE_REVISION_WARN", "Module %1 does have the right revision: expected %2, got %3",
+    "NETCONF_RUN_EXIT", "application is exiting the event loop",
+    "NETCONF_SET_CONFIG", "set configuration to %1 server: %2",
+    "NETCONF_SET_CONFIG_FAILED", "setting configuration to %1 server failed: %2",
+    "NETCONF_SET_CONFIG_STARTED", "setting configuration to %1 server",
+    "NETCONF_STARTED", "Netconf (version %1) started",
+    "NETCONF_SUBSCRIBE_CONFIG", "subscribing configuration changes for %1 server with %2 module",
+    "NETCONF_SUBSCRIBE_CONFIG_FAILED", "subscribe configuration changes for %1 server with %2 module failed: %3",
+    "NETCONF_UPDATE_CONFIG", "updating configuration with %1 server: %2",
+    "NETCONF_UPDATE_CONFIG_COMPLETED", "completed updating configuration for %1 server",
+    "NETCONF_UPDATE_CONFIG_FAILED", "updating configuration with %1 server: %2",
+    "NETCONF_UPDATE_CONFIG_STARTED", "started updating configuration for %1 server",
+    "NETCONF_VALIDATE_CONFIG", "validating configuration with %1 server: %2",
+    "NETCONF_VALIDATE_CONFIG_COMPLETED", "completed validating configuration for %1 server",
+    "NETCONF_VALIDATE_CONFIG_FAILED", "validating configuration with %1 server got an error: %2",
+    "NETCONF_VALIDATE_CONFIG_REJECTED", "validating configuration with %1 server was rejected: %2",
+    "NETCONF_VALIDATE_CONFIG_STARTED", "started validating configuration for %1 server",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/bin/netconf/netconf_messages.h b/src/bin/netconf/netconf_messages.h
new file mode 100644 (file)
index 0000000..6ace56d
--- /dev/null
@@ -0,0 +1,46 @@
+// File created from ../../../src/bin/netconf/netconf_messages.mes on Fri Feb 08 2019 20:57
+
+#ifndef NETCONF_MESSAGES_H
+#define NETCONF_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace netconf {
+
+extern const isc::log::MessageID NETCONF_BOOT_UPDATE_COMPLETED;
+extern const isc::log::MessageID NETCONF_CONFIG_CHANGED_DETAIL;
+extern const isc::log::MessageID NETCONF_CONFIG_CHANGE_EVENT;
+extern const isc::log::MessageID NETCONF_CONFIG_CHECK_FAIL;
+extern const isc::log::MessageID NETCONF_CONFIG_FAIL;
+extern const isc::log::MessageID NETCONF_FAILED;
+extern const isc::log::MessageID NETCONF_GET_CONFIG;
+extern const isc::log::MessageID NETCONF_GET_CONFIG_FAILED;
+extern const isc::log::MessageID NETCONF_GET_CONFIG_STARTED;
+extern const isc::log::MessageID NETCONF_LOG_CHANGE_FAIL;
+extern const isc::log::MessageID NETCONF_MODULE_INSTALL;
+extern const isc::log::MessageID NETCONF_MODULE_MISSING_ERR;
+extern const isc::log::MessageID NETCONF_MODULE_MISSING_WARN;
+extern const isc::log::MessageID NETCONF_MODULE_REVISION_ERR;
+extern const isc::log::MessageID NETCONF_MODULE_REVISION_WARN;
+extern const isc::log::MessageID NETCONF_RUN_EXIT;
+extern const isc::log::MessageID NETCONF_SET_CONFIG;
+extern const isc::log::MessageID NETCONF_SET_CONFIG_FAILED;
+extern const isc::log::MessageID NETCONF_SET_CONFIG_STARTED;
+extern const isc::log::MessageID NETCONF_STARTED;
+extern const isc::log::MessageID NETCONF_SUBSCRIBE_CONFIG;
+extern const isc::log::MessageID NETCONF_SUBSCRIBE_CONFIG_FAILED;
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG;
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_COMPLETED;
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_FAILED;
+extern const isc::log::MessageID NETCONF_UPDATE_CONFIG_STARTED;
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG;
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_COMPLETED;
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_FAILED;
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_REJECTED;
+extern const isc::log::MessageID NETCONF_VALIDATE_CONFIG_STARTED;
+
+} // namespace netconf
+} // namespace isc
+
+#endif // NETCONF_MESSAGES_H
index 0be25998cd01ed472326c500cca2226427176869..35b5e99aee31762e1675c5a067f7628b7a191422 100644 (file)
@@ -1,4 +1 @@
-/ha_messages.cc
-/ha_messages.h
-/s-messages
 /html
index ffba51caa0fc7193a53b29142b8dc4375541e638..314be830ea395b0e8b7824d90b6cd32c5a0f49e4 100644 (file)
@@ -4,22 +4,11 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-ha_messages.h ha_messages.cc: s-messages
-s-messages: ha_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/high_availability/ha_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = ha_messages.h ha_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = ha_messages.mes
 EXTRA_DIST += ha.dox
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda ha_messages.h ha_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # convenience archive
 
@@ -32,14 +21,13 @@ libha_la_SOURCES += ha_config.cc ha_config.h
 libha_la_SOURCES += ha_config_parser.cc ha_config_parser.h
 libha_la_SOURCES += ha_impl.cc ha_impl.h
 libha_la_SOURCES += ha_log.cc ha_log.h
+libha_la_SOURCES += ha_messages.cc ha_messages.h
 libha_la_SOURCES += ha_server_type.h
 libha_la_SOURCES += ha_service.cc ha_service.h
 libha_la_SOURCES += ha_service_states.cc ha_service_states.h
 libha_la_SOURCES += query_filter.cc query_filter.h
 libha_la_SOURCES += version.cc
 
-nodist_libha_la_SOURCES = ha_messages.cc ha_messages.h
-
 libha_la_CXXFLAGS = $(AM_CXXFLAGS)
 libha_la_CPPFLAGS = $(AM_CPPFLAGS)
 
@@ -69,3 +57,37 @@ libdhcp_ha_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
 libdhcp_ha_la_LIBADD += $(top_builddir)/src/lib/util/threads/libkea-threads.la
 libdhcp_ha_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
 libdhcp_ha_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f ha_messages.h ha_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: ha_messages.h ha_messages.cc
+       @echo Message files regenerated
+
+ha_messages.h ha_messages.cc: ha_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/ha/ha_messages.mes
+
+else
+
+messages ha_messages.h ha_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
diff --git a/src/hooks/dhcp/high_availability/ha_messages.cc b/src/hooks/dhcp/high_availability/ha_messages.cc
new file mode 100644 (file)
index 0000000..38a65b8
--- /dev/null
@@ -0,0 +1,143 @@
+// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Fri Feb 08 2019 20:34
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace ha {
+
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_FAILED = "HA_BUFFER4_RECEIVE_FAILED";
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_NOT_FOR_US = "HA_BUFFER4_RECEIVE_NOT_FOR_US";
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_PACKET_OPTIONS_SKIPPED = "HA_BUFFER4_RECEIVE_PACKET_OPTIONS_SKIPPED";
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_UNPACK_FAILED = "HA_BUFFER4_RECEIVE_UNPACK_FAILED";
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_FAILED = "HA_BUFFER6_RECEIVE_FAILED";
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_NOT_FOR_US = "HA_BUFFER6_RECEIVE_NOT_FOR_US";
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_PACKET_OPTIONS_SKIPPED = "HA_BUFFER6_RECEIVE_PACKET_OPTIONS_SKIPPED";
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_UNPACK_FAILED = "HA_BUFFER6_RECEIVE_UNPACK_FAILED";
+extern const isc::log::MessageID HA_COMMAND_PROCESSED_FAILED = "HA_COMMAND_PROCESSED_FAILED";
+extern const isc::log::MessageID HA_CONFIGURATION_FAILED = "HA_CONFIGURATION_FAILED";
+extern const isc::log::MessageID HA_CONFIGURATION_SUCCESSFUL = "HA_CONFIGURATION_SUCCESSFUL";
+extern const isc::log::MessageID HA_CONFIG_AUTO_FAILOVER_DISABLED = "HA_CONFIG_AUTO_FAILOVER_DISABLED";
+extern const isc::log::MessageID HA_CONFIG_LEASE_SYNCING_DISABLED = "HA_CONFIG_LEASE_SYNCING_DISABLED";
+extern const isc::log::MessageID HA_CONFIG_LEASE_SYNCING_DISABLED_REMINDER = "HA_CONFIG_LEASE_SYNCING_DISABLED_REMINDER";
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_AND_SYNCING_DIFFER = "HA_CONFIG_LEASE_UPDATES_AND_SYNCING_DIFFER";
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_DISABLED = "HA_CONFIG_LEASE_UPDATES_DISABLED";
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_DISABLED_REMINDER = "HA_CONFIG_LEASE_UPDATES_DISABLED_REMINDER";
+extern const isc::log::MessageID HA_CONTINUE_HANDLER_FAILED = "HA_CONTINUE_HANDLER_FAILED";
+extern const isc::log::MessageID HA_DEINIT_OK = "HA_DEINIT_OK";
+extern const isc::log::MessageID HA_DHCP4_START_SERVICE_FAILED = "HA_DHCP4_START_SERVICE_FAILED";
+extern const isc::log::MessageID HA_DHCP6_START_SERVICE_FAILED = "HA_DHCP6_START_SERVICE_FAILED";
+extern const isc::log::MessageID HA_DHCP_DISABLE_COMMUNICATIONS_FAILED = "HA_DHCP_DISABLE_COMMUNICATIONS_FAILED";
+extern const isc::log::MessageID HA_DHCP_DISABLE_FAILED = "HA_DHCP_DISABLE_FAILED";
+extern const isc::log::MessageID HA_DHCP_ENABLE_COMMUNICATIONS_FAILED = "HA_DHCP_ENABLE_COMMUNICATIONS_FAILED";
+extern const isc::log::MessageID HA_DHCP_ENABLE_FAILED = "HA_DHCP_ENABLE_FAILED";
+extern const isc::log::MessageID HA_HEARTBEAT_COMMUNICATIONS_FAILED = "HA_HEARTBEAT_COMMUNICATIONS_FAILED";
+extern const isc::log::MessageID HA_HEARTBEAT_FAILED = "HA_HEARTBEAT_FAILED";
+extern const isc::log::MessageID HA_HEARTBEAT_HANDLER_FAILED = "HA_HEARTBEAT_HANDLER_FAILED";
+extern const isc::log::MessageID HA_HIGH_CLOCK_SKEW = "HA_HIGH_CLOCK_SKEW";
+extern const isc::log::MessageID HA_HIGH_CLOCK_SKEW_CAUSES_TERMINATION = "HA_HIGH_CLOCK_SKEW_CAUSES_TERMINATION";
+extern const isc::log::MessageID HA_INIT_OK = "HA_INIT_OK";
+extern const isc::log::MessageID HA_LEASES4_COMMITTED_FAILED = "HA_LEASES4_COMMITTED_FAILED";
+extern const isc::log::MessageID HA_LEASES4_COMMITTED_NOTHING_TO_UPDATE = "HA_LEASES4_COMMITTED_NOTHING_TO_UPDATE";
+extern const isc::log::MessageID HA_LEASES6_COMMITTED_FAILED = "HA_LEASES6_COMMITTED_FAILED";
+extern const isc::log::MessageID HA_LEASES6_COMMITTED_NOTHING_TO_UPDATE = "HA_LEASES6_COMMITTED_NOTHING_TO_UPDATE";
+extern const isc::log::MessageID HA_LEASES_SYNC_COMMUNICATIONS_FAILED = "HA_LEASES_SYNC_COMMUNICATIONS_FAILED";
+extern const isc::log::MessageID HA_LEASES_SYNC_FAILED = "HA_LEASES_SYNC_FAILED";
+extern const isc::log::MessageID HA_LEASES_SYNC_LEASE_PAGE_RECEIVED = "HA_LEASES_SYNC_LEASE_PAGE_RECEIVED";
+extern const isc::log::MessageID HA_LEASE_SYNC_FAILED = "HA_LEASE_SYNC_FAILED";
+extern const isc::log::MessageID HA_LEASE_SYNC_STALE_LEASE4_SKIP = "HA_LEASE_SYNC_STALE_LEASE4_SKIP";
+extern const isc::log::MessageID HA_LEASE_SYNC_STALE_LEASE6_SKIP = "HA_LEASE_SYNC_STALE_LEASE6_SKIP";
+extern const isc::log::MessageID HA_LEASE_UPDATES_DISABLED = "HA_LEASE_UPDATES_DISABLED";
+extern const isc::log::MessageID HA_LEASE_UPDATES_ENABLED = "HA_LEASE_UPDATES_ENABLED";
+extern const isc::log::MessageID HA_LEASE_UPDATE_COMMUNICATIONS_FAILED = "HA_LEASE_UPDATE_COMMUNICATIONS_FAILED";
+extern const isc::log::MessageID HA_LEASE_UPDATE_FAILED = "HA_LEASE_UPDATE_FAILED";
+extern const isc::log::MessageID HA_LOAD_BALANCING_DUID_MISSING = "HA_LOAD_BALANCING_DUID_MISSING";
+extern const isc::log::MessageID HA_LOAD_BALANCING_IDENTIFIER_MISSING = "HA_LOAD_BALANCING_IDENTIFIER_MISSING";
+extern const isc::log::MessageID HA_LOCAL_DHCP_DISABLE = "HA_LOCAL_DHCP_DISABLE";
+extern const isc::log::MessageID HA_LOCAL_DHCP_ENABLE = "HA_LOCAL_DHCP_ENABLE";
+extern const isc::log::MessageID HA_MISSING_CONFIGURATION = "HA_MISSING_CONFIGURATION";
+extern const isc::log::MessageID HA_SCOPES_HANDLER_FAILED = "HA_SCOPES_HANDLER_FAILED";
+extern const isc::log::MessageID HA_SERVICE_STARTED = "HA_SERVICE_STARTED";
+extern const isc::log::MessageID HA_STATE_MACHINE_CONTINUED = "HA_STATE_MACHINE_CONTINUED";
+extern const isc::log::MessageID HA_STATE_MACHINE_PAUSED = "HA_STATE_MACHINE_PAUSED";
+extern const isc::log::MessageID HA_STATE_TRANSITION = "HA_STATE_TRANSITION";
+extern const isc::log::MessageID HA_SYNC_FAILED = "HA_SYNC_FAILED";
+extern const isc::log::MessageID HA_SYNC_HANDLER_FAILED = "HA_SYNC_HANDLER_FAILED";
+extern const isc::log::MessageID HA_SYNC_START = "HA_SYNC_START";
+extern const isc::log::MessageID HA_SYNC_SUCCESSFUL = "HA_SYNC_SUCCESSFUL";
+extern const isc::log::MessageID HA_TERMINATED = "HA_TERMINATED";
+
+} // namespace ha
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "HA_BUFFER4_RECEIVE_FAILED", "buffer4_receive callout failed: %1",
+    "HA_BUFFER4_RECEIVE_NOT_FOR_US", "%1: dropping query to be processed by another server",
+    "HA_BUFFER4_RECEIVE_PACKET_OPTIONS_SKIPPED", "an error upacking an option, caused subsequent options to be skipped: %1",
+    "HA_BUFFER4_RECEIVE_UNPACK_FAILED", "failed to parse query from %1 to %2, received over interface %3, reason: %4",
+    "HA_BUFFER6_RECEIVE_FAILED", "buffer6_receive callout failed: %1",
+    "HA_BUFFER6_RECEIVE_NOT_FOR_US", "%1: dropping query to be processed by another server",
+    "HA_BUFFER6_RECEIVE_PACKET_OPTIONS_SKIPPED", "an error upacking an option, caused subsequent options to be skipped: %1",
+    "HA_BUFFER6_RECEIVE_UNPACK_FAILED", "failed to parse query from %1 to %2, received over interface %3, reason: %4",
+    "HA_COMMAND_PROCESSED_FAILED", "command_processed callout failed: %1",
+    "HA_CONFIGURATION_FAILED", "failed to configure High Availability hooks library: %1",
+    "HA_CONFIGURATION_SUCCESSFUL", "HA hook library has been successfully configured",
+    "HA_CONFIG_AUTO_FAILOVER_DISABLED", "auto-failover disabled for %1",
+    "HA_CONFIG_LEASE_SYNCING_DISABLED", "lease database synchronization between HA servers is disabled",
+    "HA_CONFIG_LEASE_SYNCING_DISABLED_REMINDER", "bypassing SYNCING state because lease database synchronization is administratively disabled",
+    "HA_CONFIG_LEASE_UPDATES_AND_SYNCING_DIFFER", "unusual configuration where \"send-lease-updates\": %1 and \"sync-leases\": %2",
+    "HA_CONFIG_LEASE_UPDATES_DISABLED", "lease updates will not be generated",
+    "HA_CONFIG_LEASE_UPDATES_DISABLED_REMINDER", "lease updates are administratively disabled and will not be generated while in %1 state",
+    "HA_CONTINUE_HANDLER_FAILED", "ha-continue command failed: %1",
+    "HA_DEINIT_OK", "unloading High Availability hooks library successful",
+    "HA_DHCP4_START_SERVICE_FAILED", "failed to start DHCPv4 HA service in dhcp4_srv_configured callout: %1",
+    "HA_DHCP6_START_SERVICE_FAILED", "failed to start DHCPv4 HA service in dhcp6_srv_configured callout: %1",
+    "HA_DHCP_DISABLE_COMMUNICATIONS_FAILED", "failed to send request to disable DHCP service of %1: %2",
+    "HA_DHCP_DISABLE_FAILED", "failed to disable DHCP service of %1: %2",
+    "HA_DHCP_ENABLE_COMMUNICATIONS_FAILED", "failed to send request to enable DHCP service of %1: %2",
+    "HA_DHCP_ENABLE_FAILED", "failed to enable DHCP service of %1: %2",
+    "HA_HEARTBEAT_COMMUNICATIONS_FAILED", "failed to send heartbeat to %1: %2",
+    "HA_HEARTBEAT_FAILED", "heartbeat to %1 failed: %2",
+    "HA_HEARTBEAT_HANDLER_FAILED", "heartbeat command failed: %1",
+    "HA_HIGH_CLOCK_SKEW", "partner's clock is %1, please synchronize clocks!",
+    "HA_HIGH_CLOCK_SKEW_CAUSES_TERMINATION", "partner's clock is %1, causing HA service to terminate",
+    "HA_INIT_OK", "loading High Availability hooks library successful",
+    "HA_LEASES4_COMMITTED_FAILED", "leases4_committed callout failed: %1",
+    "HA_LEASES4_COMMITTED_NOTHING_TO_UPDATE", "%1: leases4_committed callout was invoked without any leases",
+    "HA_LEASES6_COMMITTED_FAILED", "leases6_committed callout failed: %1",
+    "HA_LEASES6_COMMITTED_NOTHING_TO_UPDATE", "%1: leases6_committed callout was invoked without any leases",
+    "HA_LEASES_SYNC_COMMUNICATIONS_FAILED", "failed to communicate with %1 while syncing leases: %2",
+    "HA_LEASES_SYNC_FAILED", "failed to synchronize leases with %1: %2",
+    "HA_LEASES_SYNC_LEASE_PAGE_RECEIVED", "received %1 leases from %2",
+    "HA_LEASE_SYNC_FAILED", "synchronization failed for lease: %1, reason: %2",
+    "HA_LEASE_SYNC_STALE_LEASE4_SKIP", "skipping stale lease %1 in subnet %2",
+    "HA_LEASE_SYNC_STALE_LEASE6_SKIP", "skipping stale lease %1 in subnet %2",
+    "HA_LEASE_UPDATES_DISABLED", "lease updates will not be sent to the partner while in %1 state",
+    "HA_LEASE_UPDATES_ENABLED", "lease updates will be sent to the partner while in %1 state",
+    "HA_LEASE_UPDATE_COMMUNICATIONS_FAILED", "%1: failed to communicate with %2: %3",
+    "HA_LEASE_UPDATE_FAILED", "%1: lease update to %2 failed: %3",
+    "HA_LOAD_BALANCING_DUID_MISSING", "load balancing failed for the DHCPv6 message (transaction id: %1) because DUID is missing",
+    "HA_LOAD_BALANCING_IDENTIFIER_MISSING", "load balancing failed for the DHCPv4 message (transaction id: %1) because HW address and client identifier are missing",
+    "HA_LOCAL_DHCP_DISABLE", "local DHCP service is disabled while the %1 is in the %2 state",
+    "HA_LOCAL_DHCP_ENABLE", "local DHCP service is enabled while the %1 is in the %2 state",
+    "HA_MISSING_CONFIGURATION", "high-availability parameter not specified for High Availability hooks library",
+    "HA_SCOPES_HANDLER_FAILED", "ha-scopes command failed: %1",
+    "HA_SERVICE_STARTED", "started high availability service in %1 mode as %2 server",
+    "HA_STATE_MACHINE_CONTINUED", "state machine is un-paused",
+    "HA_STATE_MACHINE_PAUSED", "state machine paused in state %1",
+    "HA_STATE_TRANSITION", "server transitions from %1 to %2 state, partner state is %3",
+    "HA_SYNC_FAILED", "lease database synchronization with %1 failed: %2",
+    "HA_SYNC_HANDLER_FAILED", "ha-sync command failed: %1",
+    "HA_SYNC_START", "starting lease database synchronization with %1",
+    "HA_SYNC_SUCCESSFUL", "lease database synchronization with %1 completed successfully in %2",
+    "HA_TERMINATED", "HA service terminated because of the unacceptable clock skew; fix the problem and restart!",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/hooks/dhcp/high_availability/ha_messages.h b/src/hooks/dhcp/high_availability/ha_messages.h
new file mode 100644 (file)
index 0000000..2c003fe
--- /dev/null
@@ -0,0 +1,75 @@
+// File created from ../../../../src/hooks/dhcp/high_availability/ha_messages.mes on Fri Feb 08 2019 20:34
+
+#ifndef HA_MESSAGES_H
+#define HA_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace ha {
+
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_FAILED;
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_NOT_FOR_US;
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_PACKET_OPTIONS_SKIPPED;
+extern const isc::log::MessageID HA_BUFFER4_RECEIVE_UNPACK_FAILED;
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_FAILED;
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_NOT_FOR_US;
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_PACKET_OPTIONS_SKIPPED;
+extern const isc::log::MessageID HA_BUFFER6_RECEIVE_UNPACK_FAILED;
+extern const isc::log::MessageID HA_COMMAND_PROCESSED_FAILED;
+extern const isc::log::MessageID HA_CONFIGURATION_FAILED;
+extern const isc::log::MessageID HA_CONFIGURATION_SUCCESSFUL;
+extern const isc::log::MessageID HA_CONFIG_AUTO_FAILOVER_DISABLED;
+extern const isc::log::MessageID HA_CONFIG_LEASE_SYNCING_DISABLED;
+extern const isc::log::MessageID HA_CONFIG_LEASE_SYNCING_DISABLED_REMINDER;
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_AND_SYNCING_DIFFER;
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_DISABLED;
+extern const isc::log::MessageID HA_CONFIG_LEASE_UPDATES_DISABLED_REMINDER;
+extern const isc::log::MessageID HA_CONTINUE_HANDLER_FAILED;
+extern const isc::log::MessageID HA_DEINIT_OK;
+extern const isc::log::MessageID HA_DHCP4_START_SERVICE_FAILED;
+extern const isc::log::MessageID HA_DHCP6_START_SERVICE_FAILED;
+extern const isc::log::MessageID HA_DHCP_DISABLE_COMMUNICATIONS_FAILED;
+extern const isc::log::MessageID HA_DHCP_DISABLE_FAILED;
+extern const isc::log::MessageID HA_DHCP_ENABLE_COMMUNICATIONS_FAILED;
+extern const isc::log::MessageID HA_DHCP_ENABLE_FAILED;
+extern const isc::log::MessageID HA_HEARTBEAT_COMMUNICATIONS_FAILED;
+extern const isc::log::MessageID HA_HEARTBEAT_FAILED;
+extern const isc::log::MessageID HA_HEARTBEAT_HANDLER_FAILED;
+extern const isc::log::MessageID HA_HIGH_CLOCK_SKEW;
+extern const isc::log::MessageID HA_HIGH_CLOCK_SKEW_CAUSES_TERMINATION;
+extern const isc::log::MessageID HA_INIT_OK;
+extern const isc::log::MessageID HA_LEASES4_COMMITTED_FAILED;
+extern const isc::log::MessageID HA_LEASES4_COMMITTED_NOTHING_TO_UPDATE;
+extern const isc::log::MessageID HA_LEASES6_COMMITTED_FAILED;
+extern const isc::log::MessageID HA_LEASES6_COMMITTED_NOTHING_TO_UPDATE;
+extern const isc::log::MessageID HA_LEASES_SYNC_COMMUNICATIONS_FAILED;
+extern const isc::log::MessageID HA_LEASES_SYNC_FAILED;
+extern const isc::log::MessageID HA_LEASES_SYNC_LEASE_PAGE_RECEIVED;
+extern const isc::log::MessageID HA_LEASE_SYNC_FAILED;
+extern const isc::log::MessageID HA_LEASE_SYNC_STALE_LEASE4_SKIP;
+extern const isc::log::MessageID HA_LEASE_SYNC_STALE_LEASE6_SKIP;
+extern const isc::log::MessageID HA_LEASE_UPDATES_DISABLED;
+extern const isc::log::MessageID HA_LEASE_UPDATES_ENABLED;
+extern const isc::log::MessageID HA_LEASE_UPDATE_COMMUNICATIONS_FAILED;
+extern const isc::log::MessageID HA_LEASE_UPDATE_FAILED;
+extern const isc::log::MessageID HA_LOAD_BALANCING_DUID_MISSING;
+extern const isc::log::MessageID HA_LOAD_BALANCING_IDENTIFIER_MISSING;
+extern const isc::log::MessageID HA_LOCAL_DHCP_DISABLE;
+extern const isc::log::MessageID HA_LOCAL_DHCP_ENABLE;
+extern const isc::log::MessageID HA_MISSING_CONFIGURATION;
+extern const isc::log::MessageID HA_SCOPES_HANDLER_FAILED;
+extern const isc::log::MessageID HA_SERVICE_STARTED;
+extern const isc::log::MessageID HA_STATE_MACHINE_CONTINUED;
+extern const isc::log::MessageID HA_STATE_MACHINE_PAUSED;
+extern const isc::log::MessageID HA_STATE_TRANSITION;
+extern const isc::log::MessageID HA_SYNC_FAILED;
+extern const isc::log::MessageID HA_SYNC_HANDLER_FAILED;
+extern const isc::log::MessageID HA_SYNC_START;
+extern const isc::log::MessageID HA_SYNC_SUCCESSFUL;
+extern const isc::log::MessageID HA_TERMINATED;
+
+} // namespace ha
+} // namespace isc
+
+#endif // HA_MESSAGES_H
index 310e85370078c1fd7e4a77fac9235e2c274c80f0..35b5e99aee31762e1675c5a067f7628b7a191422 100644 (file)
@@ -1,4 +1 @@
-/lease_cmds_messages.cc
-/lease_cmds_messages.h
-/s-messages
 /html
index d32825540cfa6e18477e17ab2ea2d2e2bf2ab317..464326a4f0a7da116bb40d3e7af528e483567e42 100644 (file)
@@ -4,22 +4,11 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-lease_cmds_messages.h lease_cmds_messages.cc: s-messages
-s-messages: lease_cmds_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = lease_cmds_messages.h lease_cmds_messages.cc
-
 # Ensure that the message file and doxygen file is included in the distribution
 EXTRA_DIST = lease_cmds_messages.mes
 EXTRA_DIST += lease_cmds.dox
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda lease_cmds_messages.h lease_cmds_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # convenience archive
 
@@ -29,10 +18,9 @@ liblease_cmds_la_SOURCES  = lease_cmds.cc lease_cmds.h
 liblease_cmds_la_SOURCES += lease_cmds_callouts.cc
 liblease_cmds_la_SOURCES += lease_parser.h lease_parser.cc
 liblease_cmds_la_SOURCES += lease_cmds_log.cc lease_cmds_log.h
+liblease_cmds_la_SOURCES += lease_cmds_messages.cc lease_cmds_messages.h
 liblease_cmds_la_SOURCES += version.cc
 
-nodist_liblease_cmds_la_SOURCES = lease_cmds_messages.cc lease_cmds_messages.h
-
 liblease_cmds_la_CXXFLAGS = $(AM_CXXFLAGS)
 liblease_cmds_la_CPPFLAGS = $(AM_CPPFLAGS)
 
@@ -63,3 +51,37 @@ libdhcp_lease_cmds_la_LIBADD  += $(top_builddir)/src/lib/exceptions/libkea-excep
 libdhcp_lease_cmds_la_LIBADD  += $(LOG4CPLUS_LIBS)
 libdhcp_lease_cmds_la_LIBADD  += $(CRYPTO_LIBS)
 libdhcp_lease_cmds_la_LIBADD  += $(BOOST_LIBS)
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f lease_cmds_messages.h lease_cmds_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: lease_cmds_messages.h lease_cmds_messages.cc
+       @echo Message files regenerated
+
+lease_cmds_messages.h lease_cmds_messages.cc: lease_cmds_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/lease_cmds/lease_cmds_messages.mes
+
+else
+
+messages lease_cmds_messages.h lease_cmds_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
diff --git a/src/hooks/dhcp/lease_cmds/lease_cmds_messages.cc b/src/hooks/dhcp/lease_cmds/lease_cmds_messages.cc
new file mode 100644 (file)
index 0000000..dad1ccb
--- /dev/null
@@ -0,0 +1,41 @@
+// File created from ../../../../src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes on Fri Feb 08 2019 20:34
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+extern const isc::log::MessageID LEASE_CMDS_ADD4 = "LEASE_CMDS_ADD4";
+extern const isc::log::MessageID LEASE_CMDS_ADD4_FAILED = "LEASE_CMDS_ADD4_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_ADD6 = "LEASE_CMDS_ADD6";
+extern const isc::log::MessageID LEASE_CMDS_ADD6_FAILED = "LEASE_CMDS_ADD6_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_DEINIT_FAILED = "LEASE_CMDS_DEINIT_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_DEINIT_OK = "LEASE_CMDS_DEINIT_OK";
+extern const isc::log::MessageID LEASE_CMDS_DEL4 = "LEASE_CMDS_DEL4";
+extern const isc::log::MessageID LEASE_CMDS_DEL4_FAILED = "LEASE_CMDS_DEL4_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_DEL6 = "LEASE_CMDS_DEL6";
+extern const isc::log::MessageID LEASE_CMDS_DEL6_FAILED = "LEASE_CMDS_DEL6_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_INIT_FAILED = "LEASE_CMDS_INIT_FAILED";
+extern const isc::log::MessageID LEASE_CMDS_INIT_OK = "LEASE_CMDS_INIT_OK";
+
+namespace {
+
+const char* values[] = {
+    "LEASE_CMDS_ADD4", "lease4-add command successful (parameters: %1)",
+    "LEASE_CMDS_ADD4_FAILED", "lease4-add command failed (parameters: %1, reason: %2)",
+    "LEASE_CMDS_ADD6", "lease6-add command successful (parameters: %1)",
+    "LEASE_CMDS_ADD6_FAILED", "Lease6-add command failed (parameters: %1, reason: %2)",
+    "LEASE_CMDS_DEINIT_FAILED", "unloading Lease Commands hooks library failed: %1",
+    "LEASE_CMDS_DEINIT_OK", "unloading Lease Commands hooks library successful",
+    "LEASE_CMDS_DEL4", "lease4-del command successful (parameters: %1)",
+    "LEASE_CMDS_DEL4_FAILED", "lease4-del command failed (parameters: %1, reason: %2)",
+    "LEASE_CMDS_DEL6", "lease4-del command successful (parameters: %1)",
+    "LEASE_CMDS_DEL6_FAILED", "lease6-del command failed (parameters: %1, reason: %2)",
+    "LEASE_CMDS_INIT_FAILED", "loading Lease Commands hooks library failed: %1",
+    "LEASE_CMDS_INIT_OK", "loading Lease Commands hooks library successful",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/hooks/dhcp/lease_cmds/lease_cmds_messages.h b/src/hooks/dhcp/lease_cmds/lease_cmds_messages.h
new file mode 100644 (file)
index 0000000..7fa71b2
--- /dev/null
@@ -0,0 +1,21 @@
+// File created from ../../../../src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes on Fri Feb 08 2019 20:34
+
+#ifndef LEASE_CMDS_MESSAGES_H
+#define LEASE_CMDS_MESSAGES_H
+
+#include <log/message_types.h>
+
+extern const isc::log::MessageID LEASE_CMDS_ADD4;
+extern const isc::log::MessageID LEASE_CMDS_ADD4_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_ADD6;
+extern const isc::log::MessageID LEASE_CMDS_ADD6_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_DEINIT_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_DEINIT_OK;
+extern const isc::log::MessageID LEASE_CMDS_DEL4;
+extern const isc::log::MessageID LEASE_CMDS_DEL4_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_DEL6;
+extern const isc::log::MessageID LEASE_CMDS_DEL6_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_INIT_FAILED;
+extern const isc::log::MessageID LEASE_CMDS_INIT_OK;
+
+#endif // LEASE_CMDS_MESSAGES_H
diff --git a/src/hooks/dhcp/mysql_cb/.gitignore b/src/hooks/dhcp/mysql_cb/.gitignore
deleted file mode 100644 (file)
index 2b15432..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/mysql_cb_messages.cc
-/mysql_cb_messages.h
-/s-messages
index 75890432b42dd46c0823c25b2906f3a714ffc608..a4630bc64f90fbb6962f0d82ee2fff77626a5c72 100644 (file)
@@ -4,21 +4,10 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES) $(MYSQL_CPPFLAGS)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-mysql_cb_messages.h mysql_cb_messages.cc: s-messages
-s-messages: mysql_cb_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = mysql_cb_messages.h mysql_cb_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = mysql_cb_messages.mes
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda mysql_cb_messages.h mysql_cb_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # convenience archive
 
@@ -27,11 +16,10 @@ noinst_LTLIBRARIES = libmysqlcb.la
 libmysqlcb_la_SOURCES  = mysql_cb_callouts.cc
 libmysqlcb_la_SOURCES += mysql_cb_dhcp4.cc mysql_cb_dhcp4.h
 libmysqlcb_la_SOURCES += mysql_cb_impl.cc mysql_cb_impl.h
+libmysqlcb_la_SOURCES += mysql_cb_messages.cc mysql_cb_messages.h
 libmysqlcb_la_SOURCES += mysql_query_macros_dhcp.h
 libmysqlcb_la_SOURCES += version.cc
 
-nodist_libmysqlcb_la_SOURCES = mysql_cb_messages.cc mysql_cb_messages.h
-
 libmysqlcb_la_CXXFLAGS = $(AM_CXXFLAGS)
 libmysqlcb_la_CPPFLAGS = $(AM_CPPFLAGS)
 
@@ -62,3 +50,37 @@ libdhcp_mysql_cb_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
 libdhcp_mysql_cb_la_LIBADD += $(top_builddir)/src/lib/util/threads/libkea-threads.la
 libdhcp_mysql_cb_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
 libdhcp_mysql_cb_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f mysql_cb_messages.h mysql_cb_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: mysql_cb_messages.h mysql_cb_messages.cc
+       @echo Message files regenerated
+
+mysql_cb_messages.h mysql_cb_messages.cc: mysql_cb_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/mysql_cb/mysql_cb_messages.mes
+
+else
+
+messages mysql_cb_messages.h mysql_cb_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_messages.cc b/src/hooks/dhcp/mysql_cb/mysql_cb_messages.cc
new file mode 100644 (file)
index 0000000..cbef905
--- /dev/null
@@ -0,0 +1,23 @@
+// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Fri Feb 08 2019 20:57
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace cb {
+
+
+} // namespace cb
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/hooks/dhcp/mysql_cb/mysql_cb_messages.h b/src/hooks/dhcp/mysql_cb/mysql_cb_messages.h
new file mode 100644 (file)
index 0000000..255b4d1
--- /dev/null
@@ -0,0 +1,15 @@
+// File created from ../../../../src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes on Fri Feb 08 2019 20:57
+
+#ifndef MYSQL_CB_MESSAGES_H
+#define MYSQL_CB_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace cb {
+
+
+} // namespace cb
+} // namespace isc
+
+#endif // MYSQL_CB_MESSAGES_H
index 68df133a50d503beba4afb00aece8c91a5d9eaeb..35b5e99aee31762e1675c5a067f7628b7a191422 100644 (file)
@@ -1,4 +1 @@
-/stat_cmds_messages.cc
-/stat_cmds_messages.h
-/s-messages
 /html
index ccfc3adeef5a4f41570551daec53ad2d665c0287..300ccc64e8189c7a3c32c74f18f8c1e30c98a7ab 100644 (file)
@@ -4,22 +4,11 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-stat_cmds_messages.h stat_cmds_messages.cc: s-messages
-s-messages: stat_cmds_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/stat_cmds/stat_cmds_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = stat_cmds_messages.h stat_cmds_messages.cc
-
 # Ensure that the message file and doxygen file is included in the distribution
 EXTRA_DIST = stat_cmds_messages.mes
 EXTRA_DIST += stat_cmds.dox
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda stat_cmds_messages.h stat_cmds_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # convenience archive
 
@@ -28,10 +17,9 @@ noinst_LTLIBRARIES = libstat_cmds.la
 libstat_cmds_la_SOURCES  = stat_cmds.cc stat_cmds.h
 libstat_cmds_la_SOURCES += stat_cmds_callouts.cc
 libstat_cmds_la_SOURCES += stat_cmds_log.cc stat_cmds_log.h
+libstat_cmds_la_SOURCES += stat_cmds_messages.cc stat_cmds_messages.h
 libstat_cmds_la_SOURCES += version.cc
 
-nodist_libstat_cmds_la_SOURCES = stat_cmds_messages.cc stat_cmds_messages.h
-
 libstat_cmds_la_CXXFLAGS = $(AM_CXXFLAGS)
 libstat_cmds_la_CPPFLAGS = $(AM_CPPFLAGS)
 
@@ -61,3 +49,37 @@ libdhcp_stat_cmds_la_LIBADD  += $(top_builddir)/src/lib/exceptions/libkea-except
 libdhcp_stat_cmds_la_LIBADD  += $(LOG4CPLUS_LIBS)
 libdhcp_stat_cmds_la_LIBADD  += $(CRYPTO_LIBS)
 libdhcp_stat_cmds_la_LIBADD  += $(BOOST_LIBS)
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f stat_cmds_messages.h stat_cmds_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: stat_cmds_messages.h stat_cmds_messages.cc
+       @echo Message files regenerated
+
+stat_cmds_messages.h stat_cmds_messages.cc: stat_cmds_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/stat_cmds/stat_cmds_messages.mes
+
+else
+
+messages stat_cmds_messages.h stat_cmds_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
diff --git a/src/hooks/dhcp/stat_cmds/stat_cmds_messages.cc b/src/hooks/dhcp/stat_cmds/stat_cmds_messages.cc
new file mode 100644 (file)
index 0000000..fcf774d
--- /dev/null
@@ -0,0 +1,41 @@
+// File created from ../../../../src/hooks/dhcp/stat_cmds/stat_cmds_messages.mes on Fri Feb 08 2019 20:34
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+extern const isc::log::MessageID STAT_CMDS_DEINIT_FAILED = "STAT_CMDS_DEINIT_FAILED";
+extern const isc::log::MessageID STAT_CMDS_DEINIT_OK = "STAT_CMDS_DEINIT_OK";
+extern const isc::log::MessageID STAT_CMDS_INIT_FAILED = "STAT_CMDS_INIT_FAILED";
+extern const isc::log::MessageID STAT_CMDS_INIT_OK = "STAT_CMDS_INIT_OK";
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET = "STAT_CMDS_LEASE4_GET";
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_FAILED = "STAT_CMDS_LEASE4_GET_FAILED";
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_INVALID = "STAT_CMDS_LEASE4_GET_INVALID";
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_NO_SUBNETS = "STAT_CMDS_LEASE4_GET_NO_SUBNETS";
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET = "STAT_CMDS_LEASE6_GET";
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_FAILED = "STAT_CMDS_LEASE6_GET_FAILED";
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_INVALID = "STAT_CMDS_LEASE6_GET_INVALID";
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_NO_SUBNETS = "STAT_CMDS_LEASE6_GET_NO_SUBNETS";
+
+namespace {
+
+const char* values[] = {
+    "STAT_CMDS_DEINIT_FAILED", "unloading Stat Commands hooks library failed: %1",
+    "STAT_CMDS_DEINIT_OK", "unloading Stat Commands hooks library successful",
+    "STAT_CMDS_INIT_FAILED", "loading Stat Commands hooks library failed: %1",
+    "STAT_CMDS_INIT_OK", "loading Stat Commands hooks library successful",
+    "STAT_CMDS_LEASE4_GET", "stat-lease4-get command successful, parameters: %1 rows found: %2",
+    "STAT_CMDS_LEASE4_GET_FAILED", "stat-lease4-get command failed: parameters: %1, reason: %2",
+    "STAT_CMDS_LEASE4_GET_INVALID", "stat-lease4-get command is malformed or invalid, reason: %1",
+    "STAT_CMDS_LEASE4_GET_NO_SUBNETS", "stat-lease4-get, parameters: %1, %2\"",
+    "STAT_CMDS_LEASE6_GET", "stat-lease6-get command successful, parameters: %1 rows found: %2",
+    "STAT_CMDS_LEASE6_GET_FAILED", "stat-lease4-get command failed: parameters: %1, reason: %2",
+    "STAT_CMDS_LEASE6_GET_INVALID", "stat-lease6-get command is malformed or invalid, reason: %1",
+    "STAT_CMDS_LEASE6_GET_NO_SUBNETS", "stat-lease6-get, parameters: %1, %2\"",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/hooks/dhcp/stat_cmds/stat_cmds_messages.h b/src/hooks/dhcp/stat_cmds/stat_cmds_messages.h
new file mode 100644 (file)
index 0000000..9748d49
--- /dev/null
@@ -0,0 +1,21 @@
+// File created from ../../../../src/hooks/dhcp/stat_cmds/stat_cmds_messages.mes on Fri Feb 08 2019 20:34
+
+#ifndef STAT_CMDS_MESSAGES_H
+#define STAT_CMDS_MESSAGES_H
+
+#include <log/message_types.h>
+
+extern const isc::log::MessageID STAT_CMDS_DEINIT_FAILED;
+extern const isc::log::MessageID STAT_CMDS_DEINIT_OK;
+extern const isc::log::MessageID STAT_CMDS_INIT_FAILED;
+extern const isc::log::MessageID STAT_CMDS_INIT_OK;
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET;
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_FAILED;
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_INVALID;
+extern const isc::log::MessageID STAT_CMDS_LEASE4_GET_NO_SUBNETS;
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET;
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_FAILED;
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_INVALID;
+extern const isc::log::MessageID STAT_CMDS_LEASE6_GET_NO_SUBNETS;
+
+#endif // STAT_CMDS_MESSAGES_H
diff --git a/src/hooks/dhcp/user_chk/.gitignore b/src/hooks/dhcp/user_chk/.gitignore
deleted file mode 100644 (file)
index 76bf339..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/user_chk_messages.cc
-/user_chk_messages.h
-/s-messages
index 41ad7b2e3cfcf7a323d1a4b463f53c46cf8b03b3..c6059fe47dfc1a66c6c436f6333549f931b1ca10 100644 (file)
@@ -4,22 +4,11 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-user_chk_messages.h user_chk_messages.cc: s-messages
-s-messages: user_chk_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/user_chk/user_chk_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = user_chk_messages.h user_chk_messages.cc
-
 EXTRA_DIST = libdhcp_user_chk.dox
 # Ensure that the message file is included in the distribution
 EXTRA_DIST += user_chk_messages.mes
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda user_chk_messages.h user_chk_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # convenience archive
 
@@ -33,13 +22,12 @@ libduc_la_SOURCES += subnet_select_co.cc
 libduc_la_SOURCES += user.cc user.h
 libduc_la_SOURCES += user_chk.h
 libduc_la_SOURCES += user_chk_log.cc user_chk_log.h
+libduc_la_SOURCES += user_chk_messages.cc user_chk_messages.h
 libduc_la_SOURCES += user_data_source.h
 libduc_la_SOURCES += user_file.cc user_file.h
 libduc_la_SOURCES += user_registry.cc user_registry.h
 libduc_la_SOURCES += version.cc
 
-nodist_libduc_la_SOURCES = user_chk_messages.cc user_chk_messages.h
-
 libduc_la_CXXFLAGS = $(AM_CXXFLAGS)
 libduc_la_CPPFLAGS = $(AM_CPPFLAGS)
 
@@ -58,3 +46,37 @@ libdhcp_user_chk_la_LIBADD  += $(top_builddir)/src/lib/util/threads/libkea-threa
 libdhcp_user_chk_la_LIBADD  += $(top_builddir)/src/lib/util/libkea-util.la
 libdhcp_user_chk_la_LIBADD  += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
 libdhcp_user_chk_la_LIBADD  += $(LOG4CPLUS_LIBS)
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f user_chk_messages.h user_chk_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: user_chk_messages.h user_chk_messages.cc
+       @echo Message files regenerated
+
+user_chk_messages.h user_chk_messages.cc: user_chk_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/user_chk/user_chk_messages.mes
+
+else
+
+messages user_chk_messages.h user_chk_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
diff --git a/src/hooks/dhcp/user_chk/user_chk_messages.cc b/src/hooks/dhcp/user_chk/user_chk_messages.cc
new file mode 100644 (file)
index 0000000..8a4c289
--- /dev/null
@@ -0,0 +1,29 @@
+// File created from ../../../../src/hooks/dhcp/user_chk/user_chk_messages.mes on Fri Feb 08 2019 20:34
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+extern const isc::log::MessageID USER_CHK_HOOK_LOAD_ERROR = "USER_CHK_HOOK_LOAD_ERROR";
+extern const isc::log::MessageID USER_CHK_HOOK_UNLOAD_ERROR = "USER_CHK_HOOK_UNLOAD_ERROR";
+extern const isc::log::MessageID USER_CHK_SUBNET4_SELECT_ERROR = "USER_CHK_SUBNET4_SELECT_ERROR";
+extern const isc::log::MessageID USER_CHK_SUBNET4_SELECT_REGISTRY_NULL = "USER_CHK_SUBNET4_SELECT_REGISTRY_NULL";
+extern const isc::log::MessageID USER_CHK_SUBNET6_SELECT_ERROR = "USER_CHK_SUBNET6_SELECT_ERROR";
+extern const isc::log::MessageID USER_CHK_SUBNET6_SELECT_REGISTRY_NULL = "USER_CHK_SUBNET6_SELECT_REGISTRY_NULL";
+
+namespace {
+
+const char* values[] = {
+    "USER_CHK_HOOK_LOAD_ERROR", "DHCP UserCheckHook could not be loaded: %1",
+    "USER_CHK_HOOK_UNLOAD_ERROR", "DHCP UserCheckHook an error occurred unloading the library: %1",
+    "USER_CHK_SUBNET4_SELECT_ERROR", "DHCP UserCheckHook an unexpected error occurred in subnet4_select callout: %1",
+    "USER_CHK_SUBNET4_SELECT_REGISTRY_NULL", "DHCP UserCheckHook UserRegistry has not been created.",
+    "USER_CHK_SUBNET6_SELECT_ERROR", "DHCP UserCheckHook an unexpected error occurred in subnet6_select callout: %1",
+    "USER_CHK_SUBNET6_SELECT_REGISTRY_NULL", "DHCP UserCheckHook UserRegistry has not been created.",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/hooks/dhcp/user_chk/user_chk_messages.h b/src/hooks/dhcp/user_chk/user_chk_messages.h
new file mode 100644 (file)
index 0000000..a7292bf
--- /dev/null
@@ -0,0 +1,15 @@
+// File created from ../../../../src/hooks/dhcp/user_chk/user_chk_messages.mes on Fri Feb 08 2019 20:34
+
+#ifndef USER_CHK_MESSAGES_H
+#define USER_CHK_MESSAGES_H
+
+#include <log/message_types.h>
+
+extern const isc::log::MessageID USER_CHK_HOOK_LOAD_ERROR;
+extern const isc::log::MessageID USER_CHK_HOOK_UNLOAD_ERROR;
+extern const isc::log::MessageID USER_CHK_SUBNET4_SELECT_ERROR;
+extern const isc::log::MessageID USER_CHK_SUBNET4_SELECT_REGISTRY_NULL;
+extern const isc::log::MessageID USER_CHK_SUBNET6_SELECT_ERROR;
+extern const isc::log::MessageID USER_CHK_SUBNET6_SELECT_REGISTRY_NULL;
+
+#endif // USER_CHK_MESSAGES_H
diff --git a/src/lib/asiodns/.gitignore b/src/lib/asiodns/.gitignore
deleted file mode 100644 (file)
index 189824e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/asiodns_messages.cc
-/asiodns_messages.h
-/s-messages
index 89ff0876e685c9b84abe92e5cfc7f3f3f0adf82f..ec24739475fa177f50684cb967e3322fc0bdc8f4 100644 (file)
@@ -5,16 +5,7 @@ AM_CPPFLAGS += $(BOOST_INCLUDES)
 
 AM_CXXFLAGS = $(KEA_CXXFLAGS)
 
-CLEANFILES = *.gcno *.gcda asiodns_messages.h asiodns_messages.cc s-messages
-
-# Define rule to build logging source files from message file
-asiodns_messages.h asiodns_messages.cc: s-messages
-
-s-messages: asiodns_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/asiodns/asiodns_messages.mes
-       touch $@
-
-BUILT_SOURCES = asiodns_messages.h asiodns_messages.cc
+CLEANFILES = *.gcno *.gcda
 
 lib_LTLIBRARIES = libkea-asiodns.la
 
@@ -22,8 +13,7 @@ libkea_asiodns_la_LDFLAGS = -no-undefined -version-info 0:2:0
 
 libkea_asiodns_la_SOURCES = io_fetch.cc io_fetch.h
 libkea_asiodns_la_SOURCES += logger.h logger.cc
-
-nodist_libkea_asiodns_la_SOURCES = asiodns_messages.cc asiodns_messages.h
+libkea_asiodns_la_SOURCES += asiodns_messages.cc asiodns_messages.h
 
 EXTRA_DIST = asiodns_messages.mes
 
@@ -41,9 +31,43 @@ libkea_asiodns_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions
 libkea_asiodns_la_LIBADD += $(BOOST_LIBS)
 libkea_asiodns_la_LIBADD += $(LOG4CPLUS_LIBS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f asiodns_messages.h asiodns_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: asiodns_messages.h asiodns_messages.cc
+       @echo Message files regenerated
+
+asiodns_messages.h asiodns_messages.cc: asiodns_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/asiodns/asiodns_messages.mes
+
+else
+
+messages asiodns_messages.h asiodns_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_asiodns_includedir = $(pkgincludedir)/asiodns
 libkea_asiodns_include_HEADERS = \
+       asiodns_messages.h \
        io_fetch.h \
        logger.h
 
diff --git a/src/lib/asiodns/asiodns_messages.cc b/src/lib/asiodns/asiodns_messages.cc
new file mode 100644 (file)
index 0000000..31b4d99
--- /dev/null
@@ -0,0 +1,73 @@
+// File created from ../../../src/lib/asiodns/asiodns_messages.mes on Fri Feb 08 2019 20:17
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace asiodns {
+
+extern const isc::log::MessageID ASIODNS_FD_ADD_TCP = "ASIODNS_FD_ADD_TCP";
+extern const isc::log::MessageID ASIODNS_FD_ADD_UDP = "ASIODNS_FD_ADD_UDP";
+extern const isc::log::MessageID ASIODNS_FETCH_COMPLETED = "ASIODNS_FETCH_COMPLETED";
+extern const isc::log::MessageID ASIODNS_FETCH_STOPPED = "ASIODNS_FETCH_STOPPED";
+extern const isc::log::MessageID ASIODNS_OPEN_SOCKET = "ASIODNS_OPEN_SOCKET";
+extern const isc::log::MessageID ASIODNS_READ_DATA = "ASIODNS_READ_DATA";
+extern const isc::log::MessageID ASIODNS_READ_TIMEOUT = "ASIODNS_READ_TIMEOUT";
+extern const isc::log::MessageID ASIODNS_SEND_DATA = "ASIODNS_SEND_DATA";
+extern const isc::log::MessageID ASIODNS_SYNC_UDP_CLOSE_FAIL = "ASIODNS_SYNC_UDP_CLOSE_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_ACCEPT_FAIL = "ASIODNS_TCP_ACCEPT_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_CLEANUP_CLOSE_FAIL = "ASIODNS_TCP_CLEANUP_CLOSE_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_ACCEPTOR_FAIL = "ASIODNS_TCP_CLOSE_ACCEPTOR_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_FAIL = "ASIODNS_TCP_CLOSE_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_NORESP_FAIL = "ASIODNS_TCP_CLOSE_NORESP_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_GETREMOTE_FAIL = "ASIODNS_TCP_GETREMOTE_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_READDATA_FAIL = "ASIODNS_TCP_READDATA_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_READLEN_FAIL = "ASIODNS_TCP_READLEN_FAIL";
+extern const isc::log::MessageID ASIODNS_TCP_WRITE_FAIL = "ASIODNS_TCP_WRITE_FAIL";
+extern const isc::log::MessageID ASIODNS_UDP_ASYNC_SEND_FAIL = "ASIODNS_UDP_ASYNC_SEND_FAIL";
+extern const isc::log::MessageID ASIODNS_UDP_CLOSE_FAIL = "ASIODNS_UDP_CLOSE_FAIL";
+extern const isc::log::MessageID ASIODNS_UDP_RECEIVE_FAIL = "ASIODNS_UDP_RECEIVE_FAIL";
+extern const isc::log::MessageID ASIODNS_UDP_SYNC_RECEIVE_FAIL = "ASIODNS_UDP_SYNC_RECEIVE_FAIL";
+extern const isc::log::MessageID ASIODNS_UDP_SYNC_SEND_FAIL = "ASIODNS_UDP_SYNC_SEND_FAIL";
+extern const isc::log::MessageID ASIODNS_UNKNOWN_ORIGIN = "ASIODNS_UNKNOWN_ORIGIN";
+extern const isc::log::MessageID ASIODNS_UNKNOWN_RESULT = "ASIODNS_UNKNOWN_RESULT";
+
+} // namespace asiodns
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "ASIODNS_FD_ADD_TCP", "adding a new TCP server by opened fd %1",
+    "ASIODNS_FD_ADD_UDP", "adding a new UDP server by opened fd %1",
+    "ASIODNS_FETCH_COMPLETED", "upstream fetch to %1(%2) has now completed",
+    "ASIODNS_FETCH_STOPPED", "upstream fetch to %1(%2) has been stopped",
+    "ASIODNS_OPEN_SOCKET", "error %1 opening %2 socket to %3(%4)",
+    "ASIODNS_READ_DATA", "error %1 reading %2 data from %3(%4)",
+    "ASIODNS_READ_TIMEOUT", "receive timeout while waiting for data from %1(%2)",
+    "ASIODNS_SEND_DATA", "error %1 sending data using %2 to %3(%4)",
+    "ASIODNS_SYNC_UDP_CLOSE_FAIL", "failed to close a DNS/UDP socket: %1",
+    "ASIODNS_TCP_ACCEPT_FAIL", "failed to accept TCP DNS connection: %1",
+    "ASIODNS_TCP_CLEANUP_CLOSE_FAIL", "failed to close a DNS/TCP socket on port cleanup: %1",
+    "ASIODNS_TCP_CLOSE_ACCEPTOR_FAIL", "failed to close listening TCP socket: %1",
+    "ASIODNS_TCP_CLOSE_FAIL", "failed to close DNS/TCP socket with a client: %1",
+    "ASIODNS_TCP_CLOSE_NORESP_FAIL", "failed to close DNS/TCP socket with a client: %1",
+    "ASIODNS_TCP_GETREMOTE_FAIL", "failed to get remote address of a DNS TCP connection: %1",
+    "ASIODNS_TCP_READDATA_FAIL", "failed to get DNS data on a TCP socket: %1",
+    "ASIODNS_TCP_READLEN_FAIL", "failed to get DNS data length on a TCP socket: %1",
+    "ASIODNS_TCP_WRITE_FAIL", "failed to send DNS message over a TCP socket: %1",
+    "ASIODNS_UDP_ASYNC_SEND_FAIL", "Error sending UDP packet to %1: %2",
+    "ASIODNS_UDP_CLOSE_FAIL", "failed to close a DNS/UDP socket: %1",
+    "ASIODNS_UDP_RECEIVE_FAIL", "failed to receive UDP DNS packet: %1",
+    "ASIODNS_UDP_SYNC_RECEIVE_FAIL", "failed to receive UDP DNS packet: %1",
+    "ASIODNS_UDP_SYNC_SEND_FAIL", "Error sending UDP packet to %1: %2",
+    "ASIODNS_UNKNOWN_ORIGIN", "unknown origin for ASIO error code %1 (protocol: %2, address %3)",
+    "ASIODNS_UNKNOWN_RESULT", "unknown result (%1) when IOFetch::stop() was executed for I/O to %2(%3)",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/asiodns/asiodns_messages.h b/src/lib/asiodns/asiodns_messages.h
new file mode 100644 (file)
index 0000000..93f1188
--- /dev/null
@@ -0,0 +1,40 @@
+// File created from ../../../src/lib/asiodns/asiodns_messages.mes on Fri Feb 08 2019 20:17
+
+#ifndef ASIODNS_MESSAGES_H
+#define ASIODNS_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace asiodns {
+
+extern const isc::log::MessageID ASIODNS_FD_ADD_TCP;
+extern const isc::log::MessageID ASIODNS_FD_ADD_UDP;
+extern const isc::log::MessageID ASIODNS_FETCH_COMPLETED;
+extern const isc::log::MessageID ASIODNS_FETCH_STOPPED;
+extern const isc::log::MessageID ASIODNS_OPEN_SOCKET;
+extern const isc::log::MessageID ASIODNS_READ_DATA;
+extern const isc::log::MessageID ASIODNS_READ_TIMEOUT;
+extern const isc::log::MessageID ASIODNS_SEND_DATA;
+extern const isc::log::MessageID ASIODNS_SYNC_UDP_CLOSE_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_ACCEPT_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_CLEANUP_CLOSE_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_ACCEPTOR_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_CLOSE_NORESP_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_GETREMOTE_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_READDATA_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_READLEN_FAIL;
+extern const isc::log::MessageID ASIODNS_TCP_WRITE_FAIL;
+extern const isc::log::MessageID ASIODNS_UDP_ASYNC_SEND_FAIL;
+extern const isc::log::MessageID ASIODNS_UDP_CLOSE_FAIL;
+extern const isc::log::MessageID ASIODNS_UDP_RECEIVE_FAIL;
+extern const isc::log::MessageID ASIODNS_UDP_SYNC_RECEIVE_FAIL;
+extern const isc::log::MessageID ASIODNS_UDP_SYNC_SEND_FAIL;
+extern const isc::log::MessageID ASIODNS_UNKNOWN_ORIGIN;
+extern const isc::log::MessageID ASIODNS_UNKNOWN_RESULT;
+
+} // namespace asiodns
+} // namespace isc
+
+#endif // ASIODNS_MESSAGES_H
diff --git a/src/lib/config/.gitignore b/src/lib/config/.gitignore
deleted file mode 100644 (file)
index d666f24..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/config_messages.cc
-/config_messages.h
-/s-messages
index 4373321fe922aa4366933db10d90dbe7f14f8d83..2cc7149fb1efed34413b1172f2d56312827963ef 100644 (file)
@@ -5,21 +5,13 @@ AM_CPPFLAGS += $(BOOST_INCLUDES)
 
 AM_CXXFLAGS = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-config_messages.h config_messages.cc: s-messages
-
-s-messages: config_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/config/config_messages.mes
-       touch $@
-
-BUILT_SOURCES = config_messages.h config_messages.cc
-
 lib_LTLIBRARIES = libkea-cfgclient.la
 libkea_cfgclient_la_SOURCES  = cmds_impl.h
 libkea_cfgclient_la_SOURCES += base_command_mgr.cc base_command_mgr.h
 libkea_cfgclient_la_SOURCES += client_connection.cc client_connection.h
 libkea_cfgclient_la_SOURCES += command_mgr.cc command_mgr.h
 libkea_cfgclient_la_SOURCES += config_log.h config_log.cc
+libkea_cfgclient_la_SOURCES += config_messages.h config_messages.cc
 libkea_cfgclient_la_SOURCES += hooked_command_mgr.cc hooked_command_mgr.h
 libkea_cfgclient_la_SOURCES += timeouts.h
 
@@ -38,12 +30,43 @@ libkea_cfgclient_la_LIBADD += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS) $(BOOST_LIBS)
 libkea_cfgclient_la_LDFLAGS = -no-undefined -version-info 6:0:0
 libkea_cfgclient_la_LDFLAGS += $(CRYPTO_LDFLAGS)
 
-nodist_libkea_cfgclient_la_SOURCES  = config_messages.h config_messages.cc
-
 # The message file should be in the distribution.
 EXTRA_DIST = config_messages.mes command-socket.dox
 
-CLEANFILES = *.gcno *.gcda config_messages.h config_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f config_messages.h config_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: config_messages.h config_messages.cc
+       @echo Message files regenerated
+
+config_messages.h config_messages.cc: config_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/config/config_messages.mes
+
+else
+
+messages config_messages.h config_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
 
 # Specify the headers for copying into the installation directory tree.
 libkea_cfgclient_includedir = $(pkgincludedir)/config
@@ -53,6 +76,7 @@ libkea_cfgclient_include_HEADERS = \
        cmds_impl.h \
        command_mgr.h \
        config_log.h \
+       config_messages.h \
        hooked_command_mgr.h \
        timeouts.h
 
diff --git a/src/lib/config/config_messages.cc b/src/lib/config/config_messages.cc
new file mode 100644 (file)
index 0000000..185ee58
--- /dev/null
@@ -0,0 +1,69 @@
+// File created from ../../../src/lib/config/config_messages.mes on Fri Feb 08 2019 20:16
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace config {
+
+extern const isc::log::MessageID COMMAND_ACCEPTOR_START = "COMMAND_ACCEPTOR_START";
+extern const isc::log::MessageID COMMAND_DEREGISTERED = "COMMAND_DEREGISTERED";
+extern const isc::log::MessageID COMMAND_EXTENDED_REGISTERED = "COMMAND_EXTENDED_REGISTERED";
+extern const isc::log::MessageID COMMAND_PROCESS_ERROR1 = "COMMAND_PROCESS_ERROR1";
+extern const isc::log::MessageID COMMAND_PROCESS_ERROR2 = "COMMAND_PROCESS_ERROR2";
+extern const isc::log::MessageID COMMAND_RECEIVED = "COMMAND_RECEIVED";
+extern const isc::log::MessageID COMMAND_REGISTERED = "COMMAND_REGISTERED";
+extern const isc::log::MessageID COMMAND_RESPONSE_ERROR = "COMMAND_RESPONSE_ERROR";
+extern const isc::log::MessageID COMMAND_SOCKET_ACCEPT_FAIL = "COMMAND_SOCKET_ACCEPT_FAIL";
+extern const isc::log::MessageID COMMAND_SOCKET_CLOSED_BY_FOREIGN_HOST = "COMMAND_SOCKET_CLOSED_BY_FOREIGN_HOST";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CANCEL_FAIL = "COMMAND_SOCKET_CONNECTION_CANCEL_FAIL";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CLOSED = "COMMAND_SOCKET_CONNECTION_CLOSED";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CLOSE_FAIL = "COMMAND_SOCKET_CONNECTION_CLOSE_FAIL";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_OPENED = "COMMAND_SOCKET_CONNECTION_OPENED";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_SHUTDOWN_FAIL = "COMMAND_SOCKET_CONNECTION_SHUTDOWN_FAIL";
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_TIMEOUT = "COMMAND_SOCKET_CONNECTION_TIMEOUT";
+extern const isc::log::MessageID COMMAND_SOCKET_READ = "COMMAND_SOCKET_READ";
+extern const isc::log::MessageID COMMAND_SOCKET_READ_FAIL = "COMMAND_SOCKET_READ_FAIL";
+extern const isc::log::MessageID COMMAND_SOCKET_WRITE = "COMMAND_SOCKET_WRITE";
+extern const isc::log::MessageID COMMAND_SOCKET_WRITE_FAIL = "COMMAND_SOCKET_WRITE_FAIL";
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_CLEAR_ERROR = "COMMAND_WATCH_SOCKET_CLEAR_ERROR";
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_CLOSE_ERROR = "COMMAND_WATCH_SOCKET_CLOSE_ERROR";
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_MARK_READY_ERROR = "COMMAND_WATCH_SOCKET_MARK_READY_ERROR";
+
+} // namespace config
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "COMMAND_ACCEPTOR_START", "Starting to accept connections via unix domain socket bound to %1",
+    "COMMAND_DEREGISTERED", "Command %1 deregistered",
+    "COMMAND_EXTENDED_REGISTERED", "Command %1 registered",
+    "COMMAND_PROCESS_ERROR1", "Error while processing command: %1",
+    "COMMAND_PROCESS_ERROR2", "Error while processing command: %1",
+    "COMMAND_RECEIVED", "Received command '%1'",
+    "COMMAND_REGISTERED", "Command %1 registered",
+    "COMMAND_RESPONSE_ERROR", "Server failed to generate response for command: %1",
+    "COMMAND_SOCKET_ACCEPT_FAIL", "Failed to accept incoming connection on command socket %1: %2",
+    "COMMAND_SOCKET_CLOSED_BY_FOREIGN_HOST", "Closed command socket %1 by foreign host, %2",
+    "COMMAND_SOCKET_CONNECTION_CANCEL_FAIL", "Failed to cancel read operation on socket %1: %2",
+    "COMMAND_SOCKET_CONNECTION_CLOSED", "Closed socket %1 for existing command connection",
+    "COMMAND_SOCKET_CONNECTION_CLOSE_FAIL", "Failed to close command connection: %1",
+    "COMMAND_SOCKET_CONNECTION_OPENED", "Opened socket %1 for incoming command connection",
+    "COMMAND_SOCKET_CONNECTION_SHUTDOWN_FAIL", "Encountered error %1 while trying to gracefully shutdown socket",
+    "COMMAND_SOCKET_CONNECTION_TIMEOUT", "Timeout occurred for connection over socket %1",
+    "COMMAND_SOCKET_READ", "Received %1 bytes over command socket %2",
+    "COMMAND_SOCKET_READ_FAIL", "Encountered error %1 while reading from command socket %2",
+    "COMMAND_SOCKET_WRITE", "Sent response of %1 bytes (%2 bytes left to send) over command socket %3",
+    "COMMAND_SOCKET_WRITE_FAIL", "Error while writing to command socket %1 : %2",
+    "COMMAND_WATCH_SOCKET_CLEAR_ERROR", "watch socket failed to clear: %1",
+    "COMMAND_WATCH_SOCKET_CLOSE_ERROR", "watch socket failed to close: %1",
+    "COMMAND_WATCH_SOCKET_MARK_READY_ERROR", "watch socket failed to mark ready: %1",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/config/config_messages.h b/src/lib/config/config_messages.h
new file mode 100644 (file)
index 0000000..bd7a216
--- /dev/null
@@ -0,0 +1,38 @@
+// File created from ../../../src/lib/config/config_messages.mes on Fri Feb 08 2019 20:16
+
+#ifndef CONFIG_MESSAGES_H
+#define CONFIG_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace config {
+
+extern const isc::log::MessageID COMMAND_ACCEPTOR_START;
+extern const isc::log::MessageID COMMAND_DEREGISTERED;
+extern const isc::log::MessageID COMMAND_EXTENDED_REGISTERED;
+extern const isc::log::MessageID COMMAND_PROCESS_ERROR1;
+extern const isc::log::MessageID COMMAND_PROCESS_ERROR2;
+extern const isc::log::MessageID COMMAND_RECEIVED;
+extern const isc::log::MessageID COMMAND_REGISTERED;
+extern const isc::log::MessageID COMMAND_RESPONSE_ERROR;
+extern const isc::log::MessageID COMMAND_SOCKET_ACCEPT_FAIL;
+extern const isc::log::MessageID COMMAND_SOCKET_CLOSED_BY_FOREIGN_HOST;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CANCEL_FAIL;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CLOSED;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_CLOSE_FAIL;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_OPENED;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_SHUTDOWN_FAIL;
+extern const isc::log::MessageID COMMAND_SOCKET_CONNECTION_TIMEOUT;
+extern const isc::log::MessageID COMMAND_SOCKET_READ;
+extern const isc::log::MessageID COMMAND_SOCKET_READ_FAIL;
+extern const isc::log::MessageID COMMAND_SOCKET_WRITE;
+extern const isc::log::MessageID COMMAND_SOCKET_WRITE_FAIL;
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_CLEAR_ERROR;
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_CLOSE_ERROR;
+extern const isc::log::MessageID COMMAND_WATCH_SOCKET_MARK_READY_ERROR;
+
+} // namespace config
+} // namespace isc
+
+#endif // CONFIG_MESSAGES_H
diff --git a/src/lib/database/.gitignore b/src/lib/database/.gitignore
deleted file mode 100644 (file)
index 1647c12..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/db_messages.cc
-/db_messages.h
-/s-messages
index b7051cbf7f98a6f661992c671da0715fa078a9a8..bdccab955e278a48865837932b10e10b11e5a6a0 100644 (file)
@@ -5,22 +5,10 @@ AM_CPPFLAGS += $(BOOST_INCLUDES)
 
 AM_CXXFLAGS = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-db_messages.h db_messages.cc: s-messages
-
-s-messages: db_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/database/db_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = db_messages.h db_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = db_messages.mes
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda db_messages.h db_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 lib_LTLIBRARIES = libkea-database.la
 libkea_database_la_SOURCES  = audit_entry.cc audit_entry.h
@@ -29,10 +17,9 @@ libkea_database_la_SOURCES += database_connection.cc database_connection.h
 libkea_database_la_SOURCES += dbaccess_parser.h dbaccess_parser.cc
 libkea_database_la_SOURCES += db_exceptions.h
 libkea_database_la_SOURCES += db_log.cc db_log.h
+libkea_database_la_SOURCES += db_messages.cc db_messages.h
 libkea_database_la_SOURCES += server_selector.h
 
-nodist_libkea_database_la_SOURCES = db_messages.cc db_messages.h
-
 libkea_database_la_LIBADD  = $(top_builddir)/src/lib/cc/libkea-cc.la
 libkea_database_la_LIBADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
 libkea_database_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
@@ -43,6 +30,39 @@ libkea_database_la_LIBADD += $(LOG4CPLUS_LIBS) $(BOOST_LIBS)
 
 libkea_database_la_LDFLAGS = -no-undefined -version-info 1:0:0
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f db_messages.h db_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: db_messages.h db_messages.cc
+       @echo Message files regenerated
+
+db_messages.h db_messages.cc: db_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/db/db_messages.mes
+
+else
+
+messages db_messages.h db_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_database_includedir = $(pkgincludedir)/database
 libkea_database_include_HEADERS = \
@@ -52,4 +72,5 @@ libkea_database_include_HEADERS = \
        dbaccess_parser.h \
        db_exceptions.h \
        db_log.h \
+       db_messages.h \
        server_selector.h
diff --git a/src/lib/database/db_messages.cc b/src/lib/database/db_messages.cc
new file mode 100644 (file)
index 0000000..4d434c7
--- /dev/null
@@ -0,0 +1,53 @@
+// File created from ../../../src/lib/database/db_messages.mes on Fri Feb 08 2019 20:16
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace db {
+
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_BEGIN_TRANSACTION = "DATABASE_CQL_CONNECTION_BEGIN_TRANSACTION";
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_COMMIT = "DATABASE_CQL_CONNECTION_COMMIT";
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_ROLLBACK = "DATABASE_CQL_CONNECTION_ROLLBACK";
+extern const isc::log::MessageID DATABASE_CQL_DEALLOC_ERROR = "DATABASE_CQL_DEALLOC_ERROR";
+extern const isc::log::MessageID DATABASE_INVALID_ACCESS = "DATABASE_INVALID_ACCESS";
+extern const isc::log::MessageID DATABASE_MYSQL_COMMIT = "DATABASE_MYSQL_COMMIT";
+extern const isc::log::MessageID DATABASE_MYSQL_FATAL_ERROR = "DATABASE_MYSQL_FATAL_ERROR";
+extern const isc::log::MessageID DATABASE_MYSQL_ROLLBACK = "DATABASE_MYSQL_ROLLBACK";
+extern const isc::log::MessageID DATABASE_MYSQL_START_TRANSACTION = "DATABASE_MYSQL_START_TRANSACTION";
+extern const isc::log::MessageID DATABASE_PGSQL_COMMIT = "DATABASE_PGSQL_COMMIT";
+extern const isc::log::MessageID DATABASE_PGSQL_DEALLOC_ERROR = "DATABASE_PGSQL_DEALLOC_ERROR";
+extern const isc::log::MessageID DATABASE_PGSQL_FATAL_ERROR = "DATABASE_PGSQL_FATAL_ERROR";
+extern const isc::log::MessageID DATABASE_PGSQL_ROLLBACK = "DATABASE_PGSQL_ROLLBACK";
+extern const isc::log::MessageID DATABASE_PGSQL_START_TRANSACTION = "DATABASE_PGSQL_START_TRANSACTION";
+extern const isc::log::MessageID DATABASE_TO_JSON_ERROR = "DATABASE_TO_JSON_ERROR";
+
+} // namespace db
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DATABASE_CQL_CONNECTION_BEGIN_TRANSACTION", "begin transaction on current connection.",
+    "DATABASE_CQL_CONNECTION_COMMIT", "committing to Cassandra database on current connection.",
+    "DATABASE_CQL_CONNECTION_ROLLBACK", "rolling back Cassandra database on current connection.",
+    "DATABASE_CQL_DEALLOC_ERROR", "An error occurred while closing the CQL connection: %1",
+    "DATABASE_INVALID_ACCESS", "invalid database access string: %1",
+    "DATABASE_MYSQL_COMMIT", "committing to MySQL database",
+    "DATABASE_MYSQL_FATAL_ERROR", "Unrecoverable MySQL error occurred: %1 for <%2>, reason: %3 (error code: %4).",
+    "DATABASE_MYSQL_ROLLBACK", "rolling back MySQL database",
+    "DATABASE_MYSQL_START_TRANSACTION", "starting new MySQL transaction",
+    "DATABASE_PGSQL_COMMIT", "committing to PostgreSQL database",
+    "DATABASE_PGSQL_DEALLOC_ERROR", "An error occurred deallocating SQL statements while closing the PostgreSQL lease database: %1",
+    "DATABASE_PGSQL_FATAL_ERROR", "Unrecoverable PostgreSQL error occurred: Statement: <%1>, reason: %2 (error code: %3).",
+    "DATABASE_PGSQL_ROLLBACK", "rolling back PostgreSQL database",
+    "DATABASE_PGSQL_START_TRANSACTION", "starting a new PostgreSQL transaction",
+    "DATABASE_TO_JSON_ERROR", "Internal logic error: uknown %1 element found in state: %2",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/database/db_messages.h b/src/lib/database/db_messages.h
new file mode 100644 (file)
index 0000000..bd0fd8d
--- /dev/null
@@ -0,0 +1,30 @@
+// File created from ../../../src/lib/database/db_messages.mes on Fri Feb 08 2019 20:16
+
+#ifndef DB_MESSAGES_H
+#define DB_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace db {
+
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_BEGIN_TRANSACTION;
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_COMMIT;
+extern const isc::log::MessageID DATABASE_CQL_CONNECTION_ROLLBACK;
+extern const isc::log::MessageID DATABASE_CQL_DEALLOC_ERROR;
+extern const isc::log::MessageID DATABASE_INVALID_ACCESS;
+extern const isc::log::MessageID DATABASE_MYSQL_COMMIT;
+extern const isc::log::MessageID DATABASE_MYSQL_FATAL_ERROR;
+extern const isc::log::MessageID DATABASE_MYSQL_ROLLBACK;
+extern const isc::log::MessageID DATABASE_MYSQL_START_TRANSACTION;
+extern const isc::log::MessageID DATABASE_PGSQL_COMMIT;
+extern const isc::log::MessageID DATABASE_PGSQL_DEALLOC_ERROR;
+extern const isc::log::MessageID DATABASE_PGSQL_FATAL_ERROR;
+extern const isc::log::MessageID DATABASE_PGSQL_ROLLBACK;
+extern const isc::log::MessageID DATABASE_PGSQL_START_TRANSACTION;
+extern const isc::log::MessageID DATABASE_TO_JSON_ERROR;
+
+} // namespace db
+} // namespace isc
+
+#endif // DB_MESSAGES_H
diff --git a/src/lib/dhcp_ddns/.gitignore b/src/lib/dhcp_ddns/.gitignore
deleted file mode 100644 (file)
index c632c2e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/dhcp_ddns_messages.cc
-/dhcp_ddns_messages.h
-/s-messages
index 7e59d465e84899f892cbf59a0ca226c098c5283f..53dc06e0627d111356c10d80683c47c5d3eea5ac 100644 (file)
@@ -4,32 +4,19 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-dhcp_ddns_messages.h dhcp_ddns_messages.cc: s-messages
-
-s-messages: dhcp_ddns_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcp_ddns/dhcp_ddns_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = dhcp_ddns_messages.h dhcp_ddns_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = dhcp_ddns_messages.mes libdhcp_ddns.dox
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda dhcp_ddns_messages.h dhcp_ddns_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 lib_LTLIBRARIES = libkea-dhcp_ddns.la
 libkea_dhcp_ddns_la_SOURCES  =
 libkea_dhcp_ddns_la_SOURCES += dhcp_ddns_log.cc dhcp_ddns_log.h
+libkea_dhcp_ddns_la_SOURCES += dhcp_ddns_messages.cc dhcp_ddns_messages.h
 libkea_dhcp_ddns_la_SOURCES += ncr_io.cc ncr_io.h
 libkea_dhcp_ddns_la_SOURCES += ncr_msg.cc ncr_msg.h
 libkea_dhcp_ddns_la_SOURCES += ncr_udp.cc ncr_udp.h
 
-nodist_libkea_dhcp_ddns_la_SOURCES = dhcp_ddns_messages.cc dhcp_ddns_messages.h
-
 libkea_dhcp_ddns_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_dhcp_ddns_la_CPPFLAGS = $(AM_CPPFLAGS)
 libkea_dhcp_ddns_la_LDFLAGS  = $(AM_LDFLAGS)
@@ -50,10 +37,44 @@ libkea_dhcp_ddns_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
 libkea_dhcp_ddns_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
 libkea_dhcp_ddns_la_LIBADD += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS) $(BOOST_LIBS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f dhcp_ddns_messages.h dhcp_ddns_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: dhcp_ddns_messages.h dhcp_ddns_messages.cc
+       @echo Message files regenerated
+
+dhcp_ddns_messages.h dhcp_ddns_messages.cc: dhcp_ddns_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcp_ddns/dhcp_ddns_messages.mes
+
+else
+
+messages dhcp_ddns_messages.h dhcp_ddns_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_dhcp_ddns_includedir = $(pkgincludedir)/dhcp_ddns
 libkea_dhcp_ddns_include_HEADERS = \
        dhcp_ddns_log.h \
+       dhcp_ddns_messages.h \
        ncr_io.h \
        ncr_msg.h \
        ncr_udp.h
diff --git a/src/lib/dhcp_ddns/dhcp_ddns_messages.cc b/src/lib/dhcp_ddns/dhcp_ddns_messages.cc
new file mode 100644 (file)
index 0000000..a2c0664
--- /dev/null
@@ -0,0 +1,51 @@
+// File created from ../../../src/lib/dhcp_ddns/dhcp_ddns_messages.mes on Fri Feb 08 2019 20:17
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp_ddns {
+
+extern const isc::log::MessageID DHCP_DDNS_INVALID_NCR = "DHCP_DDNS_INVALID_NCR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_FLUSH_IO_ERROR = "DHCP_DDNS_NCR_FLUSH_IO_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_LISTEN_CLOSE_ERROR = "DHCP_DDNS_NCR_LISTEN_CLOSE_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_RECV_NEXT_ERROR = "DHCP_DDNS_NCR_RECV_NEXT_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_SEND_CLOSE_ERROR = "DHCP_DDNS_NCR_SEND_CLOSE_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_SEND_NEXT_ERROR = "DHCP_DDNS_NCR_SEND_NEXT_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_CLEAR_READY_ERROR = "DHCP_DDNS_NCR_UDP_CLEAR_READY_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_RECV_CANCELED = "DHCP_DDNS_NCR_UDP_RECV_CANCELED";
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_RECV_ERROR = "DHCP_DDNS_NCR_UDP_RECV_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_SEND_CANCELED = "DHCP_DDNS_NCR_UDP_SEND_CANCELED";
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_SEND_ERROR = "DHCP_DDNS_NCR_UDP_SEND_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_UDP_SENDER_WATCH_SOCKET_CLOSE_ERROR = "DHCP_DDNS_UDP_SENDER_WATCH_SOCKET_CLOSE_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_UNCAUGHT_NCR_RECV_HANDLER_ERROR = "DHCP_DDNS_UNCAUGHT_NCR_RECV_HANDLER_ERROR";
+extern const isc::log::MessageID DHCP_DDNS_UNCAUGHT_NCR_SEND_HANDLER_ERROR = "DHCP_DDNS_UNCAUGHT_NCR_SEND_HANDLER_ERROR";
+
+} // namespace dhcp_ddns
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DHCP_DDNS_INVALID_NCR", "application received an invalid DNS update request: %1",
+    "DHCP_DDNS_NCR_FLUSH_IO_ERROR", "DHCP-DDNS Last send before stopping did not complete successfully: %1",
+    "DHCP_DDNS_NCR_LISTEN_CLOSE_ERROR", "application encountered an error while closing the listener used to receive NameChangeRequests : %1",
+    "DHCP_DDNS_NCR_RECV_NEXT_ERROR", "application could not initiate the next read following a request receive.",
+    "DHCP_DDNS_NCR_SEND_CLOSE_ERROR", "DHCP-DDNS client encountered an error while closing the sender connection used to send NameChangeRequests: %1",
+    "DHCP_DDNS_NCR_SEND_NEXT_ERROR", "DHCP-DDNS client could not initiate the next request send following send completion: %1",
+    "DHCP_DDNS_NCR_UDP_CLEAR_READY_ERROR", "NCR UDP watch socket failed to clear: %1",
+    "DHCP_DDNS_NCR_UDP_RECV_CANCELED", "UDP socket receive was canceled while listening for DNS Update requests",
+    "DHCP_DDNS_NCR_UDP_RECV_ERROR", "UDP socket receive error while listening for DNS Update requests: %1",
+    "DHCP_DDNS_NCR_UDP_SEND_CANCELED", "UDP socket send was canceled while sending a DNS Update request to DHCP_DDNS: %1",
+    "DHCP_DDNS_NCR_UDP_SEND_ERROR", "UDP socket send error while sending a DNS Update request: %1",
+    "DHCP_DDNS_UDP_SENDER_WATCH_SOCKET_CLOSE_ERROR", "watch socket failed to close: %1",
+    "DHCP_DDNS_UNCAUGHT_NCR_RECV_HANDLER_ERROR", "unexpected exception thrown from the application receive completion handler: %1",
+    "DHCP_DDNS_UNCAUGHT_NCR_SEND_HANDLER_ERROR", "unexpected exception thrown from the DHCP-DDNS client send completion handler: %1",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/dhcp_ddns/dhcp_ddns_messages.h b/src/lib/dhcp_ddns/dhcp_ddns_messages.h
new file mode 100644 (file)
index 0000000..a692755
--- /dev/null
@@ -0,0 +1,29 @@
+// File created from ../../../src/lib/dhcp_ddns/dhcp_ddns_messages.mes on Fri Feb 08 2019 20:17
+
+#ifndef DHCP_DDNS_MESSAGES_H
+#define DHCP_DDNS_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp_ddns {
+
+extern const isc::log::MessageID DHCP_DDNS_INVALID_NCR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_FLUSH_IO_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_LISTEN_CLOSE_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_RECV_NEXT_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_SEND_CLOSE_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_SEND_NEXT_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_CLEAR_READY_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_RECV_CANCELED;
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_RECV_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_SEND_CANCELED;
+extern const isc::log::MessageID DHCP_DDNS_NCR_UDP_SEND_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_UDP_SENDER_WATCH_SOCKET_CLOSE_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_UNCAUGHT_NCR_RECV_HANDLER_ERROR;
+extern const isc::log::MessageID DHCP_DDNS_UNCAUGHT_NCR_SEND_HANDLER_ERROR;
+
+} // namespace dhcp_ddns
+} // namespace isc
+
+#endif // DHCP_DDNS_MESSAGES_H
diff --git a/src/lib/dhcpsrv/.gitignore b/src/lib/dhcpsrv/.gitignore
deleted file mode 100644 (file)
index 7c180b7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/alloc_engine_messages.cc
-/alloc_engine_messages.h
-/dhcpsrv_messages.cc
-/dhcpsrv_messages.h
-/hosts_messages.cc
-/hosts_messages.h
-/s-messages
index 0237391da8ad15dcce6044b92e829cc9123943d0..0ee1dfcdb45d005e344ce247a7de25abbc058a69 100644 (file)
@@ -53,33 +53,11 @@ EXTRA_DIST += parsers/dhcp_queue_control_parser.h
 # Devel guide diagrams
 EXTRA_DIST += images/pgsql_host_data_source.svg
 
-# Define rule to build logging source files from message file
-alloc_engine_messages.h alloc_engine_messages.cc dhcpsrv_messages.h \
-dhcpsrv_messages.cc hosts_messages.h hosts_messages.cc: s-messages
-s-messages: alloc_engine_messages.mes dhcpsrv_messages.mes hosts_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/alloc_engine_messages.mes
-       touch $@
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
-       touch $@
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/hosts_messages.mes
-       touch $@
-
-# Tell Automake that the {alloc_engine,dhcpsrv,hosts}_messages.{cc,h} source files
-# are created in the build process, so it must create these before doing anything
-# else. Although they are a dependency of the library (so will be created from the
-# message file anyway), there is no guarantee as to exactly _when_ in the build
-# they will be created.  As the .h file is included in other sources file (so
-# must be present when they are compiled), the safest option is to create it
-# first.
 BUILT_SOURCES = alloc_engine_messages.h alloc_engine_messages.cc
 BUILT_SOURCES += dhcpsrv_messages.h dhcpsrv_messages.cc
 BUILT_SOURCES += hosts_messages.h hosts_messages.cc
 
-# Make sure the generated files are deleted in a "clean" operation
 CLEANFILES = *.gcno *.gcda
-CLEANFILES += alloc_engine_messages.h alloc_engine_messages.cc
-CLEANFILES += dhcpsrv_messages.h dhcpsrv_messages.cc
-CLEANFILES += hosts_messages.h hosts_messages.cc s-messages
 # Remove CSV files created by the CSVLeaseFile6 and CSVLeaseFile4 unit tests.
 CLEANFILES += *.csv
 
@@ -198,10 +176,9 @@ libkea_dhcpsrv_la_SOURCES += parsers/simple_parser4.h
 libkea_dhcpsrv_la_SOURCES += parsers/simple_parser6.cc
 libkea_dhcpsrv_la_SOURCES += parsers/simple_parser6.h
 
-nodist_libkea_dhcpsrv_la_SOURCES = alloc_engine_messages.h
-nodist_libkea_dhcpsrv_la_SOURCES += alloc_engine_messages.cc
-nodist_libkea_dhcpsrv_la_SOURCES += dhcpsrv_messages.h dhcpsrv_messages.cc
-nodist_libkea_dhcpsrv_la_SOURCES += hosts_messages.h hosts_messages.cc
+libkea_dhcpsrv_la_SOURCES += alloc_engine_messages.h alloc_engine_messages.cc
+libkea_dhcpsrv_la_SOURCES += dhcpsrv_messages.h dhcpsrv_messages.cc
+libkea_dhcpsrv_la_SOURCES += hosts_messages.h hosts_messages.cc
 
 libkea_dhcpsrv_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_dhcpsrv_la_CPPFLAGS = $(AM_CPPFLAGS)
@@ -251,6 +228,51 @@ EXTRA_DIST += alloc_engine_messages.mes
 EXTRA_DIST += dhcpsrv_messages.mes
 EXTRA_DIST += hosts_messages.mes
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f alloc_engine_messages.h alloc_engine_messages.cc
+       rm -f dhcpsrv_messages.h dhcpsrv_messages.cc
+       rm -f hosts_messages.h hosts_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: alloc_engine_messages.h alloc_engine_messages.cc \
+         dhcpsrv_messages.h dhcpsrv_messages.cc \
+         hosts_messages.h hosts_messages.cc
+       @echo Message files regenerated
+
+alloc_engine_messages.h alloc_engine_messages.cc: alloc_engine_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/alloc_engine/dhcpsrv_messages.mes
+
+dhcpsrv_messages.h dhcpsrv_messages.cc: dhcpsrv_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
+
+hosts_messages.h hosts_messages.cc: hosts_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/hosts/hosts_messages.mes
+
+else
+
+messages: alloc_engine_messages.h alloc_engine_messages.cc \
+         dhcpsrv_messages.h dhcpsrv_messages.cc \
+         hosts_messages.h hosts_messages.cc
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Distribute backend documentation
 # Database schema creation script moved to src/bin/admin
 EXTRA_DIST += database_backends.dox libdhcpsrv.dox
@@ -260,6 +282,7 @@ libkea_dhcpsrv_includedir = $(pkgincludedir)/dhcpsrv
 libkea_dhcpsrv_include_HEADERS = \
        alloc_engine.h \
        alloc_engine_log.h \
+       alloc_engine_messages.h \
        assignable_network.h \
        base_host_data_source.h \
        cache_host_data_source.h \
@@ -291,6 +314,7 @@ libkea_dhcpsrv_include_HEADERS = \
        csv_lease_file4.h \
        csv_lease_file6.h \
        dhcpsrv_exceptions.h \
+       dhcpsrv_messages.h \
        d2_client_cfg.h \
        d2_client_mgr.h \
        db_type.h \
@@ -299,6 +323,7 @@ libkea_dhcpsrv_include_HEADERS = \
        host.h \
        host_container.h \
        host_data_source_factory.h \
+       hosts_messages.h \
        host_mgr.h \
        hosts_log.h \
        key_from_key.h \
diff --git a/src/lib/dhcpsrv/alloc_engine_messages.cc b/src/lib/dhcpsrv/alloc_engine_messages.cc
new file mode 100644 (file)
index 0000000..6dc8e98
--- /dev/null
@@ -0,0 +1,151 @@
+// File created from ../../../src/lib/dhcpsrv/alloc_engine_messages.mes on Fri Feb 08 2019 20:31
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID ALLOC_ENGINE_LEASE_RECLAIMED = "ALLOC_ENGINE_LEASE_RECLAIMED";
+extern const isc::log::MessageID ALLOC_ENGINE_REMOVAL_NCR_FAILED = "ALLOC_ENGINE_REMOVAL_NCR_FAILED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_ALLOC_ERROR = "ALLOC_ENGINE_V4_ALLOC_ERROR";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_ALLOC_FAIL = "ALLOC_ENGINE_V4_ALLOC_FAIL";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DECLINED_RECOVERED = "ALLOC_ENGINE_V4_DECLINED_RECOVERED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DISCOVER_ADDRESS_CONFLICT = "ALLOC_ENGINE_V4_DISCOVER_ADDRESS_CONFLICT";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DISCOVER_HR = "ALLOC_ENGINE_V4_DISCOVER_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_COMPLETE = "ALLOC_ENGINE_V4_LEASES_RECLAMATION_COMPLETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_SLOW = "ALLOC_ENGINE_V4_LEASES_RECLAMATION_SLOW";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_START = "ALLOC_ENGINE_V4_LEASES_RECLAMATION_START";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_TIMEOUT = "ALLOC_ENGINE_V4_LEASES_RECLAMATION_TIMEOUT";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASE_RECLAIM = "ALLOC_ENGINE_V4_LEASE_RECLAIM";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASE_RECLAMATION_FAILED = "ALLOC_ENGINE_V4_LEASE_RECLAMATION_FAILED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_NO_MORE_EXPIRED_LEASES = "ALLOC_ENGINE_V4_NO_MORE_EXPIRED_LEASES";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_EXISTING_LEASE = "ALLOC_ENGINE_V4_OFFER_EXISTING_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_NEW_LEASE = "ALLOC_ENGINE_V4_OFFER_NEW_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_REQUESTED_LEASE = "ALLOC_ENGINE_V4_OFFER_REQUESTED_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE = "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_COMPLETE = "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_COMPLETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED = "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_ADDRESS_RESERVED = "ALLOC_ENGINE_V4_REQUEST_ADDRESS_RESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_ALLOC_REQUESTED = "ALLOC_ENGINE_V4_REQUEST_ALLOC_REQUESTED";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_EXTEND_LEASE = "ALLOC_ENGINE_V4_REQUEST_EXTEND_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_INVALID = "ALLOC_ENGINE_V4_REQUEST_INVALID";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_IN_USE = "ALLOC_ENGINE_V4_REQUEST_IN_USE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_OUT_OF_POOL = "ALLOC_ENGINE_V4_REQUEST_OUT_OF_POOL";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_PICK_ADDRESS = "ALLOC_ENGINE_V4_REQUEST_PICK_ADDRESS";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_REMOVE_LEASE = "ALLOC_ENGINE_V4_REQUEST_REMOVE_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_USE_HR = "ALLOC_ENGINE_V4_REQUEST_USE_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REUSE_EXPIRED_LEASE_DATA = "ALLOC_ENGINE_V4_REUSE_EXPIRED_LEASE_DATA";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_ERROR = "ALLOC_ENGINE_V6_ALLOC_ERROR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_FAIL = "ALLOC_ENGINE_V6_ALLOC_FAIL";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_HR_LEASE_EXISTS = "ALLOC_ENGINE_V6_ALLOC_HR_LEASE_EXISTS";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_LEASES_HR = "ALLOC_ENGINE_V6_ALLOC_LEASES_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_LEASES_NO_HR = "ALLOC_ENGINE_V6_ALLOC_LEASES_NO_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_NO_LEASES_HR = "ALLOC_ENGINE_V6_ALLOC_NO_LEASES_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_NO_V6_HR = "ALLOC_ENGINE_V6_ALLOC_NO_V6_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_UNRESERVED = "ALLOC_ENGINE_V6_ALLOC_UNRESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_DECLINED_RECOVERED = "ALLOC_ENGINE_V6_DECLINED_RECOVERED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXPIRED_HINT_RESERVED = "ALLOC_ENGINE_V6_EXPIRED_HINT_RESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_ALLOC_UNRESERVED = "ALLOC_ENGINE_V6_EXTEND_ALLOC_UNRESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_ERROR = "ALLOC_ENGINE_V6_EXTEND_ERROR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_LEASE = "ALLOC_ENGINE_V6_EXTEND_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_LEASE_DATA = "ALLOC_ENGINE_V6_EXTEND_LEASE_DATA";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_NEW_LEASE_DATA = "ALLOC_ENGINE_V6_EXTEND_NEW_LEASE_DATA";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HINT_RESERVED = "ALLOC_ENGINE_V6_HINT_RESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HR_ADDR_GRANTED = "ALLOC_ENGINE_V6_HR_ADDR_GRANTED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HR_PREFIX_GRANTED = "ALLOC_ENGINE_V6_HR_PREFIX_GRANTED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_COMPLETE = "ALLOC_ENGINE_V6_LEASES_RECLAMATION_COMPLETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_SLOW = "ALLOC_ENGINE_V6_LEASES_RECLAMATION_SLOW";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_START = "ALLOC_ENGINE_V6_LEASES_RECLAMATION_START";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_TIMEOUT = "ALLOC_ENGINE_V6_LEASES_RECLAMATION_TIMEOUT";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASE_RECLAIM = "ALLOC_ENGINE_V6_LEASE_RECLAIM";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASE_RECLAMATION_FAILED = "ALLOC_ENGINE_V6_LEASE_RECLAMATION_FAILED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_NO_MORE_EXPIRED_LEASES = "ALLOC_ENGINE_V6_NO_MORE_EXPIRED_LEASES";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE = "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_COMPLETE = "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_COMPLETE";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_FAILED = "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_FAILED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_HR = "ALLOC_ENGINE_V6_RENEW_HR";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_REMOVE_RESERVED = "ALLOC_ENGINE_V6_RENEW_REMOVE_RESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_REMOVE_UNRESERVED = "ALLOC_ENGINE_V6_RENEW_REMOVE_UNRESERVED";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REUSE_EXPIRED_LEASE_DATA = "ALLOC_ENGINE_V6_REUSE_EXPIRED_LEASE_DATA";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REVOKED_ADDR_LEASE = "ALLOC_ENGINE_V6_REVOKED_ADDR_LEASE";
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REVOKED_PREFIX_LEASE = "ALLOC_ENGINE_V6_REVOKED_PREFIX_LEASE";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "ALLOC_ENGINE_LEASE_RECLAIMED", "successfully reclaimed lease %1",
+    "ALLOC_ENGINE_REMOVAL_NCR_FAILED", "sending removal name change request failed for lease %1: %2",
+    "ALLOC_ENGINE_V4_ALLOC_ERROR", "%1: error during attempt to allocate an IPv4 address: %2",
+    "ALLOC_ENGINE_V4_ALLOC_FAIL", "%1: failed to allocate an IPv4 address after %2 attempt(s)",
+    "ALLOC_ENGINE_V4_DECLINED_RECOVERED", "IPv4 address %1 was recovered after %2 seconds of probation-period",
+    "ALLOC_ENGINE_V4_DISCOVER_ADDRESS_CONFLICT", "%1: conflicting reservation for address %2 with existing lease %3",
+    "ALLOC_ENGINE_V4_DISCOVER_HR", "client %1 sending DHCPDISCOVER has reservation for the address %2",
+    "ALLOC_ENGINE_V4_LEASES_RECLAMATION_COMPLETE", "reclaimed %1 leases in %2",
+    "ALLOC_ENGINE_V4_LEASES_RECLAMATION_SLOW", "expired leases still exist after %1 reclamations",
+    "ALLOC_ENGINE_V4_LEASES_RECLAMATION_START", "starting reclamation of expired leases (limit = %1 leases or %2 milliseconds)",
+    "ALLOC_ENGINE_V4_LEASES_RECLAMATION_TIMEOUT", "timeout of %1 ms reached while reclaiming IPv4 leases",
+    "ALLOC_ENGINE_V4_LEASE_RECLAIM", "%1: reclaiming expired lease for address %2",
+    "ALLOC_ENGINE_V4_LEASE_RECLAMATION_FAILED", "failed to reclaim the lease %1: %2",
+    "ALLOC_ENGINE_V4_NO_MORE_EXPIRED_LEASES", "all expired leases have been reclaimed",
+    "ALLOC_ENGINE_V4_OFFER_EXISTING_LEASE", "allocation engine will try to offer existing lease to the client %1",
+    "ALLOC_ENGINE_V4_OFFER_NEW_LEASE", "allocation engine will try to offer new lease to the client %1",
+    "ALLOC_ENGINE_V4_OFFER_REQUESTED_LEASE", "allocation engine will try to offer requested lease %1 to the client %2",
+    "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE", "begin deletion of reclaimed leases expired more than %1 seconds ago",
+    "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_COMPLETE", "successfully deleted %1 expired-reclaimed leases",
+    "ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED", "deletion of expired-reclaimed leases failed: %1",
+    "ALLOC_ENGINE_V4_REQUEST_ADDRESS_RESERVED", "%1: requested address %2 is reserved",
+    "ALLOC_ENGINE_V4_REQUEST_ALLOC_REQUESTED", "%1: trying to allocate requested address %2",
+    "ALLOC_ENGINE_V4_REQUEST_EXTEND_LEASE", "%1: extending lifetime of the lease for address %2",
+    "ALLOC_ENGINE_V4_REQUEST_INVALID", "client %1 having a reservation for address %2 is requesting invalid address %3",
+    "ALLOC_ENGINE_V4_REQUEST_IN_USE", "%1: requested address %2 is in use",
+    "ALLOC_ENGINE_V4_REQUEST_OUT_OF_POOL", "client %1, which doesn't have a reservation, requested address %2 out of the dynamic pool",
+    "ALLOC_ENGINE_V4_REQUEST_PICK_ADDRESS", "client %1 hasn't specified an address - picking available address from the pool",
+    "ALLOC_ENGINE_V4_REQUEST_REMOVE_LEASE", "%1: removing previous client's lease %2",
+    "ALLOC_ENGINE_V4_REQUEST_USE_HR", "client %1 hasn't requested specific address, using reserved address %2",
+    "ALLOC_ENGINE_V4_REUSE_EXPIRED_LEASE_DATA", "%1: reusing expired lease, updated lease information: %2",
+    "ALLOC_ENGINE_V6_ALLOC_ERROR", "%1: error during attempt to allocate an IPv6 address: %2",
+    "ALLOC_ENGINE_V6_ALLOC_FAIL", "%1: failed to allocate an IPv6 address after %2 attempt(s)",
+    "ALLOC_ENGINE_V6_ALLOC_HR_LEASE_EXISTS", "%1: lease type %2 for reserved address/prefix %3 already exists",
+    "ALLOC_ENGINE_V6_ALLOC_LEASES_HR", "leases and static reservations found for client %1",
+    "ALLOC_ENGINE_V6_ALLOC_LEASES_NO_HR", "no reservations found but leases exist for client %1",
+    "ALLOC_ENGINE_V6_ALLOC_NO_LEASES_HR", "no leases found but reservations exist for client %1",
+    "ALLOC_ENGINE_V6_ALLOC_NO_V6_HR", "%1: unable to allocate reserved leases - no IPv6 reservations",
+    "ALLOC_ENGINE_V6_ALLOC_UNRESERVED", "no static reservations available - trying to dynamically allocate leases for client %1",
+    "ALLOC_ENGINE_V6_DECLINED_RECOVERED", "IPv6 address %1 was recovered after %2 seconds of probation-period",
+    "ALLOC_ENGINE_V6_EXPIRED_HINT_RESERVED", "%1: expired lease for the client's hint %2 is reserved for another client",
+    "ALLOC_ENGINE_V6_EXTEND_ALLOC_UNRESERVED", "allocate new (unreserved) leases for the renewing client %1",
+    "ALLOC_ENGINE_V6_EXTEND_ERROR", "%1: allocation engine experienced error with attempting to extend lease lifetime: %2",
+    "ALLOC_ENGINE_V6_EXTEND_LEASE", "%1: extending lifetime of the lease type %2, address %3",
+    "ALLOC_ENGINE_V6_EXTEND_LEASE_DATA", "%1: detailed information about the lease being extended: %2",
+    "ALLOC_ENGINE_V6_EXTEND_NEW_LEASE_DATA", "%1: new lease information for the lease being extended: %2",
+    "ALLOC_ENGINE_V6_HINT_RESERVED", "%1: lease for the client's hint %2 is reserved for another client",
+    "ALLOC_ENGINE_V6_HR_ADDR_GRANTED", "reserved address %1 was assigned to client %2",
+    "ALLOC_ENGINE_V6_HR_PREFIX_GRANTED", "reserved prefix %1/%2 was assigned to client %3",
+    "ALLOC_ENGINE_V6_LEASES_RECLAMATION_COMPLETE", "reclaimed %1 leases in %2",
+    "ALLOC_ENGINE_V6_LEASES_RECLAMATION_SLOW", "expired leases still exist after %1 reclamations",
+    "ALLOC_ENGINE_V6_LEASES_RECLAMATION_START", "starting reclamation of expired leases (limit = %1 leases or %2 milliseconds)",
+    "ALLOC_ENGINE_V6_LEASES_RECLAMATION_TIMEOUT", "timeout of %1 ms reached while reclaiming IPv6 leases",
+    "ALLOC_ENGINE_V6_LEASE_RECLAIM", "%1: reclaiming expired lease for prefix %2/%3",
+    "ALLOC_ENGINE_V6_LEASE_RECLAMATION_FAILED", "failed to reclaim the lease %1: %2",
+    "ALLOC_ENGINE_V6_NO_MORE_EXPIRED_LEASES", "all expired leases have been reclaimed",
+    "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE", "begin deletion of reclaimed leases expired more than %1 seconds ago",
+    "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_COMPLETE", "successfully deleted %1 expired-reclaimed leases",
+    "ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_FAILED", "deletion of expired-reclaimed leases failed: %1",
+    "ALLOC_ENGINE_V6_RENEW_HR", "allocating leases reserved for the client %1 as a result of Renew",
+    "ALLOC_ENGINE_V6_RENEW_REMOVE_RESERVED", "%1: checking if existing client's leases are reserved for another client",
+    "ALLOC_ENGINE_V6_RENEW_REMOVE_UNRESERVED", "dynamically allocating leases for the renewing client %1",
+    "ALLOC_ENGINE_V6_REUSE_EXPIRED_LEASE_DATA", "%1: reusing expired lease, updated lease information: %2",
+    "ALLOC_ENGINE_V6_REVOKED_ADDR_LEASE", "address %1 was revoked from client %2 as it is reserved for client %3",
+    "ALLOC_ENGINE_V6_REVOKED_PREFIX_LEASE", "Prefix %1/%2 was revoked from client %3 as it is reserved for client %4",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/dhcpsrv/alloc_engine_messages.h b/src/lib/dhcpsrv/alloc_engine_messages.h
new file mode 100644 (file)
index 0000000..9f7a721
--- /dev/null
@@ -0,0 +1,79 @@
+// File created from ../../../src/lib/dhcpsrv/alloc_engine_messages.mes on Fri Feb 08 2019 20:31
+
+#ifndef ALLOC_ENGINE_MESSAGES_H
+#define ALLOC_ENGINE_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID ALLOC_ENGINE_LEASE_RECLAIMED;
+extern const isc::log::MessageID ALLOC_ENGINE_REMOVAL_NCR_FAILED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_ALLOC_ERROR;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_ALLOC_FAIL;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DECLINED_RECOVERED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DISCOVER_ADDRESS_CONFLICT;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_DISCOVER_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_COMPLETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_SLOW;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_START;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASES_RECLAMATION_TIMEOUT;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASE_RECLAIM;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_LEASE_RECLAMATION_FAILED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_NO_MORE_EXPIRED_LEASES;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_EXISTING_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_NEW_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_OFFER_REQUESTED_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_COMPLETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_ADDRESS_RESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_ALLOC_REQUESTED;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_EXTEND_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_INVALID;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_IN_USE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_OUT_OF_POOL;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_PICK_ADDRESS;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_REMOVE_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REQUEST_USE_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V4_REUSE_EXPIRED_LEASE_DATA;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_ERROR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_FAIL;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_HR_LEASE_EXISTS;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_LEASES_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_LEASES_NO_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_NO_LEASES_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_NO_V6_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_ALLOC_UNRESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_DECLINED_RECOVERED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXPIRED_HINT_RESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_ALLOC_UNRESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_ERROR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_LEASE_DATA;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_EXTEND_NEW_LEASE_DATA;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HINT_RESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HR_ADDR_GRANTED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_HR_PREFIX_GRANTED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_COMPLETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_SLOW;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_START;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASES_RECLAMATION_TIMEOUT;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASE_RECLAIM;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_LEASE_RECLAMATION_FAILED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_NO_MORE_EXPIRED_LEASES;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_COMPLETE;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RECLAIMED_LEASES_DELETE_FAILED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_HR;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_REMOVE_RESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_RENEW_REMOVE_UNRESERVED;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REUSE_EXPIRED_LEASE_DATA;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REVOKED_ADDR_LEASE;
+extern const isc::log::MessageID ALLOC_ENGINE_V6_REVOKED_PREFIX_LEASE;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // ALLOC_ENGINE_MESSAGES_H
diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.cc b/src/lib/dhcpsrv/dhcpsrv_messages.cc
new file mode 100644 (file)
index 0000000..4b1e8b7
--- /dev/null
@@ -0,0 +1,469 @@
+// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Fri Feb 08 2019 20:31
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_IFACE = "DHCPSRV_CFGMGR_ADD_IFACE";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_SUBNET4 = "DHCPSRV_CFGMGR_ADD_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_SUBNET6 = "DHCPSRV_CFGMGR_ADD_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ALL_IFACES_ACTIVE = "DHCPSRV_CFGMGR_ALL_IFACES_ACTIVE";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CFG_DHCP_DDNS = "DHCPSRV_CFGMGR_CFG_DHCP_DDNS";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES = "DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIGURE_SERVERID = "DHCPSRV_CFGMGR_CONFIGURE_SERVERID";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET4 = "DHCPSRV_CFGMGR_DEL_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET6 = "DHCPSRV_CFGMGR_DEL_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NEW_SUBNET4 = "DHCPSRV_CFGMGR_NEW_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NEW_SUBNET6 = "DHCPSRV_CFGMGR_NEW_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NO_SUBNET4 = "DHCPSRV_CFGMGR_NO_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NO_SUBNET6 = "DHCPSRV_CFGMGR_NO_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ONLY_SUBNET4 = "DHCPSRV_CFGMGR_ONLY_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ONLY_SUBNET6 = "DHCPSRV_CFGMGR_ONLY_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_OPTION_DUPLICATE = "DHCPSRV_CFGMGR_OPTION_DUPLICATE";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_RELAY_IP_ADDRESS_DEPRECATED = "DHCPSRV_CFGMGR_RELAY_IP_ADDRESS_DEPRECATED";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_RAW_UNSUPPORTED = "DHCPSRV_CFGMGR_SOCKET_RAW_UNSUPPORTED";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_TYPE_DEFAULT = "DHCPSRV_CFGMGR_SOCKET_TYPE_DEFAULT";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT = "DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4 = "DHCPSRV_CFGMGR_SUBNET4";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_ADDR = "DHCPSRV_CFGMGR_SUBNET4_ADDR";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_IFACE = "DHCPSRV_CFGMGR_SUBNET4_IFACE";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_RELAY = "DHCPSRV_CFGMGR_SUBNET4_RELAY";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6 = "DHCPSRV_CFGMGR_SUBNET6";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_IFACE = "DHCPSRV_CFGMGR_SUBNET6_IFACE";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_IFACE_ID = "DHCPSRV_CFGMGR_SUBNET6_IFACE_ID";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_RELAY = "DHCPSRV_CFGMGR_SUBNET6_RELAY";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_UNICAST_LINK_LOCAL = "DHCPSRV_CFGMGR_UNICAST_LINK_LOCAL";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_ADDRESS = "DHCPSRV_CFGMGR_USE_ADDRESS";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_UNICAST = "DHCPSRV_CFGMGR_USE_UNICAST";
+extern const isc::log::MessageID DHCPSRV_CLOSE_DB = "DHCPSRV_CLOSE_DB";
+extern const isc::log::MessageID DHCPSRV_CQL_ADD_ADDR4 = "DHCPSRV_CQL_ADD_ADDR4";
+extern const isc::log::MessageID DHCPSRV_CQL_ADD_ADDR6 = "DHCPSRV_CQL_ADD_ADDR6";
+extern const isc::log::MessageID DHCPSRV_CQL_COMMIT = "DHCPSRV_CQL_COMMIT";
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_BEGIN_TRANSACTION = "DHCPSRV_CQL_CONNECTION_BEGIN_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_COMMIT = "DHCPSRV_CQL_CONNECTION_COMMIT";
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_ROLLBACK = "DHCPSRV_CQL_CONNECTION_ROLLBACK";
+extern const isc::log::MessageID DHCPSRV_CQL_DB = "DHCPSRV_CQL_DB";
+extern const isc::log::MessageID DHCPSRV_CQL_DEALLOC_ERROR = "DHCPSRV_CQL_DEALLOC_ERROR";
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_ADDR = "DHCPSRV_CQL_DELETE_ADDR";
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED4 = "DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED4";
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED6 = "DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED6";
+extern const isc::log::MessageID DHCPSRV_CQL_GET4 = "DHCPSRV_CQL_GET4";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_ADDR4 = "DHCPSRV_CQL_GET_ADDR4";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_ADDR6 = "DHCPSRV_CQL_GET_ADDR6";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_CLIENTID = "DHCPSRV_CQL_GET_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_CLIENTID_HWADDR_SUBID = "DHCPSRV_CQL_GET_CLIENTID_HWADDR_SUBID";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_EXPIRED4 = "DHCPSRV_CQL_GET_EXPIRED4";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_EXPIRED6 = "DHCPSRV_CQL_GET_EXPIRED6";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_HWADDR = "DHCPSRV_CQL_GET_HWADDR";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_IAID_DUID = "DHCPSRV_CQL_GET_IAID_DUID";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_IAID_SUBID_DUID = "DHCPSRV_CQL_GET_IAID_SUBID_DUID";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_PAGE4 = "DHCPSRV_CQL_GET_PAGE4";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_PAGE6 = "DHCPSRV_CQL_GET_PAGE6";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID4 = "DHCPSRV_CQL_GET_SUBID4";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID_CLIENTID = "DHCPSRV_CQL_GET_SUBID_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID_HWADDR = "DHCPSRV_CQL_GET_SUBID_HWADDR";
+extern const isc::log::MessageID DHCPSRV_CQL_GET_VERSION = "DHCPSRV_CQL_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_ADD = "DHCPSRV_CQL_HOST_ADD";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_DB = "DHCPSRV_CQL_HOST_DB";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_DB_GET_VERSION = "DHCPSRV_CQL_HOST_DB_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET4 = "DHCPSRV_CQL_HOST_GET4";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET6 = "DHCPSRV_CQL_HOST_GET6";
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET_ALL = "DHCPSRV_CQL_HOST_GET_ALL";
+extern const isc::log::MessageID DHCPSRV_CQL_LEASE_EXCEPTION_THROWN = "DHCPSRV_CQL_LEASE_EXCEPTION_THROWN";
+extern const isc::log::MessageID DHCPSRV_CQL_ROLLBACK = "DHCPSRV_CQL_ROLLBACK";
+extern const isc::log::MessageID DHCPSRV_CQL_UPDATE_ADDR4 = "DHCPSRV_CQL_UPDATE_ADDR4";
+extern const isc::log::MessageID DHCPSRV_CQL_UPDATE_ADDR6 = "DHCPSRV_CQL_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET = "DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION = "DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_HANDLER_NULL = "DHCPSRV_DHCP_DDNS_HANDLER_NULL";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_NCR_REJECTED = "DHCPSRV_DHCP_DDNS_NCR_REJECTED";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_NCR_SENT = "DHCPSRV_DHCP_DDNS_NCR_SENT";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SENDER_STARTED = "DHCPSRV_DHCP_DDNS_SENDER_STARTED";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SENDER_STOPPED = "DHCPSRV_DHCP_DDNS_SENDER_STOPPED";
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SUSPEND_UPDATES = "DHCPSRV_DHCP_DDNS_SUSPEND_UPDATES";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_RECOVER_SKIP = "DHCPSRV_HOOK_LEASE4_RECOVER_SKIP";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_RENEW_SKIP = "DHCPSRV_HOOK_LEASE4_RENEW_SKIP";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_SELECT_SKIP = "DHCPSRV_HOOK_LEASE4_SELECT_SKIP";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_EXTEND_SKIP = "DHCPSRV_HOOK_LEASE6_EXTEND_SKIP";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_RECOVER_SKIP = "DHCPSRV_HOOK_LEASE6_RECOVER_SKIP";
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_SELECT_SKIP = "DHCPSRV_HOOK_LEASE6_SELECT_SKIP";
+extern const isc::log::MessageID DHCPSRV_INVALID_ACCESS = "DHCPSRV_INVALID_ACCESS";
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FAIL = "DHCPSRV_LEASE_SANITY_FAIL";
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FAIL_DISCARD = "DHCPSRV_LEASE_SANITY_FAIL_DISCARD";
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FIXED = "DHCPSRV_LEASE_SANITY_FIXED";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ADD_ADDR4 = "DHCPSRV_MEMFILE_ADD_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ADD_ADDR6 = "DHCPSRV_MEMFILE_ADD_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_BEGIN_TRANSACTION = "DHCPSRV_MEMFILE_BEGIN_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_COMMIT = "DHCPSRV_MEMFILE_COMMIT";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES = "DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DB = "DHCPSRV_MEMFILE_DB";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_ADDR = "DHCPSRV_MEMFILE_DELETE_ADDR";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED4 = "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED6 = "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED_START = "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED_START";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET4 = "DHCPSRV_MEMFILE_GET4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET6 = "DHCPSRV_MEMFILE_GET6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET6_DUID = "DHCPSRV_MEMFILE_GET6_DUID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_ADDR4 = "DHCPSRV_MEMFILE_GET_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_ADDR6 = "DHCPSRV_MEMFILE_GET_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_CLIENTID = "DHCPSRV_MEMFILE_GET_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_CLIENTID_HWADDR_SUBID = "DHCPSRV_MEMFILE_GET_CLIENTID_HWADDR_SUBID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_EXPIRED4 = "DHCPSRV_MEMFILE_GET_EXPIRED4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_EXPIRED6 = "DHCPSRV_MEMFILE_GET_EXPIRED6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_HWADDR = "DHCPSRV_MEMFILE_GET_HWADDR";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_IAID_DUID = "DHCPSRV_MEMFILE_GET_IAID_DUID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID = "DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_PAGE4 = "DHCPSRV_MEMFILE_GET_PAGE4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_PAGE6 = "DHCPSRV_MEMFILE_GET_PAGE6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID4 = "DHCPSRV_MEMFILE_GET_SUBID4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID6 = "DHCPSRV_MEMFILE_GET_SUBID6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID_CLIENTID = "DHCPSRV_MEMFILE_GET_SUBID_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID_HWADDR = "DHCPSRV_MEMFILE_GET_SUBID_HWADDR";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_VERSION = "DHCPSRV_MEMFILE_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_FILE_LOAD = "DHCPSRV_MEMFILE_LEASE_FILE_LOAD";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_LOAD = "DHCPSRV_MEMFILE_LEASE_LOAD";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_LOAD_ROW_ERROR = "DHCPSRV_MEMFILE_LEASE_LOAD_ROW_ERROR";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_EXECUTE = "DHCPSRV_MEMFILE_LFC_EXECUTE";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_LEASE_FILE_RENAME_FAIL = "DHCPSRV_MEMFILE_LFC_LEASE_FILE_RENAME_FAIL";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_LEASE_FILE_REOPEN_FAIL = "DHCPSRV_MEMFILE_LFC_LEASE_FILE_REOPEN_FAIL";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_SETUP = "DHCPSRV_MEMFILE_LFC_SETUP";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_SPAWN_FAIL = "DHCPSRV_MEMFILE_LFC_SPAWN_FAIL";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_START = "DHCPSRV_MEMFILE_LFC_START";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_UNREGISTER_TIMER_FAILED = "DHCPSRV_MEMFILE_LFC_UNREGISTER_TIMER_FAILED";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NEEDS_DOWNGRADING = "DHCPSRV_MEMFILE_NEEDS_DOWNGRADING";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NEEDS_UPGRADING = "DHCPSRV_MEMFILE_NEEDS_UPGRADING";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NO_STORAGE = "DHCPSRV_MEMFILE_NO_STORAGE";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_READ_HWADDR_FAIL = "DHCPSRV_MEMFILE_READ_HWADDR_FAIL";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ROLLBACK = "DHCPSRV_MEMFILE_ROLLBACK";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_UPDATE_ADDR4 = "DHCPSRV_MEMFILE_UPDATE_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_UPDATE_ADDR6 = "DHCPSRV_MEMFILE_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES4 = "DHCPSRV_MEMFILE_WIPE_LEASES4";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES4_FINISHED = "DHCPSRV_MEMFILE_WIPE_LEASES4_FINISHED";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES6 = "DHCPSRV_MEMFILE_WIPE_LEASES6";
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES6_FINISHED = "DHCPSRV_MEMFILE_WIPE_LEASES6_FINISHED";
+extern const isc::log::MessageID DHCPSRV_MULTIPLE_RAW_SOCKETS_PER_IFACE = "DHCPSRV_MULTIPLE_RAW_SOCKETS_PER_IFACE";
+extern const isc::log::MessageID DHCPSRV_MYSQL_ADD_ADDR4 = "DHCPSRV_MYSQL_ADD_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_ADD_ADDR6 = "DHCPSRV_MYSQL_ADD_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_BEGIN_TRANSACTION = "DHCPSRV_MYSQL_BEGIN_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_MYSQL_COMMIT = "DHCPSRV_MYSQL_COMMIT";
+extern const isc::log::MessageID DHCPSRV_MYSQL_DB = "DHCPSRV_MYSQL_DB";
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETED_EXPIRED_RECLAIMED = "DHCPSRV_MYSQL_DELETED_EXPIRED_RECLAIMED";
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_ADDR = "DHCPSRV_MYSQL_DELETE_ADDR";
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED4 = "DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED6 = "DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_FATAL_ERROR = "DHCPSRV_MYSQL_FATAL_ERROR";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET4 = "DHCPSRV_MYSQL_GET4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET6 = "DHCPSRV_MYSQL_GET6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_ADDR4 = "DHCPSRV_MYSQL_GET_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_ADDR6 = "DHCPSRV_MYSQL_GET_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_CLIENTID = "DHCPSRV_MYSQL_GET_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_DUID = "DHCPSRV_MYSQL_GET_DUID";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_EXPIRED4 = "DHCPSRV_MYSQL_GET_EXPIRED4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_EXPIRED6 = "DHCPSRV_MYSQL_GET_EXPIRED6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_HWADDR = "DHCPSRV_MYSQL_GET_HWADDR";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_IAID_DUID = "DHCPSRV_MYSQL_GET_IAID_DUID";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_IAID_SUBID_DUID = "DHCPSRV_MYSQL_GET_IAID_SUBID_DUID";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_PAGE4 = "DHCPSRV_MYSQL_GET_PAGE4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_PAGE6 = "DHCPSRV_MYSQL_GET_PAGE6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID4 = "DHCPSRV_MYSQL_GET_SUBID4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID6 = "DHCPSRV_MYSQL_GET_SUBID6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID_CLIENTID = "DHCPSRV_MYSQL_GET_SUBID_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID_HWADDR = "DHCPSRV_MYSQL_GET_SUBID_HWADDR";
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_VERSION = "DHCPSRV_MYSQL_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB = "DHCPSRV_MYSQL_HOST_DB";
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB_GET_VERSION = "DHCPSRV_MYSQL_HOST_DB_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB_READONLY = "DHCPSRV_MYSQL_HOST_DB_READONLY";
+extern const isc::log::MessageID DHCPSRV_MYSQL_ROLLBACK = "DHCPSRV_MYSQL_ROLLBACK";
+extern const isc::log::MessageID DHCPSRV_MYSQL_START_TRANSACTION = "DHCPSRV_MYSQL_START_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR4 = "DHCPSRV_MYSQL_UPDATE_ADDR4";
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR6 = "DHCPSRV_MYSQL_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_NOTYPE_DB = "DHCPSRV_NOTYPE_DB";
+extern const isc::log::MessageID DHCPSRV_NO_SOCKETS_OPEN = "DHCPSRV_NO_SOCKETS_OPEN";
+extern const isc::log::MessageID DHCPSRV_OPEN_SOCKET_FAIL = "DHCPSRV_OPEN_SOCKET_FAIL";
+extern const isc::log::MessageID DHCPSRV_PGSQL_ADD_ADDR4 = "DHCPSRV_PGSQL_ADD_ADDR4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_ADD_ADDR6 = "DHCPSRV_PGSQL_ADD_ADDR6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_BEGIN_TRANSACTION = "DHCPSRV_PGSQL_BEGIN_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_PGSQL_COMMIT = "DHCPSRV_PGSQL_COMMIT";
+extern const isc::log::MessageID DHCPSRV_PGSQL_DB = "DHCPSRV_PGSQL_DB";
+extern const isc::log::MessageID DHCPSRV_PGSQL_DEALLOC_ERROR = "DHCPSRV_PGSQL_DEALLOC_ERROR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_ADDR = "DHCPSRV_PGSQL_DELETE_ADDR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED4 = "DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED6 = "DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_FATAL_ERROR = "DHCPSRV_PGSQL_FATAL_ERROR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET4 = "DHCPSRV_PGSQL_GET4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET6 = "DHCPSRV_PGSQL_GET6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_ADDR4 = "DHCPSRV_PGSQL_GET_ADDR4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_ADDR6 = "DHCPSRV_PGSQL_GET_ADDR6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_CLIENTID = "DHCPSRV_PGSQL_GET_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_DUID = "DHCPSRV_PGSQL_GET_DUID";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_EXPIRED4 = "DHCPSRV_PGSQL_GET_EXPIRED4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_EXPIRED6 = "DHCPSRV_PGSQL_GET_EXPIRED6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_HWADDR = "DHCPSRV_PGSQL_GET_HWADDR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_IAID_DUID = "DHCPSRV_PGSQL_GET_IAID_DUID";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_IAID_SUBID_DUID = "DHCPSRV_PGSQL_GET_IAID_SUBID_DUID";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_PAGE4 = "DHCPSRV_PGSQL_GET_PAGE4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_PAGE6 = "DHCPSRV_PGSQL_GET_PAGE6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID4 = "DHCPSRV_PGSQL_GET_SUBID4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID6 = "DHCPSRV_PGSQL_GET_SUBID6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID_CLIENTID = "DHCPSRV_PGSQL_GET_SUBID_CLIENTID";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID_HWADDR = "DHCPSRV_PGSQL_GET_SUBID_HWADDR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_VERSION = "DHCPSRV_PGSQL_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB = "DHCPSRV_PGSQL_HOST_DB";
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB_GET_VERSION = "DHCPSRV_PGSQL_HOST_DB_GET_VERSION";
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB_READONLY = "DHCPSRV_PGSQL_HOST_DB_READONLY";
+extern const isc::log::MessageID DHCPSRV_PGSQL_ROLLBACK = "DHCPSRV_PGSQL_ROLLBACK";
+extern const isc::log::MessageID DHCPSRV_PGSQL_START_TRANSACTION = "DHCPSRV_PGSQL_START_TRANSACTION";
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR4 = "DHCPSRV_PGSQL_UPDATE_ADDR4";
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR6 = "DHCPSRV_PGSQL_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR = "DHCPSRV_QUEUE_NCR";
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR_FAILED = "DHCPSRV_QUEUE_NCR_FAILED";
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR_SKIP = "DHCPSRV_QUEUE_NCR_SKIP";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_CALLBACK_FAILED = "DHCPSRV_TIMERMGR_CALLBACK_FAILED";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_REGISTER_TIMER = "DHCPSRV_TIMERMGR_REGISTER_TIMER";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_RUN_TIMER_OPERATION = "DHCPSRV_TIMERMGR_RUN_TIMER_OPERATION";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_START_TIMER = "DHCPSRV_TIMERMGR_START_TIMER";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_STOP_TIMER = "DHCPSRV_TIMERMGR_STOP_TIMER";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_UNREGISTER_ALL_TIMERS = "DHCPSRV_TIMERMGR_UNREGISTER_ALL_TIMERS";
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_UNREGISTER_TIMER = "DHCPSRV_TIMERMGR_UNREGISTER_TIMER";
+extern const isc::log::MessageID DHCPSRV_UNEXPECTED_NAME = "DHCPSRV_UNEXPECTED_NAME";
+extern const isc::log::MessageID DHCPSRV_UNKNOWN_DB = "DHCPSRV_UNKNOWN_DB";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DHCPSRV_CFGMGR_ADD_IFACE", "listening on interface %1",
+    "DHCPSRV_CFGMGR_ADD_SUBNET4", "adding subnet %1",
+    "DHCPSRV_CFGMGR_ADD_SUBNET6", "adding subnet %1",
+    "DHCPSRV_CFGMGR_ALL_IFACES_ACTIVE", "enabling listening on all interfaces",
+    "DHCPSRV_CFGMGR_CFG_DHCP_DDNS", "Setting DHCP-DDNS configuration to: %1",
+    "DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES", "stop listening on all interfaces",
+    "DHCPSRV_CFGMGR_CONFIGURE_SERVERID", "server configuration includes specification of a server identifier",
+    "DHCPSRV_CFGMGR_DEL_SUBNET4", "IPv4 subnet %1 removed",
+    "DHCPSRV_CFGMGR_DEL_SUBNET6", "IPv6 subnet %1 removed",
+    "DHCPSRV_CFGMGR_NEW_SUBNET4", "a new subnet has been added to configuration: %1",
+    "DHCPSRV_CFGMGR_NEW_SUBNET6", "a new subnet has been added to configuration: %1",
+    "DHCPSRV_CFGMGR_NO_SUBNET4", "no suitable subnet is defined for address hint %1",
+    "DHCPSRV_CFGMGR_NO_SUBNET6", "no suitable subnet is defined for address hint %1",
+    "DHCPSRV_CFGMGR_ONLY_SUBNET4", "retrieved subnet %1 for address hint %2",
+    "DHCPSRV_CFGMGR_ONLY_SUBNET6", "retrieved subnet %1 for address hint %2",
+    "DHCPSRV_CFGMGR_OPTION_DUPLICATE", "multiple options with the code: %1 added to the subnet: %2",
+    "DHCPSRV_CFGMGR_RELAY_IP_ADDRESS_DEPRECATED", "\"relay\" uses \"ip-address\", which has been deprecated, please use \"ip-addresses\": %1",
+    "DHCPSRV_CFGMGR_SOCKET_RAW_UNSUPPORTED", "use of raw sockets is unsupported on this OS, UDP sockets will be used",
+    "DHCPSRV_CFGMGR_SOCKET_TYPE_DEFAULT", "\"dhcp-socket-type\" not specified , using default socket type %1",
+    "DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT", "using socket type %1",
+    "DHCPSRV_CFGMGR_SUBNET4", "retrieved subnet %1 for address hint %2",
+    "DHCPSRV_CFGMGR_SUBNET4_ADDR", "selected subnet %1 for packet received by matching address %2",
+    "DHCPSRV_CFGMGR_SUBNET4_IFACE", "selected subnet %1 for packet received over interface %2",
+    "DHCPSRV_CFGMGR_SUBNET4_RELAY", "selected subnet %1, because of matching relay addr %2",
+    "DHCPSRV_CFGMGR_SUBNET6", "retrieved subnet %1 for address hint %2",
+    "DHCPSRV_CFGMGR_SUBNET6_IFACE", "selected subnet %1 for packet received over interface %2",
+    "DHCPSRV_CFGMGR_SUBNET6_IFACE_ID", "selected subnet %1 (interface-id match) for incoming packet",
+    "DHCPSRV_CFGMGR_SUBNET6_RELAY", "selected subnet %1, because of matching relay addr %2",
+    "DHCPSRV_CFGMGR_UNICAST_LINK_LOCAL", "specified link local address %1 for unicast traffic on interface %2",
+    "DHCPSRV_CFGMGR_USE_ADDRESS", "listening on address %1, on interface %2",
+    "DHCPSRV_CFGMGR_USE_UNICAST", "listening on unicast address %1, on interface %2",
+    "DHCPSRV_CLOSE_DB", "closing currently open %1 database",
+    "DHCPSRV_CQL_ADD_ADDR4", "adding IPv4 lease with address %1",
+    "DHCPSRV_CQL_ADD_ADDR6", "adding IPv6 lease with address %1",
+    "DHCPSRV_CQL_COMMIT", "committing to Cassandra database.",
+    "DHCPSRV_CQL_CONNECTION_BEGIN_TRANSACTION", "begin transaction on current connection.",
+    "DHCPSRV_CQL_CONNECTION_COMMIT", "committing to Cassandra database on current connection.",
+    "DHCPSRV_CQL_CONNECTION_ROLLBACK", "rolling back Cassandra database on current connection.",
+    "DHCPSRV_CQL_DB", "opening Cassandra lease database: %1",
+    "DHCPSRV_CQL_DEALLOC_ERROR", "An error occurred while closing the CQL connection: %1",
+    "DHCPSRV_CQL_DELETE_ADDR", "deleting lease for address %1",
+    "DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED4", "deleting reclaimed IPv4 leases that expired more than %1 seconds ago",
+    "DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED6", "deleting reclaimed IPv6 leases that expired more than %1 seconds ago",
+    "DHCPSRV_CQL_GET4", "obtaining all IPv4 leases",
+    "DHCPSRV_CQL_GET_ADDR4", "obtaining IPv4 lease for address %1",
+    "DHCPSRV_CQL_GET_ADDR6", "obtaining IPv6 lease for address %1 and lease type %2",
+    "DHCPSRV_CQL_GET_CLIENTID", "obtaining IPv4 leases for client ID %1",
+    "DHCPSRV_CQL_GET_CLIENTID_HWADDR_SUBID", "obtaining IPv4 lease for client ID %1, hardware address %2 and subnet ID %3",
+    "DHCPSRV_CQL_GET_EXPIRED4", "obtaining maximum %1 of expired IPv4 leases",
+    "DHCPSRV_CQL_GET_EXPIRED6", "obtaining maximum %1 of expired IPv6 leases",
+    "DHCPSRV_CQL_GET_HWADDR", "obtaining IPv4 leases for hardware address %1",
+    "DHCPSRV_CQL_GET_IAID_DUID", "obtaining IPv6 leases for IAID %1 and DUID %2 and lease type %3",
+    "DHCPSRV_CQL_GET_IAID_SUBID_DUID", "obtaining IPv6 leases for IAID %1, Subnet ID %2, DUID %3 and lease type %4",
+    "DHCPSRV_CQL_GET_PAGE4", "obtaining at most %1 IPv4 leases starting from address %2",
+    "DHCPSRV_CQL_GET_PAGE6", "obtaining at most %1 IPv6 leases starting from address %2",
+    "DHCPSRV_CQL_GET_SUBID4", "obtaining IPv4 leases for subnet ID %1",
+    "DHCPSRV_CQL_GET_SUBID_CLIENTID", "obtaining IPv4 lease for subnet ID %1 and client ID %2",
+    "DHCPSRV_CQL_GET_SUBID_HWADDR", "obtaining IPv4 lease for subnet ID %1 and hardware address %2",
+    "DHCPSRV_CQL_GET_VERSION", "obtaining schema version information",
+    "DHCPSRV_CQL_HOST_ADD", "Adding host information to the database",
+    "DHCPSRV_CQL_HOST_DB", "Connecting to CQL hosts database: %1",
+    "DHCPSRV_CQL_HOST_DB_GET_VERSION", "obtaining schema version information for the CQL hosts database",
+    "DHCPSRV_CQL_HOST_GET4", "Retrieving one DHCPv4 host from a CQL database",
+    "DHCPSRV_CQL_HOST_GET6", "Retrieving one DHCPv6 host from a CQL database",
+    "DHCPSRV_CQL_HOST_GET_ALL", "Retrieving multiple hosts from a CQL database",
+    "DHCPSRV_CQL_LEASE_EXCEPTION_THROWN", "Exception thrown during Cassandra operation: %1",
+    "DHCPSRV_CQL_ROLLBACK", "rolling back Cassandra database.",
+    "DHCPSRV_CQL_UPDATE_ADDR4", "updating IPv4 lease for address %1",
+    "DHCPSRV_CQL_UPDATE_ADDR6", "updating IPv6 lease for address %1",
+    "DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET", "received bad DHCPv4o6 packet: %1",
+    "DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION", "error handler for DHCP_DDNS IO generated an expected exception: %1",
+    "DHCPSRV_DHCP_DDNS_HANDLER_NULL", "error handler for DHCP_DDNS IO is not set.",
+    "DHCPSRV_DHCP_DDNS_NCR_REJECTED", "NameChangeRequest rejected by the sender: %1, ncr: %2",
+    "DHCPSRV_DHCP_DDNS_NCR_SENT", "NameChangeRequest sent to kea-dhcp-ddns: %1",
+    "DHCPSRV_DHCP_DDNS_SENDER_STARTED", "NameChangeRequest sender has been started: %1",
+    "DHCPSRV_DHCP_DDNS_SENDER_STOPPED", "NameChangeRequest sender has been stopped.",
+    "DHCPSRV_DHCP_DDNS_SUSPEND_UPDATES", "DHCP_DDNS updates are being suspended.",
+    "DHCPSRV_HOOK_LEASE4_RECOVER_SKIP", "DHCPv4 lease %1 was not recovered from the declined state because a callout set the skip status.",
+    "DHCPSRV_HOOK_LEASE4_RENEW_SKIP", "DHCPv4 lease was not renewed because a callout set the skip flag.",
+    "DHCPSRV_HOOK_LEASE4_SELECT_SKIP", "Lease4 creation was skipped, because of callout skip flag.",
+    "DHCPSRV_HOOK_LEASE6_EXTEND_SKIP", "DHCPv6 lease lifetime was not extended because a callout set the skip flag for message %1",
+    "DHCPSRV_HOOK_LEASE6_RECOVER_SKIP", "DHCPv6 lease %1 was not recovered from declined state because a callout set the skip status.",
+    "DHCPSRV_HOOK_LEASE6_SELECT_SKIP", "Lease6 (non-temporary) creation was skipped, because of callout skip flag.",
+    "DHCPSRV_INVALID_ACCESS", "invalid database access string: %1",
+    "DHCPSRV_LEASE_SANITY_FAIL", "The lease %1 with subnet-id %2 failed subnet-id checks.",
+    "DHCPSRV_LEASE_SANITY_FAIL_DISCARD", "The lease %1 with subnet-id %2 failed subnet-id checks and was dropped.",
+    "DHCPSRV_LEASE_SANITY_FIXED", "The lease %1 with subnet-id %2 failed subnet-id checks, but was corrected to subnet-id %3.",
+    "DHCPSRV_MEMFILE_ADD_ADDR4", "adding IPv4 lease with address %1",
+    "DHCPSRV_MEMFILE_ADD_ADDR6", "adding IPv6 lease with address %1",
+    "DHCPSRV_MEMFILE_BEGIN_TRANSACTION", "committing to memory file database",
+    "DHCPSRV_MEMFILE_COMMIT", "committing to memory file database",
+    "DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES", "running LFC now to convert lease files to the current schema: %1.%2",
+    "DHCPSRV_MEMFILE_DB", "opening memory file lease database: %1",
+    "DHCPSRV_MEMFILE_DELETE_ADDR", "deleting lease for address %1",
+    "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED4", "deleting reclaimed IPv4 leases that expired more than %1 seconds ago",
+    "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED6", "deleting reclaimed IPv6 leases that expired more than %1 seconds ago",
+    "DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED_START", "starting deletion of %1 expired-reclaimed leases",
+    "DHCPSRV_MEMFILE_GET4", "obtaining all IPv4 leases",
+    "DHCPSRV_MEMFILE_GET6", "obtaining all IPv6 leases",
+    "DHCPSRV_MEMFILE_GET6_DUID", "obtaining IPv6 leases for DUID %1",
+    "DHCPSRV_MEMFILE_GET_ADDR4", "obtaining IPv4 lease for address %1",
+    "DHCPSRV_MEMFILE_GET_ADDR6", "obtaining IPv6 lease for address %1 and lease type %2",
+    "DHCPSRV_MEMFILE_GET_CLIENTID", "obtaining IPv4 leases for client ID %1",
+    "DHCPSRV_MEMFILE_GET_CLIENTID_HWADDR_SUBID", "obtaining IPv4 lease for client ID %1, hardware address %2 and subnet ID %3",
+    "DHCPSRV_MEMFILE_GET_EXPIRED4", "obtaining maximum %1 of expired IPv4 leases",
+    "DHCPSRV_MEMFILE_GET_EXPIRED6", "obtaining maximum %1 of expired IPv6 leases",
+    "DHCPSRV_MEMFILE_GET_HWADDR", "obtaining IPv4 leases for hardware address %1",
+    "DHCPSRV_MEMFILE_GET_IAID_DUID", "obtaining IPv6 leases for IAID %1 and DUID %2 and lease type %3",
+    "DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID", "obtaining IPv6 leases for IAID %1, Subnet ID %2, DUID %3 and lease type %4",
+    "DHCPSRV_MEMFILE_GET_PAGE4", "obtaining at most %1 IPv4 leases starting from address %2",
+    "DHCPSRV_MEMFILE_GET_PAGE6", "obtaining at most %1 IPv6 leases starting from address %2",
+    "DHCPSRV_MEMFILE_GET_SUBID4", "obtaining IPv4 leases for subnet ID %1",
+    "DHCPSRV_MEMFILE_GET_SUBID6", "obtaining IPv6 leases for subnet ID %1",
+    "DHCPSRV_MEMFILE_GET_SUBID_CLIENTID", "obtaining IPv4 lease for subnet ID %1 and client ID %2",
+    "DHCPSRV_MEMFILE_GET_SUBID_HWADDR", "obtaining IPv4 lease for subnet ID %1 and hardware address %2",
+    "DHCPSRV_MEMFILE_GET_VERSION", "obtaining schema version information",
+    "DHCPSRV_MEMFILE_LEASE_FILE_LOAD", "loading leases from file %1",
+    "DHCPSRV_MEMFILE_LEASE_LOAD", "loading lease %1",
+    "DHCPSRV_MEMFILE_LEASE_LOAD_ROW_ERROR", "discarding row %1, error: %2",
+    "DHCPSRV_MEMFILE_LFC_EXECUTE", "executing Lease File Cleanup using: %1",
+    "DHCPSRV_MEMFILE_LFC_LEASE_FILE_RENAME_FAIL", "failed to rename the current lease file %1 to %2, reason: %3",
+    "DHCPSRV_MEMFILE_LFC_LEASE_FILE_REOPEN_FAIL", "failed to reopen lease file %1 after preparing input file for lease file cleanup, reason: %2, new leases will not be persisted!",
+    "DHCPSRV_MEMFILE_LFC_SETUP", "setting up the Lease File Cleanup interval to %1 sec",
+    "DHCPSRV_MEMFILE_LFC_SPAWN_FAIL", "lease file cleanup failed to run because kea-lfc process couldn't be spawned",
+    "DHCPSRV_MEMFILE_LFC_START", "starting Lease File Cleanup",
+    "DHCPSRV_MEMFILE_LFC_UNREGISTER_TIMER_FAILED", "failed to unregister timer 'memfile-lfc': %1",
+    "DHCPSRV_MEMFILE_NEEDS_DOWNGRADING", "version of lease file: %1 schema is later than version %2",
+    "DHCPSRV_MEMFILE_NEEDS_UPGRADING", "version of lease file: %1 schema is earlier than version %2",
+    "DHCPSRV_MEMFILE_NO_STORAGE", "running in non-persistent mode, leases will be lost after restart",
+    "DHCPSRV_MEMFILE_READ_HWADDR_FAIL", "failed to read hardware address from lease file: %1",
+    "DHCPSRV_MEMFILE_ROLLBACK", "rolling back memory file database",
+    "DHCPSRV_MEMFILE_UPDATE_ADDR4", "updating IPv4 lease for address %1",
+    "DHCPSRV_MEMFILE_UPDATE_ADDR6", "updating IPv6 lease for address %1",
+    "DHCPSRV_MEMFILE_WIPE_LEASES4", "removing all IPv4 leases from subnet %1",
+    "DHCPSRV_MEMFILE_WIPE_LEASES4_FINISHED", "removing all IPv4 leases from subnet %1 finished, removed %2 leases",
+    "DHCPSRV_MEMFILE_WIPE_LEASES6", "removing all IPv6 leases from subnet %1",
+    "DHCPSRV_MEMFILE_WIPE_LEASES6_FINISHED", "removing all IPv6 leases from subnet %1 finished, removed %2 leases",
+    "DHCPSRV_MULTIPLE_RAW_SOCKETS_PER_IFACE", "current configuration will result in opening multiple broadcast capable sockets on some interfaces and some DHCP messages may be duplicated",
+    "DHCPSRV_MYSQL_ADD_ADDR4", "adding IPv4 lease with address %1",
+    "DHCPSRV_MYSQL_ADD_ADDR6", "adding IPv6 lease with address %1, lease type %2",
+    "DHCPSRV_MYSQL_BEGIN_TRANSACTION", "committing to MySQL database",
+    "DHCPSRV_MYSQL_COMMIT", "committing to MySQL database",
+    "DHCPSRV_MYSQL_DB", "opening MySQL lease database: %1",
+    "DHCPSRV_MYSQL_DELETED_EXPIRED_RECLAIMED", "deleted %1 reclaimed leases from the database",
+    "DHCPSRV_MYSQL_DELETE_ADDR", "deleting lease for address %1",
+    "DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED4", "deleting reclaimed IPv4 leases that expired more than %1 seconds ago",
+    "DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED6", "deleting reclaimed IPv6 leases that expired more than %1 seconds ago",
+    "DHCPSRV_MYSQL_FATAL_ERROR", "Unrecoverable MySQL error occurred: %1 for <%2>, reason: %3 (error code: %4).",
+    "DHCPSRV_MYSQL_GET4", "obtaining all IPv4 leases",
+    "DHCPSRV_MYSQL_GET6", "obtaining all IPv6 leases",
+    "DHCPSRV_MYSQL_GET_ADDR4", "obtaining IPv4 lease for address %1",
+    "DHCPSRV_MYSQL_GET_ADDR6", "obtaining IPv6 lease for address %1, lease type %2",
+    "DHCPSRV_MYSQL_GET_CLIENTID", "obtaining IPv4 leases for client ID %1",
+    "DHCPSRV_MYSQL_GET_DUID", "obtaining IPv6 lease for duid %1,",
+    "DHCPSRV_MYSQL_GET_EXPIRED4", "obtaining maximum %1 of expired IPv4 leases",
+    "DHCPSRV_MYSQL_GET_EXPIRED6", "obtaining maximum %1 of expired IPv6 leases",
+    "DHCPSRV_MYSQL_GET_HWADDR", "obtaining IPv4 leases for hardware address %1",
+    "DHCPSRV_MYSQL_GET_IAID_DUID", "obtaining IPv6 leases for IAID %1, DUID %2, lease type %3",
+    "DHCPSRV_MYSQL_GET_IAID_SUBID_DUID", "obtaining IPv6 leases for IAID %1, Subnet ID %2, DUID %3, lease type %4",
+    "DHCPSRV_MYSQL_GET_PAGE4", "obtaining at most %1 IPv4 leases starting from address %2",
+    "DHCPSRV_MYSQL_GET_PAGE6", "obtaining at most %1 IPv6 leases starting from address %2",
+    "DHCPSRV_MYSQL_GET_SUBID4", "obtaining IPv4 leases for subnet ID %1",
+    "DHCPSRV_MYSQL_GET_SUBID6", "obtaining IPv6 leases for subnet ID %1",
+    "DHCPSRV_MYSQL_GET_SUBID_CLIENTID", "obtaining IPv4 lease for subnet ID %1 and client ID %2",
+    "DHCPSRV_MYSQL_GET_SUBID_HWADDR", "obtaining IPv4 lease for subnet ID %1 and hardware address %2",
+    "DHCPSRV_MYSQL_GET_VERSION", "obtaining schema version information",
+    "DHCPSRV_MYSQL_HOST_DB", "opening MySQL hosts database: %1",
+    "DHCPSRV_MYSQL_HOST_DB_GET_VERSION", "obtaining schema version information for the MySQL hosts database",
+    "DHCPSRV_MYSQL_HOST_DB_READONLY", "MySQL host database opened for read access only",
+    "DHCPSRV_MYSQL_ROLLBACK", "rolling back MySQL database",
+    "DHCPSRV_MYSQL_START_TRANSACTION", "starting new MySQL transaction",
+    "DHCPSRV_MYSQL_UPDATE_ADDR4", "updating IPv4 lease for address %1",
+    "DHCPSRV_MYSQL_UPDATE_ADDR6", "updating IPv6 lease for address %1, lease type %2",
+    "DHCPSRV_NOTYPE_DB", "no 'type' keyword to determine database backend: %1",
+    "DHCPSRV_NO_SOCKETS_OPEN", "no interface configured to listen to DHCP traffic",
+    "DHCPSRV_OPEN_SOCKET_FAIL", "failed to open socket: %1",
+    "DHCPSRV_PGSQL_ADD_ADDR4", "adding IPv4 lease with address %1",
+    "DHCPSRV_PGSQL_ADD_ADDR6", "adding IPv6 lease with address %1",
+    "DHCPSRV_PGSQL_BEGIN_TRANSACTION", "committing to PostgreSQL database",
+    "DHCPSRV_PGSQL_COMMIT", "committing to PostgreSQL database",
+    "DHCPSRV_PGSQL_DB", "opening PostgreSQL lease database: %1",
+    "DHCPSRV_PGSQL_DEALLOC_ERROR", "An error occurred deallocating SQL statements while closing the PostgreSQL lease database: %1",
+    "DHCPSRV_PGSQL_DELETE_ADDR", "deleting lease for address %1",
+    "DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED4", "deleting reclaimed IPv4 leases that expired more than %1 seconds ago",
+    "DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED6", "deleting reclaimed IPv6 leases that expired more than %1 seconds ago",
+    "DHCPSRV_PGSQL_FATAL_ERROR", "Unrecoverable PostgreSQL error occurred: Statement: <%1>, reason: %2 (error code: %3).",
+    "DHCPSRV_PGSQL_GET4", "obtaining all IPv4 leases",
+    "DHCPSRV_PGSQL_GET6", "obtaining all IPv6 leases",
+    "DHCPSRV_PGSQL_GET_ADDR4", "obtaining IPv4 lease for address %1",
+    "DHCPSRV_PGSQL_GET_ADDR6", "obtaining IPv6 lease for address %1 (lease type %2)",
+    "DHCPSRV_PGSQL_GET_CLIENTID", "obtaining IPv4 leases for client ID %1",
+    "DHCPSRV_PGSQL_GET_DUID", "obtaining IPv6 leases for DUID %1,",
+    "DHCPSRV_PGSQL_GET_EXPIRED4", "obtaining maximum %1 of expired IPv4 leases",
+    "DHCPSRV_PGSQL_GET_EXPIRED6", "obtaining maximum %1 of expired IPv6 leases",
+    "DHCPSRV_PGSQL_GET_HWADDR", "obtaining IPv4 leases for hardware address %1",
+    "DHCPSRV_PGSQL_GET_IAID_DUID", "obtaining IPv4 leases for IAID %1 and DUID %2, lease type %3",
+    "DHCPSRV_PGSQL_GET_IAID_SUBID_DUID", "obtaining IPv4 leases for IAID %1, Subnet ID %2, DUID %3, and lease type %4",
+    "DHCPSRV_PGSQL_GET_PAGE4", "obtaining at most %1 IPv4 leases starting from address %2",
+    "DHCPSRV_PGSQL_GET_PAGE6", "obtaining at most %1 IPv6 leases starting from address %2",
+    "DHCPSRV_PGSQL_GET_SUBID4", "obtaining IPv4 leases for subnet ID %1",
+    "DHCPSRV_PGSQL_GET_SUBID6", "obtaining IPv6 leases for subnet ID %1",
+    "DHCPSRV_PGSQL_GET_SUBID_CLIENTID", "obtaining IPv4 lease for subnet ID %1 and client ID %2",
+    "DHCPSRV_PGSQL_GET_SUBID_HWADDR", "obtaining IPv4 lease for subnet ID %1 and hardware address %2",
+    "DHCPSRV_PGSQL_GET_VERSION", "obtaining schema version information",
+    "DHCPSRV_PGSQL_HOST_DB", "opening PostgreSQL hosts database: %1",
+    "DHCPSRV_PGSQL_HOST_DB_GET_VERSION", "obtaining schema version information for the PostgreSQL hosts database",
+    "DHCPSRV_PGSQL_HOST_DB_READONLY", "PostgreSQL host database opened for read access only",
+    "DHCPSRV_PGSQL_ROLLBACK", "rolling back PostgreSQL database",
+    "DHCPSRV_PGSQL_START_TRANSACTION", "starting a new PostgreSQL transaction",
+    "DHCPSRV_PGSQL_UPDATE_ADDR4", "updating IPv4 lease for address %1",
+    "DHCPSRV_PGSQL_UPDATE_ADDR6", "updating IPv6 lease for address %1",
+    "DHCPSRV_QUEUE_NCR", "%1: name change request to %2 DNS entry queued: %3",
+    "DHCPSRV_QUEUE_NCR_FAILED", "%1: queuing %2 name change request failed for lease %3: %4",
+    "DHCPSRV_QUEUE_NCR_SKIP", "%1: skip queuing name change request for lease: %2",
+    "DHCPSRV_TIMERMGR_CALLBACK_FAILED", "running handler for timer %1 caused exception: %2",
+    "DHCPSRV_TIMERMGR_REGISTER_TIMER", "registering timer: %1, using interval: %2 ms",
+    "DHCPSRV_TIMERMGR_RUN_TIMER_OPERATION", "running operation for timer: %1",
+    "DHCPSRV_TIMERMGR_START_TIMER", "starting timer: %1",
+    "DHCPSRV_TIMERMGR_STOP_TIMER", "stopping timer: %1",
+    "DHCPSRV_TIMERMGR_UNREGISTER_ALL_TIMERS", "unregistering all timers",
+    "DHCPSRV_TIMERMGR_UNREGISTER_TIMER", "unregistering timer: %1",
+    "DHCPSRV_UNEXPECTED_NAME", "database access parameters passed through '%1', expected 'lease-database'",
+    "DHCPSRV_UNKNOWN_DB", "unknown database type: %1",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.h b/src/lib/dhcpsrv/dhcpsrv_messages.h
new file mode 100644 (file)
index 0000000..2b7b72b
--- /dev/null
@@ -0,0 +1,238 @@
+// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Fri Feb 08 2019 20:31
+
+#ifndef DHCPSRV_MESSAGES_H
+#define DHCPSRV_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_IFACE;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ADD_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ALL_IFACES_ACTIVE;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CFG_DHCP_DDNS;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIGURE_SERVERID;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NEW_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NEW_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NO_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_NO_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ONLY_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_ONLY_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_OPTION_DUPLICATE;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_RELAY_IP_ADDRESS_DEPRECATED;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_RAW_UNSUPPORTED;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_TYPE_DEFAULT;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_ADDR;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_IFACE;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET4_RELAY;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_IFACE;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_IFACE_ID;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_SUBNET6_RELAY;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_UNICAST_LINK_LOCAL;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_ADDRESS;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_UNICAST;
+extern const isc::log::MessageID DHCPSRV_CLOSE_DB;
+extern const isc::log::MessageID DHCPSRV_CQL_ADD_ADDR4;
+extern const isc::log::MessageID DHCPSRV_CQL_ADD_ADDR6;
+extern const isc::log::MessageID DHCPSRV_CQL_COMMIT;
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_BEGIN_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_COMMIT;
+extern const isc::log::MessageID DHCPSRV_CQL_CONNECTION_ROLLBACK;
+extern const isc::log::MessageID DHCPSRV_CQL_DB;
+extern const isc::log::MessageID DHCPSRV_CQL_DEALLOC_ERROR;
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_ADDR;
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED4;
+extern const isc::log::MessageID DHCPSRV_CQL_DELETE_EXPIRED_RECLAIMED6;
+extern const isc::log::MessageID DHCPSRV_CQL_GET4;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_ADDR4;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_ADDR6;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_CLIENTID_HWADDR_SUBID;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_EXPIRED4;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_EXPIRED6;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_HWADDR;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_IAID_DUID;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_IAID_SUBID_DUID;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_PAGE4;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_PAGE6;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID4;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_SUBID_HWADDR;
+extern const isc::log::MessageID DHCPSRV_CQL_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_ADD;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_DB;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_DB_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET4;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET6;
+extern const isc::log::MessageID DHCPSRV_CQL_HOST_GET_ALL;
+extern const isc::log::MessageID DHCPSRV_CQL_LEASE_EXCEPTION_THROWN;
+extern const isc::log::MessageID DHCPSRV_CQL_ROLLBACK;
+extern const isc::log::MessageID DHCPSRV_CQL_UPDATE_ADDR4;
+extern const isc::log::MessageID DHCPSRV_CQL_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_HANDLER_NULL;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_NCR_REJECTED;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_NCR_SENT;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SENDER_STARTED;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SENDER_STOPPED;
+extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_SUSPEND_UPDATES;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_RECOVER_SKIP;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_RENEW_SKIP;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE4_SELECT_SKIP;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_EXTEND_SKIP;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_RECOVER_SKIP;
+extern const isc::log::MessageID DHCPSRV_HOOK_LEASE6_SELECT_SKIP;
+extern const isc::log::MessageID DHCPSRV_INVALID_ACCESS;
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FAIL;
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FAIL_DISCARD;
+extern const isc::log::MessageID DHCPSRV_LEASE_SANITY_FIXED;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ADD_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ADD_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_BEGIN_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_COMMIT;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DB;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_ADDR;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_DELETE_EXPIRED_RECLAIMED_START;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET6_DUID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_CLIENTID_HWADDR_SUBID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_EXPIRED4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_EXPIRED6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_HWADDR;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_IAID_DUID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_IAID_SUBID_DUID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_PAGE4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_PAGE6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_SUBID_HWADDR;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_FILE_LOAD;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_LOAD;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LEASE_LOAD_ROW_ERROR;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_EXECUTE;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_LEASE_FILE_RENAME_FAIL;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_LEASE_FILE_REOPEN_FAIL;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_SETUP;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_SPAWN_FAIL;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_START;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_LFC_UNREGISTER_TIMER_FAILED;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NEEDS_DOWNGRADING;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NEEDS_UPGRADING;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_NO_STORAGE;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_READ_HWADDR_FAIL;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_ROLLBACK;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_UPDATE_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES4;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES4_FINISHED;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES6;
+extern const isc::log::MessageID DHCPSRV_MEMFILE_WIPE_LEASES6_FINISHED;
+extern const isc::log::MessageID DHCPSRV_MULTIPLE_RAW_SOCKETS_PER_IFACE;
+extern const isc::log::MessageID DHCPSRV_MYSQL_ADD_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_ADD_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_BEGIN_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_MYSQL_COMMIT;
+extern const isc::log::MessageID DHCPSRV_MYSQL_DB;
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETED_EXPIRED_RECLAIMED;
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_ADDR;
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_DELETE_EXPIRED_RECLAIMED6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_FATAL_ERROR;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_DUID;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_EXPIRED4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_EXPIRED6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_HWADDR;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_IAID_DUID;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_IAID_SUBID_DUID;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_PAGE4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_PAGE6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_SUBID_HWADDR;
+extern const isc::log::MessageID DHCPSRV_MYSQL_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB;
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_MYSQL_HOST_DB_READONLY;
+extern const isc::log::MessageID DHCPSRV_MYSQL_ROLLBACK;
+extern const isc::log::MessageID DHCPSRV_MYSQL_START_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR4;
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_NOTYPE_DB;
+extern const isc::log::MessageID DHCPSRV_NO_SOCKETS_OPEN;
+extern const isc::log::MessageID DHCPSRV_OPEN_SOCKET_FAIL;
+extern const isc::log::MessageID DHCPSRV_PGSQL_ADD_ADDR4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_ADD_ADDR6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_BEGIN_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_PGSQL_COMMIT;
+extern const isc::log::MessageID DHCPSRV_PGSQL_DB;
+extern const isc::log::MessageID DHCPSRV_PGSQL_DEALLOC_ERROR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_ADDR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_DELETE_EXPIRED_RECLAIMED6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_FATAL_ERROR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_ADDR4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_ADDR6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_DUID;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_EXPIRED4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_EXPIRED6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_HWADDR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_IAID_DUID;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_IAID_SUBID_DUID;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_PAGE4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_PAGE6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID_CLIENTID;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_SUBID_HWADDR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB;
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB_GET_VERSION;
+extern const isc::log::MessageID DHCPSRV_PGSQL_HOST_DB_READONLY;
+extern const isc::log::MessageID DHCPSRV_PGSQL_ROLLBACK;
+extern const isc::log::MessageID DHCPSRV_PGSQL_START_TRANSACTION;
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR4;
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR;
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR_FAILED;
+extern const isc::log::MessageID DHCPSRV_QUEUE_NCR_SKIP;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_CALLBACK_FAILED;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_REGISTER_TIMER;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_RUN_TIMER_OPERATION;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_START_TIMER;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_STOP_TIMER;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_UNREGISTER_ALL_TIMERS;
+extern const isc::log::MessageID DHCPSRV_TIMERMGR_UNREGISTER_TIMER;
+extern const isc::log::MessageID DHCPSRV_UNEXPECTED_NAME;
+extern const isc::log::MessageID DHCPSRV_UNKNOWN_DB;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // DHCPSRV_MESSAGES_H
diff --git a/src/lib/dhcpsrv/hosts_messages.cc b/src/lib/dhcpsrv/hosts_messages.cc
new file mode 100644 (file)
index 0000000..c210ee2
--- /dev/null
@@ -0,0 +1,117 @@
+// File created from ../../../src/lib/dhcpsrv/hosts_messages.mes on Fri Feb 08 2019 20:31
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID HOSTS_BACKENDS_REGISTERED = "HOSTS_BACKENDS_REGISTERED";
+extern const isc::log::MessageID HOSTS_BACKEND_DEREGISTER = "HOSTS_BACKEND_DEREGISTER";
+extern const isc::log::MessageID HOSTS_BACKEND_REGISTER = "HOSTS_BACKEND_REGISTER";
+extern const isc::log::MessageID HOSTS_CFG_ADD_HOST = "HOSTS_CFG_ADD_HOST";
+extern const isc::log::MessageID HOSTS_CFG_CACHE_HOST_DATA_SOURCE = "HOSTS_CFG_CACHE_HOST_DATA_SOURCE";
+extern const isc::log::MessageID HOSTS_CFG_CLOSE_HOST_DATA_SOURCE = "HOSTS_CFG_CLOSE_HOST_DATA_SOURCE";
+extern const isc::log::MessageID HOSTS_CFG_DEL_ALL_SUBNET4 = "HOSTS_CFG_DEL_ALL_SUBNET4";
+extern const isc::log::MessageID HOSTS_CFG_DEL_ALL_SUBNET6 = "HOSTS_CFG_DEL_ALL_SUBNET6";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4 = "HOSTS_CFG_GET_ALL_ADDRESS4";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4_COUNT = "HOSTS_CFG_GET_ALL_ADDRESS4_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4_HOST = "HOSTS_CFG_GET_ALL_ADDRESS4_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6 = "HOSTS_CFG_GET_ALL_ADDRESS6";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6_COUNT = "HOSTS_CFG_GET_ALL_ADDRESS6_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6_HOST = "HOSTS_CFG_GET_ALL_ADDRESS6_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER = "HOSTS_CFG_GET_ALL_IDENTIFIER";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT = "HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER_HOST = "HOSTS_CFG_GET_ALL_IDENTIFIER_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4 = "HOSTS_CFG_GET_ALL_SUBNET_ID4";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4_COUNT = "HOSTS_CFG_GET_ALL_SUBNET_ID4_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4_HOST = "HOSTS_CFG_GET_ALL_SUBNET_ID4_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6 = "HOSTS_CFG_GET_ALL_SUBNET_ID6";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6_COUNT = "HOSTS_CFG_GET_ALL_SUBNET_ID6_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6_HOST = "HOSTS_CFG_GET_ALL_SUBNET_ID6_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6 = "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT = "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT";
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_HOST = "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX = "HOSTS_CFG_GET_ONE_PREFIX";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX_HOST = "HOSTS_CFG_GET_ONE_PREFIX_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX_NULL = "HOSTS_CFG_GET_ONE_PREFIX_NULL";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4 = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_HOST = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_NULL = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_NULL";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6 = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_HOST = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL = "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER = "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_HOST = "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_HOST";
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL = "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_ADDRESS4 = "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_ADDRESS4";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER = "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_HOST = "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_HOST";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_NULL = "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_NULL";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_PREFIX = "HOSTS_MGR_ALTERNATE_GET6_PREFIX";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_ADDRESS6 = "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_ADDRESS6";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER = "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_HOST = "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_HOST";
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_NULL = "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_NULL";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "HOSTS_BACKENDS_REGISTERED", "the following host backend types are available: %1",
+    "HOSTS_BACKEND_DEREGISTER", "deregistered host backend type: %1",
+    "HOSTS_BACKEND_REGISTER", "registered host backend type: %1",
+    "HOSTS_CFG_ADD_HOST", "add the host for reservations: %1",
+    "HOSTS_CFG_CACHE_HOST_DATA_SOURCE", "get host cache data source: %1",
+    "HOSTS_CFG_CLOSE_HOST_DATA_SOURCE", "Closing host data source: %1",
+    "HOSTS_CFG_DEL_ALL_SUBNET4", "deleted all %1 host(s) for subnet id %2",
+    "HOSTS_CFG_DEL_ALL_SUBNET6", "deleted all %1 host(s) including %2 IPv6 reservation(s) for subnet id %3",
+    "HOSTS_CFG_GET_ALL_ADDRESS4", "get all hosts with reservations for IPv4 address %1",
+    "HOSTS_CFG_GET_ALL_ADDRESS4_COUNT", "using address %1, found %2 host(s)",
+    "HOSTS_CFG_GET_ALL_ADDRESS4_HOST", "using address %1 found host: %2",
+    "HOSTS_CFG_GET_ALL_ADDRESS6", "get all hosts with reservations for IPv6 address %1",
+    "HOSTS_CFG_GET_ALL_ADDRESS6_COUNT", "using address %1, found %2 host(s)",
+    "HOSTS_CFG_GET_ALL_ADDRESS6_HOST", "using address %1 found host: %2",
+    "HOSTS_CFG_GET_ALL_IDENTIFIER", "get all hosts with reservations using identifier: %1",
+    "HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT", "using identifier %1, found %2 host(s)",
+    "HOSTS_CFG_GET_ALL_IDENTIFIER_HOST", "using identifier: %1, found host: %2",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID4", "get all hosts with reservations for IPv4 subnet %1",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID4_COUNT", "using IPv4 subnet %1, found %2 host(s)",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID4_HOST", "using IPv4 subnet %1, found host: %2",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID6", "get all hosts with reservations for IPv6 subnet %1",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID6_COUNT", "using IPv6 subnet %1, found %2 host(s)",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID6_HOST", "using IPv6 subnet %1, found host: %2",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6", "get all hosts with reservations for subnet id %1 and IPv6 address %2",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT", "using subnet id %1 and address %2, found %3 host(s)",
+    "HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_HOST", "using subnet id %1 and address %2, found host: %3",
+    "HOSTS_CFG_GET_ONE_PREFIX", "get one host with reservation for prefix %1/%2",
+    "HOSTS_CFG_GET_ONE_PREFIX_HOST", "using prefix %1/%2, found host: %3",
+    "HOSTS_CFG_GET_ONE_PREFIX_NULL", "host not found using prefix %1/%2",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4", "get one host with reservation for subnet id %1 and IPv4 address %2",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_HOST", "using subnet id %1 and address %2, found host: %3",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_NULL", "host not found using subnet id %1 and address %2",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6", "get one host with reservation for subnet id %1 and including IPv6 address %2",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_HOST", "using subnet id %1 and address %2, found host: %3",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL", "host not found using subnet id %1 and address %2",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER", "get one host with %1 reservation for subnet id %2, identified by %3",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_HOST", "using subnet id %1 and identifier %2, found host: %3",
+    "HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL", "host not found using subnet id %1 and identifier %2",
+    "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_ADDRESS4", "trying alternate sources for host using subnet id %1 and address %2",
+    "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER", "get one host with IPv4 reservation for subnet id %1, identified by %2",
+    "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_HOST", "using subnet id %1 and identifier %2, found in %3 host: %4",
+    "HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_NULL", "host not found using subnet id %1 and identifier %2",
+    "HOSTS_MGR_ALTERNATE_GET6_PREFIX", "trying alternate sources for host using prefix %1/%2",
+    "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_ADDRESS6", "trying alternate sources for host using subnet id %1 and IPv6 address %2",
+    "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER", "get one host with IPv6 reservation for subnet id %1, identified by %2",
+    "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_HOST", "using subnet id %1 and identifier %2, found in %3 host: %4",
+    "HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_NULL", "host not found using subnet id %1 and identifier %2",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/dhcpsrv/hosts_messages.h b/src/lib/dhcpsrv/hosts_messages.h
new file mode 100644 (file)
index 0000000..6a13da5
--- /dev/null
@@ -0,0 +1,62 @@
+// File created from ../../../src/lib/dhcpsrv/hosts_messages.mes on Fri Feb 08 2019 20:31
+
+#ifndef HOSTS_MESSAGES_H
+#define HOSTS_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID HOSTS_BACKENDS_REGISTERED;
+extern const isc::log::MessageID HOSTS_BACKEND_DEREGISTER;
+extern const isc::log::MessageID HOSTS_BACKEND_REGISTER;
+extern const isc::log::MessageID HOSTS_CFG_ADD_HOST;
+extern const isc::log::MessageID HOSTS_CFG_CACHE_HOST_DATA_SOURCE;
+extern const isc::log::MessageID HOSTS_CFG_CLOSE_HOST_DATA_SOURCE;
+extern const isc::log::MessageID HOSTS_CFG_DEL_ALL_SUBNET4;
+extern const isc::log::MessageID HOSTS_CFG_DEL_ALL_SUBNET6;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS4_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_ADDRESS6_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_IDENTIFIER_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID4_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID6_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT;
+extern const isc::log::MessageID HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_PREFIX_NULL;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS4_NULL;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_HOST;
+extern const isc::log::MessageID HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_ADDRESS4;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_HOST;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET4_SUBNET_ID_IDENTIFIER_NULL;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_PREFIX;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_ADDRESS6;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_HOST;
+extern const isc::log::MessageID HOSTS_MGR_ALTERNATE_GET6_SUBNET_ID_IDENTIFIER_NULL;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // HOSTS_MESSAGES_H
diff --git a/src/lib/eval/.gitignore b/src/lib/eval/.gitignore
deleted file mode 100644 (file)
index c16e2cc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/eval_messages.cc
-/eval_messages.h
-/s-messages
index 5d04e08ac1f82e24e2e31192b380c67ac7bcc7d3..94b9e1917be8a151ac176a87c573db7c9c80027a 100644 (file)
@@ -22,8 +22,7 @@ libkea_eval_la_SOURCES += parser.cc parser.h
 libkea_eval_la_SOURCES += lexer.cc
 libkea_eval_la_SOURCES += location.hh position.hh stack.hh
 libkea_eval_la_SOURCES += eval_context.cc eval_context.h eval_context_decl.h
-
-nodist_libkea_eval_la_SOURCES = eval_messages.h eval_messages.cc
+libkea_eval_la_SOURCES += eval_messages.h eval_messages.cc
 
 libkea_eval_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_eval_la_CPPFLAGS = $(AM_CPPFLAGS)
@@ -45,23 +44,40 @@ EXTRA_DIST  = eval.dox
 EXTRA_DIST += eval_messages.mes
 EXTRA_DIST += lexer.ll parser.yy
 
+CLEANFILES = *.gcno *.gcda
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f eval_messages.h eval_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
 # Define rule to build logging source files from message file
-eval_messages.h eval_messages.cc: s-messages
+messages: eval_messages.h eval_messages.cc
+       @echo Message files regenerated
 
-s-messages: eval_messages.mes
+eval_messages.h eval_messages.cc: eval_messages.mes
        $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/eval/eval_messages.mes
-       touch $@
 
-# Tell Automake that the eval_messages.{cc,h} source files are created in the
-# build process, so it must create these before doing anything else. Although
-# they are a dependency of the library (so will be created from the
-# message file anyway), there is no guarantee as to exactly _when_ in the build
-# they will be created.  As the .h file is included in other sources file (so
-# must be present when they are compiled), the safest option is to create it
-# first.
-BUILT_SOURCES = eval_messages.h eval_messages.cc
+else
+
+messages eval_messages.h eval_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
 
-CLEANFILES = eval_messages.h eval_messages.cc s-messages
+endif
 
 # If we want to get rid of all flex/bison generated files, we need to use
 # make maintainer-clean. The proper way to introduce custom commands for
@@ -113,6 +129,7 @@ libkea_eval_include_HEADERS = \
        eval_context.h \
        eval_context_decl.h \
        eval_log.h \
+       eval_messages.h \
        evaluate.h \
        parser.h \
        token.h
diff --git a/src/lib/eval/eval_messages.cc b/src/lib/eval/eval_messages.cc
new file mode 100644 (file)
index 0000000..3f7803b
--- /dev/null
@@ -0,0 +1,87 @@
+// File created from ../../../src/lib/eval/eval_messages.mes on Fri Feb 08 2019 20:17
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID EVAL_DEBUG_AND = "EVAL_DEBUG_AND";
+extern const isc::log::MessageID EVAL_DEBUG_CONCAT = "EVAL_DEBUG_CONCAT";
+extern const isc::log::MessageID EVAL_DEBUG_EQUAL = "EVAL_DEBUG_EQUAL";
+extern const isc::log::MessageID EVAL_DEBUG_HEXSTRING = "EVAL_DEBUG_HEXSTRING";
+extern const isc::log::MessageID EVAL_DEBUG_IFELSE_FALSE = "EVAL_DEBUG_IFELSE_FALSE";
+extern const isc::log::MessageID EVAL_DEBUG_IFELSE_TRUE = "EVAL_DEBUG_IFELSE_TRUE";
+extern const isc::log::MessageID EVAL_DEBUG_IPADDRESS = "EVAL_DEBUG_IPADDRESS";
+extern const isc::log::MessageID EVAL_DEBUG_MEMBER = "EVAL_DEBUG_MEMBER";
+extern const isc::log::MessageID EVAL_DEBUG_NOT = "EVAL_DEBUG_NOT";
+extern const isc::log::MessageID EVAL_DEBUG_OPTION = "EVAL_DEBUG_OPTION";
+extern const isc::log::MessageID EVAL_DEBUG_OR = "EVAL_DEBUG_OR";
+extern const isc::log::MessageID EVAL_DEBUG_PKT = "EVAL_DEBUG_PKT";
+extern const isc::log::MessageID EVAL_DEBUG_PKT4 = "EVAL_DEBUG_PKT4";
+extern const isc::log::MessageID EVAL_DEBUG_PKT6 = "EVAL_DEBUG_PKT6";
+extern const isc::log::MessageID EVAL_DEBUG_RELAY6 = "EVAL_DEBUG_RELAY6";
+extern const isc::log::MessageID EVAL_DEBUG_RELAY6_RANGE = "EVAL_DEBUG_RELAY6_RANGE";
+extern const isc::log::MessageID EVAL_DEBUG_STRING = "EVAL_DEBUG_STRING";
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING = "EVAL_DEBUG_SUBSTRING";
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING_EMPTY = "EVAL_DEBUG_SUBSTRING_EMPTY";
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING_RANGE = "EVAL_DEBUG_SUBSTRING_RANGE";
+extern const isc::log::MessageID EVAL_DEBUG_TOHEXSTRING = "EVAL_DEBUG_TOHEXSTRING";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_DATA = "EVAL_DEBUG_VENDOR_CLASS_DATA";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_DATA_NOT_FOUND = "EVAL_DEBUG_VENDOR_CLASS_DATA_NOT_FOUND";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID = "EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID_MISMATCH = "EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID_MISMATCH";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_EXISTS = "EVAL_DEBUG_VENDOR_CLASS_EXISTS";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_NO_OPTION = "EVAL_DEBUG_VENDOR_CLASS_NO_OPTION";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_ENTERPRISE_ID = "EVAL_DEBUG_VENDOR_ENTERPRISE_ID";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_ENTERPRISE_ID_MISMATCH = "EVAL_DEBUG_VENDOR_ENTERPRISE_ID_MISMATCH";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_EXISTS = "EVAL_DEBUG_VENDOR_EXISTS";
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_NO_OPTION = "EVAL_DEBUG_VENDOR_NO_OPTION";
+extern const isc::log::MessageID EVAL_RESULT = "EVAL_RESULT";
+
+} // namespace dhcp
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "EVAL_DEBUG_AND", "Popping %1 and %2 pushing %3",
+    "EVAL_DEBUG_CONCAT", "Popping %1 and %2 pushing %3",
+    "EVAL_DEBUG_EQUAL", "Popping %1 and %2 pushing result %3",
+    "EVAL_DEBUG_HEXSTRING", "Pushing hex string %1",
+    "EVAL_DEBUG_IFELSE_FALSE", "Popping %1 (false) and %2, leaving %3",
+    "EVAL_DEBUG_IFELSE_TRUE", "Popping %1 (true) and %2, leaving %3",
+    "EVAL_DEBUG_IPADDRESS", "Pushing IPAddress %1",
+    "EVAL_DEBUG_MEMBER", "Checking membership of '%1', pushing result %2",
+    "EVAL_DEBUG_NOT", "Popping %1 pushing %2",
+    "EVAL_DEBUG_OPTION", "Pushing option %1 with value %2",
+    "EVAL_DEBUG_OR", "Popping %1 and %2 pushing %3",
+    "EVAL_DEBUG_PKT", "Pushing PKT meta data %1 with value %2",
+    "EVAL_DEBUG_PKT4", "Pushing PKT4 field %1 with value %2",
+    "EVAL_DEBUG_PKT6", "Pushing PKT6 field %1 with value %2",
+    "EVAL_DEBUG_RELAY6", "Pushing PKT6 relay field %1 nest %2 with value %3",
+    "EVAL_DEBUG_RELAY6_RANGE", "Pushing PKT6 relay field %1 nest %2 with value %3",
+    "EVAL_DEBUG_STRING", "Pushing text string %1",
+    "EVAL_DEBUG_SUBSTRING", "Popping length %1, start %2, string %3 pushing result %4",
+    "EVAL_DEBUG_SUBSTRING_EMPTY", "Popping length %1, start %2, string %3 pushing result %4",
+    "EVAL_DEBUG_SUBSTRING_RANGE", "Popping length %1, start %2, string %3 pushing result %4",
+    "EVAL_DEBUG_TOHEXSTRING", "Popping binary value %1 and separator %2, pushing result %3",
+    "EVAL_DEBUG_VENDOR_CLASS_DATA", "Data %1 (out of %2 received) in vendor class found, pushing result '%3'",
+    "EVAL_DEBUG_VENDOR_CLASS_DATA_NOT_FOUND", "Requested data index %1, but option with enterprise-id %2 has only %3 data tuple(s), pushing result '%4'",
+    "EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID", "Pushing enterprise-id %1 as result 0x%2",
+    "EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID_MISMATCH", "Was looking for %1, option had %2, pushing result '%3'",
+    "EVAL_DEBUG_VENDOR_CLASS_EXISTS", "Option with enterprise-id %1 found, pushing result '%2'",
+    "EVAL_DEBUG_VENDOR_CLASS_NO_OPTION", "Option with code %1 missing, pushing result '%2'",
+    "EVAL_DEBUG_VENDOR_ENTERPRISE_ID", "Pushing enterprise-id %1 as result 0x%2",
+    "EVAL_DEBUG_VENDOR_ENTERPRISE_ID_MISMATCH", "Was looking for %1, option had %2, pushing result '%3'",
+    "EVAL_DEBUG_VENDOR_EXISTS", "Option with enterprise-id %1 found, pushing result '%2'",
+    "EVAL_DEBUG_VENDOR_NO_OPTION", "Option with code %1 missing, pushing result '%2'",
+    "EVAL_RESULT", "Expression %1 evaluated to %2",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/eval/eval_messages.h b/src/lib/eval/eval_messages.h
new file mode 100644 (file)
index 0000000..99af4ea
--- /dev/null
@@ -0,0 +1,47 @@
+// File created from ../../../src/lib/eval/eval_messages.mes on Fri Feb 08 2019 20:17
+
+#ifndef EVAL_MESSAGES_H
+#define EVAL_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace dhcp {
+
+extern const isc::log::MessageID EVAL_DEBUG_AND;
+extern const isc::log::MessageID EVAL_DEBUG_CONCAT;
+extern const isc::log::MessageID EVAL_DEBUG_EQUAL;
+extern const isc::log::MessageID EVAL_DEBUG_HEXSTRING;
+extern const isc::log::MessageID EVAL_DEBUG_IFELSE_FALSE;
+extern const isc::log::MessageID EVAL_DEBUG_IFELSE_TRUE;
+extern const isc::log::MessageID EVAL_DEBUG_IPADDRESS;
+extern const isc::log::MessageID EVAL_DEBUG_MEMBER;
+extern const isc::log::MessageID EVAL_DEBUG_NOT;
+extern const isc::log::MessageID EVAL_DEBUG_OPTION;
+extern const isc::log::MessageID EVAL_DEBUG_OR;
+extern const isc::log::MessageID EVAL_DEBUG_PKT;
+extern const isc::log::MessageID EVAL_DEBUG_PKT4;
+extern const isc::log::MessageID EVAL_DEBUG_PKT6;
+extern const isc::log::MessageID EVAL_DEBUG_RELAY6;
+extern const isc::log::MessageID EVAL_DEBUG_RELAY6_RANGE;
+extern const isc::log::MessageID EVAL_DEBUG_STRING;
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING;
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING_EMPTY;
+extern const isc::log::MessageID EVAL_DEBUG_SUBSTRING_RANGE;
+extern const isc::log::MessageID EVAL_DEBUG_TOHEXSTRING;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_DATA;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_DATA_NOT_FOUND;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_ENTERPRISE_ID_MISMATCH;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_EXISTS;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_CLASS_NO_OPTION;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_ENTERPRISE_ID;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_ENTERPRISE_ID_MISMATCH;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_EXISTS;
+extern const isc::log::MessageID EVAL_DEBUG_VENDOR_NO_OPTION;
+extern const isc::log::MessageID EVAL_RESULT;
+
+} // namespace dhcp
+} // namespace isc
+
+#endif // EVAL_MESSAGES_H
diff --git a/src/lib/hooks/.gitignore b/src/lib/hooks/.gitignore
deleted file mode 100644 (file)
index 89adbe1..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/hooks_messages.cc
-/hooks_messages.h
-/s-messages
index 0562de3f6c63c6ce3271343c4c577c3765e6ce01..d52b3cb3b6c6a681f774aba2f549a0a6fff854c6 100644 (file)
@@ -4,17 +4,6 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-hooks_messages.h hooks_messages.cc: s-messages
-
-s-messages: hooks_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/hooks/hooks_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = hooks_messages.h hooks_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = hooks_messages.mes
 
@@ -26,8 +15,7 @@ EXTRA_DIST += images/DataScopeArgument.dia images/DataScopeArgument.png
 EXTRA_DIST += images/DataScopeContext.dia images/DataScopeContext.png
 EXTRA_DIST += images/HooksUml.dia images/HooksUml.png
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda hooks_messages.h hooks_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 lib_LTLIBRARIES = libkea-hooks.la
 libkea_hooks_la_SOURCES  =
@@ -46,8 +34,7 @@ libkea_hooks_la_SOURCES += library_manager_collection.cc library_manager_collect
 libkea_hooks_la_SOURCES += parking_lots.h
 libkea_hooks_la_SOURCES += pointer_converter.h
 libkea_hooks_la_SOURCES += server_hooks.cc server_hooks.h
-
-nodist_libkea_hooks_la_SOURCES = hooks_messages.cc hooks_messages.h
+libkea_hooks_la_SOURCES += hooks_messages.cc hooks_messages.h
 
 libkea_hooks_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_hooks_la_CPPFLAGS = $(AM_CPPFLAGS)
@@ -61,6 +48,39 @@ libkea_hooks_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.l
 libkea_hooks_la_LIBADD += $(BOOST_LIBS)
 libkea_hooks_la_LIBADD += $(LOG4CPLUS_LIBS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f hooks_messages.h hooks_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: hooks_messages.h hooks_messages.cc
+       @echo Message files regenerated
+
+hooks_messages.h hooks_messages.cc: hooks_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/hooks/hooks_messages.mes
+
+else
+
+messages hooks_messages.h hooks_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_hooks_includedir = $(pkgincludedir)/hooks
 libkea_hooks_include_HEADERS = \
@@ -71,6 +91,7 @@ libkea_hooks_include_HEADERS = \
        hooks_config.h \
        hooks_log.h \
        hooks_manager.h \
+       hooks_messages.h \
        hooks_parser.h \
        libinfo.h \
        library_handle.h \
diff --git a/src/lib/hooks/hooks_messages.cc b/src/lib/hooks/hooks_messages.cc
new file mode 100644 (file)
index 0000000..ca5d962
--- /dev/null
@@ -0,0 +1,85 @@
+// File created from ../../../src/lib/hooks/hooks_messages.mes on Fri Feb 08 2019 20:16
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace hooks {
+
+extern const isc::log::MessageID HOOKS_ALL_CALLOUTS_DEREGISTERED = "HOOKS_ALL_CALLOUTS_DEREGISTERED";
+extern const isc::log::MessageID HOOKS_CALLOUTS_BEGIN = "HOOKS_CALLOUTS_BEGIN";
+extern const isc::log::MessageID HOOKS_CALLOUTS_COMPLETE = "HOOKS_CALLOUTS_COMPLETE";
+extern const isc::log::MessageID HOOKS_CALLOUTS_REMOVED = "HOOKS_CALLOUTS_REMOVED";
+extern const isc::log::MessageID HOOKS_CALLOUT_CALLED = "HOOKS_CALLOUT_CALLED";
+extern const isc::log::MessageID HOOKS_CALLOUT_DEREGISTERED = "HOOKS_CALLOUT_DEREGISTERED";
+extern const isc::log::MessageID HOOKS_CALLOUT_ERROR = "HOOKS_CALLOUT_ERROR";
+extern const isc::log::MessageID HOOKS_CALLOUT_EXCEPTION = "HOOKS_CALLOUT_EXCEPTION";
+extern const isc::log::MessageID HOOKS_CALLOUT_REGISTRATION = "HOOKS_CALLOUT_REGISTRATION";
+extern const isc::log::MessageID HOOKS_CLOSE_ERROR = "HOOKS_CLOSE_ERROR";
+extern const isc::log::MessageID HOOKS_HOOK_LIST_RESET = "HOOKS_HOOK_LIST_RESET";
+extern const isc::log::MessageID HOOKS_INCORRECT_VERSION = "HOOKS_INCORRECT_VERSION";
+extern const isc::log::MessageID HOOKS_LIBRARY_LOADED = "HOOKS_LIBRARY_LOADED";
+extern const isc::log::MessageID HOOKS_LIBRARY_LOADING = "HOOKS_LIBRARY_LOADING";
+extern const isc::log::MessageID HOOKS_LIBRARY_UNLOADED = "HOOKS_LIBRARY_UNLOADED";
+extern const isc::log::MessageID HOOKS_LIBRARY_UNLOADING = "HOOKS_LIBRARY_UNLOADING";
+extern const isc::log::MessageID HOOKS_LIBRARY_VERSION = "HOOKS_LIBRARY_VERSION";
+extern const isc::log::MessageID HOOKS_LOAD_ERROR = "HOOKS_LOAD_ERROR";
+extern const isc::log::MessageID HOOKS_LOAD_EXCEPTION = "HOOKS_LOAD_EXCEPTION";
+extern const isc::log::MessageID HOOKS_LOAD_FRAMEWORK_EXCEPTION = "HOOKS_LOAD_FRAMEWORK_EXCEPTION";
+extern const isc::log::MessageID HOOKS_LOAD_SUCCESS = "HOOKS_LOAD_SUCCESS";
+extern const isc::log::MessageID HOOKS_NO_LOAD = "HOOKS_NO_LOAD";
+extern const isc::log::MessageID HOOKS_NO_UNLOAD = "HOOKS_NO_UNLOAD";
+extern const isc::log::MessageID HOOKS_NO_VERSION = "HOOKS_NO_VERSION";
+extern const isc::log::MessageID HOOKS_OPEN_ERROR = "HOOKS_OPEN_ERROR";
+extern const isc::log::MessageID HOOKS_STD_CALLOUT_REGISTERED = "HOOKS_STD_CALLOUT_REGISTERED";
+extern const isc::log::MessageID HOOKS_UNLOAD_ERROR = "HOOKS_UNLOAD_ERROR";
+extern const isc::log::MessageID HOOKS_UNLOAD_EXCEPTION = "HOOKS_UNLOAD_EXCEPTION";
+extern const isc::log::MessageID HOOKS_UNLOAD_FRAMEWORK_EXCEPTION = "HOOKS_UNLOAD_FRAMEWORK_EXCEPTION";
+extern const isc::log::MessageID HOOKS_UNLOAD_SUCCESS = "HOOKS_UNLOAD_SUCCESS";
+extern const isc::log::MessageID HOOKS_VERSION_EXCEPTION = "HOOKS_VERSION_EXCEPTION";
+
+} // namespace hooks
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "HOOKS_ALL_CALLOUTS_DEREGISTERED", "hook library at index %1 removed all callouts on hook %2",
+    "HOOKS_CALLOUTS_BEGIN", "begin all callouts for hook %1",
+    "HOOKS_CALLOUTS_COMPLETE", "completed callouts for hook %1 (total callouts duration: %2)",
+    "HOOKS_CALLOUTS_REMOVED", "callouts removed from hook %1 for library %2",
+    "HOOKS_CALLOUT_CALLED", "hooks library with index %1 has called a callout on hook %2 that has address %3 (callout duration: %4)",
+    "HOOKS_CALLOUT_DEREGISTERED", "hook library at index %1 deregistered a callout on hook %2",
+    "HOOKS_CALLOUT_ERROR", "error returned by callout on hook %1 registered by library with index %2 (callout address %3) (callout duration %4)",
+    "HOOKS_CALLOUT_EXCEPTION", "exception thrown by callout on hook %1 registered by library with index %2 (callout address %3): %4 (callout duration: %5)",
+    "HOOKS_CALLOUT_REGISTRATION", "hooks library with index %1 registering callout for hook '%2'",
+    "HOOKS_CLOSE_ERROR", "failed to close hook library %1: %2",
+    "HOOKS_HOOK_LIST_RESET", "the list of hooks has been reset",
+    "HOOKS_INCORRECT_VERSION", "hook library %1 is at version %2, require version %3",
+    "HOOKS_LIBRARY_LOADED", "hooks library %1 successfully loaded",
+    "HOOKS_LIBRARY_LOADING", "loading hooks library %1",
+    "HOOKS_LIBRARY_UNLOADED", "hooks library %1 successfully unloaded",
+    "HOOKS_LIBRARY_UNLOADING", "unloading library %1",
+    "HOOKS_LIBRARY_VERSION", "hooks library %1 reports its version as %2",
+    "HOOKS_LOAD_ERROR", "'load' function in hook library %1 returned error %2",
+    "HOOKS_LOAD_EXCEPTION", "'load' function in hook library %1 threw an exception",
+    "HOOKS_LOAD_FRAMEWORK_EXCEPTION", "'load' function in hook library %1 threw an exception: reason %2",
+    "HOOKS_LOAD_SUCCESS", "'load' function in hook library %1 returned success",
+    "HOOKS_NO_LOAD", "no 'load' function found in hook library %1",
+    "HOOKS_NO_UNLOAD", "no 'unload' function found in hook library %1",
+    "HOOKS_NO_VERSION", "no 'version' function found in hook library %1",
+    "HOOKS_OPEN_ERROR", "failed to open hook library %1: %2",
+    "HOOKS_STD_CALLOUT_REGISTERED", "hooks library %1 registered standard callout for hook %2 at address %3",
+    "HOOKS_UNLOAD_ERROR", "'unload' function in hook library %1 returned error %2",
+    "HOOKS_UNLOAD_EXCEPTION", "'unload' function in hook library %1 threw an exception",
+    "HOOKS_UNLOAD_FRAMEWORK_EXCEPTION", "'unload' function in hook library %1 threw an exception, reason %2",
+    "HOOKS_UNLOAD_SUCCESS", "'unload' function in hook library %1 returned success",
+    "HOOKS_VERSION_EXCEPTION", "'version' function in hook library %1 threw an exception",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/hooks/hooks_messages.h b/src/lib/hooks/hooks_messages.h
new file mode 100644 (file)
index 0000000..2880346
--- /dev/null
@@ -0,0 +1,46 @@
+// File created from ../../../src/lib/hooks/hooks_messages.mes on Fri Feb 08 2019 20:16
+
+#ifndef HOOKS_MESSAGES_H
+#define HOOKS_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace hooks {
+
+extern const isc::log::MessageID HOOKS_ALL_CALLOUTS_DEREGISTERED;
+extern const isc::log::MessageID HOOKS_CALLOUTS_BEGIN;
+extern const isc::log::MessageID HOOKS_CALLOUTS_COMPLETE;
+extern const isc::log::MessageID HOOKS_CALLOUTS_REMOVED;
+extern const isc::log::MessageID HOOKS_CALLOUT_CALLED;
+extern const isc::log::MessageID HOOKS_CALLOUT_DEREGISTERED;
+extern const isc::log::MessageID HOOKS_CALLOUT_ERROR;
+extern const isc::log::MessageID HOOKS_CALLOUT_EXCEPTION;
+extern const isc::log::MessageID HOOKS_CALLOUT_REGISTRATION;
+extern const isc::log::MessageID HOOKS_CLOSE_ERROR;
+extern const isc::log::MessageID HOOKS_HOOK_LIST_RESET;
+extern const isc::log::MessageID HOOKS_INCORRECT_VERSION;
+extern const isc::log::MessageID HOOKS_LIBRARY_LOADED;
+extern const isc::log::MessageID HOOKS_LIBRARY_LOADING;
+extern const isc::log::MessageID HOOKS_LIBRARY_UNLOADED;
+extern const isc::log::MessageID HOOKS_LIBRARY_UNLOADING;
+extern const isc::log::MessageID HOOKS_LIBRARY_VERSION;
+extern const isc::log::MessageID HOOKS_LOAD_ERROR;
+extern const isc::log::MessageID HOOKS_LOAD_EXCEPTION;
+extern const isc::log::MessageID HOOKS_LOAD_FRAMEWORK_EXCEPTION;
+extern const isc::log::MessageID HOOKS_LOAD_SUCCESS;
+extern const isc::log::MessageID HOOKS_NO_LOAD;
+extern const isc::log::MessageID HOOKS_NO_UNLOAD;
+extern const isc::log::MessageID HOOKS_NO_VERSION;
+extern const isc::log::MessageID HOOKS_OPEN_ERROR;
+extern const isc::log::MessageID HOOKS_STD_CALLOUT_REGISTERED;
+extern const isc::log::MessageID HOOKS_UNLOAD_ERROR;
+extern const isc::log::MessageID HOOKS_UNLOAD_EXCEPTION;
+extern const isc::log::MessageID HOOKS_UNLOAD_FRAMEWORK_EXCEPTION;
+extern const isc::log::MessageID HOOKS_UNLOAD_SUCCESS;
+extern const isc::log::MessageID HOOKS_VERSION_EXCEPTION;
+
+} // namespace hooks
+} // namespace isc
+
+#endif // HOOKS_MESSAGES_H
diff --git a/src/lib/http/.gitignore b/src/lib/http/.gitignore
deleted file mode 100644 (file)
index 4aeda87..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/http_messages.cc
-/http_messages.h
-/s-messages
index f4e77c9ad8de7a531e9d7abea7d413726998c0ff..6b9925286235bb21a9c2b46457cfa9f8e9310bed 100644 (file)
@@ -4,22 +4,10 @@ AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-http_messages.h http_messages.cc: s-messages
-
-s-messages: http_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/http/http_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = http_messages.h http_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = http_messages.mes
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda http_messages.h http_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 lib_LTLIBRARIES = libkea-http.la
 libkea_http_la_SOURCES  = client.cc client.h
@@ -32,6 +20,7 @@ libkea_http_la_SOURCES += http_acceptor.h
 libkea_http_la_SOURCES += http_header.cc http_header.h
 libkea_http_la_SOURCES += http_message.cc http_message.h
 libkea_http_la_SOURCES += http_message_parser_base.cc http_message_parser_base.h
+libkea_http_la_SOURCES += http_messages.cc http_messages.h
 libkea_http_la_SOURCES += http_types.h
 libkea_http_la_SOURCES += listener.cc listener.h
 libkea_http_la_SOURCES += post_request.cc post_request.h
@@ -47,8 +36,6 @@ libkea_http_la_SOURCES += response_creator_factory.h
 libkea_http_la_SOURCES += response_json.cc response_json.h
 libkea_http_la_SOURCES += url.cc url.h
 
-nodist_libkea_http_la_SOURCES = http_messages.cc http_messages.h
-
 libkea_http_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_http_la_CPPFLAGS = $(AM_CPPFLAGS)
 libkea_http_la_LDFLAGS  = $(AM_LDFLAGS)
@@ -63,6 +50,39 @@ libkea_http_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
 libkea_http_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
 libkea_http_la_LIBADD += $(LOG4CPLUS_LIBS) $(BOOST_LIBS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f http_messages.h http_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: http_messages.h http_messages.cc
+       @echo Message files regenerated
+
+http_messages.h http_messages.cc: http_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/http/http_messages.mes
+
+else
+
+messages http_messages.h http_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_http_includedir = $(pkgincludedir)/http
 libkea_http_include_HEADERS = \
@@ -76,6 +96,7 @@ libkea_http_include_HEADERS = \
        http_log.h \
        http_message.h \
        http_message_parser_base.h \
+       http_messages.h \
        http_types.h \
        listener.h \
        post_request.h \
diff --git a/src/lib/http/http_messages.cc b/src/lib/http/http_messages.cc
new file mode 100644 (file)
index 0000000..cb84e76
--- /dev/null
@@ -0,0 +1,59 @@
+// File created from ../../../src/lib/http/http_messages.mes on Fri Feb 08 2019 20:32
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace http {
+
+extern const isc::log::MessageID HTTP_BAD_CLIENT_REQUEST_RECEIVED = "HTTP_BAD_CLIENT_REQUEST_RECEIVED";
+extern const isc::log::MessageID HTTP_BAD_CLIENT_REQUEST_RECEIVED_DETAILS = "HTTP_BAD_CLIENT_REQUEST_RECEIVED_DETAILS";
+extern const isc::log::MessageID HTTP_BAD_SERVER_RESPONSE_RECEIVED = "HTTP_BAD_SERVER_RESPONSE_RECEIVED";
+extern const isc::log::MessageID HTTP_BAD_SERVER_RESPONSE_RECEIVED_DETAILS = "HTTP_BAD_SERVER_RESPONSE_RECEIVED_DETAILS";
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_RECEIVED = "HTTP_CLIENT_REQUEST_RECEIVED";
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_RECEIVED_DETAILS = "HTTP_CLIENT_REQUEST_RECEIVED_DETAILS";
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_SEND = "HTTP_CLIENT_REQUEST_SEND";
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_SEND_DETAILS = "HTTP_CLIENT_REQUEST_SEND_DETAILS";
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_TIMEOUT_OCCURRED = "HTTP_CLIENT_REQUEST_TIMEOUT_OCCURRED";
+extern const isc::log::MessageID HTTP_CONNECTION_STOP = "HTTP_CONNECTION_STOP";
+extern const isc::log::MessageID HTTP_CONNECTION_STOP_FAILED = "HTTP_CONNECTION_STOP_FAILED";
+extern const isc::log::MessageID HTTP_DATA_RECEIVED = "HTTP_DATA_RECEIVED";
+extern const isc::log::MessageID HTTP_IDLE_CONNECTION_TIMEOUT_OCCURRED = "HTTP_IDLE_CONNECTION_TIMEOUT_OCCURRED";
+extern const isc::log::MessageID HTTP_REQUEST_RECEIVE_START = "HTTP_REQUEST_RECEIVE_START";
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_RECEIVED = "HTTP_SERVER_RESPONSE_RECEIVED";
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_RECEIVED_DETAILS = "HTTP_SERVER_RESPONSE_RECEIVED_DETAILS";
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_SEND = "HTTP_SERVER_RESPONSE_SEND";
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_SEND_DETAILS = "HTTP_SERVER_RESPONSE_SEND_DETAILS";
+
+} // namespace http
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "HTTP_BAD_CLIENT_REQUEST_RECEIVED", "bad request received from %1: %2",
+    "HTTP_BAD_CLIENT_REQUEST_RECEIVED_DETAILS", "detailed information about bad request received from %1:\n%2",
+    "HTTP_BAD_SERVER_RESPONSE_RECEIVED", "bad response received when communicating with %1: %2",
+    "HTTP_BAD_SERVER_RESPONSE_RECEIVED_DETAILS", "detailed information about bad response received from %1:\n%2",
+    "HTTP_CLIENT_REQUEST_RECEIVED", "received HTTP request from %1",
+    "HTTP_CLIENT_REQUEST_RECEIVED_DETAILS", "detailed information about well formed request received from %1:\n%2",
+    "HTTP_CLIENT_REQUEST_SEND", "sending HTTP request %1 to %2",
+    "HTTP_CLIENT_REQUEST_SEND_DETAILS", "detailed information about request sent to %1:\n%2",
+    "HTTP_CLIENT_REQUEST_TIMEOUT_OCCURRED", "HTTP request timeout occurred when communicating with %1",
+    "HTTP_CONNECTION_STOP", "stopping HTTP connection from %1",
+    "HTTP_CONNECTION_STOP_FAILED", "stopping HTTP connection failed",
+    "HTTP_DATA_RECEIVED", "received %1 bytes from %2",
+    "HTTP_IDLE_CONNECTION_TIMEOUT_OCCURRED", "closing persistent connection with %1 as a result of a timeout",
+    "HTTP_REQUEST_RECEIVE_START", "start receiving request from %1 with timeout %2",
+    "HTTP_SERVER_RESPONSE_RECEIVED", "received HTTP response from %1",
+    "HTTP_SERVER_RESPONSE_RECEIVED_DETAILS", "detailed information about well formed response received from %1:\n%2",
+    "HTTP_SERVER_RESPONSE_SEND", "sending HTTP response %1 to %2",
+    "HTTP_SERVER_RESPONSE_SEND_DETAILS", "detailed information about response sent to %1:\n%2",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/http/http_messages.h b/src/lib/http/http_messages.h
new file mode 100644 (file)
index 0000000..3f37884
--- /dev/null
@@ -0,0 +1,33 @@
+// File created from ../../../src/lib/http/http_messages.mes on Fri Feb 08 2019 20:32
+
+#ifndef HTTP_MESSAGES_H
+#define HTTP_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace http {
+
+extern const isc::log::MessageID HTTP_BAD_CLIENT_REQUEST_RECEIVED;
+extern const isc::log::MessageID HTTP_BAD_CLIENT_REQUEST_RECEIVED_DETAILS;
+extern const isc::log::MessageID HTTP_BAD_SERVER_RESPONSE_RECEIVED;
+extern const isc::log::MessageID HTTP_BAD_SERVER_RESPONSE_RECEIVED_DETAILS;
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_RECEIVED;
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_RECEIVED_DETAILS;
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_SEND;
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_SEND_DETAILS;
+extern const isc::log::MessageID HTTP_CLIENT_REQUEST_TIMEOUT_OCCURRED;
+extern const isc::log::MessageID HTTP_CONNECTION_STOP;
+extern const isc::log::MessageID HTTP_CONNECTION_STOP_FAILED;
+extern const isc::log::MessageID HTTP_DATA_RECEIVED;
+extern const isc::log::MessageID HTTP_IDLE_CONNECTION_TIMEOUT_OCCURRED;
+extern const isc::log::MessageID HTTP_REQUEST_RECEIVE_START;
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_RECEIVED;
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_RECEIVED_DETAILS;
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_SEND;
+extern const isc::log::MessageID HTTP_SERVER_RESPONSE_SEND_DETAILS;
+
+} // namespace http
+} // namespace isc
+
+#endif // HTTP_MESSAGES_H
index 05d0a0375df4181cd0a48d1b5ab6e784569cc4de..88a4a47f21807b9fb715b4166448426ce11a1c58 100644 (file)
@@ -10,9 +10,6 @@
 /logger_example
 /logger_lock_test
 /logger_lock_test.sh
-/log_test_messages.cc
-/log_test_messages.h
 /run_unittests
 /severity_test.sh
 /tempdir.h
-/s-messages
index bf601db4eef77bbfcb0824abe4ee03c749cde201..6e7440a8517799732f853951abe4b2e6c67d7a85 100644 (file)
@@ -17,14 +17,6 @@ DISTCLEANFILES += local_file_test.sh logger_lock_test.sh severity_test.sh
 DISTCLEANFILES += tempdir.h
 
 EXTRA_DIST = log_test_messages.mes
-BUILT_SOURCES = log_test_messages.h log_test_messages.cc
-log_test_messages.h log_test_messages.cc: s-messages
-
-s-messages: log_test_messages.mes
-       $(AM_V_GEN) $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/tests/log_test_messages.mes
-       touch $@
-
-CLEANFILES += log_test_messages.h log_test_messages.cc s-messages
 
 noinst_PROGRAMS = logger_example
 logger_example_SOURCES = logger_example.cc
@@ -58,7 +50,7 @@ buffer_logger_test_LDADD += $(AM_LDADD) $(LOG4CPLUS_LIBS)
 
 noinst_PROGRAMS += logger_lock_test
 logger_lock_test_SOURCES = logger_lock_test.cc
-nodist_logger_lock_test_SOURCES = log_test_messages.cc log_test_messages.h
+logger_lock_test_SOURCES += log_test_messages.cc log_test_messages.h
 logger_lock_test_CPPFLAGS = $(AM_CPPFLAGS)
 logger_lock_test_LDFLAGS = $(AM_LDFLAGS)
 logger_lock_test_LDADD  = $(top_builddir)/src/lib/log/libkea-log.la
@@ -101,7 +93,7 @@ run_unittests_SOURCES += message_dictionary_unittest.cc
 run_unittests_SOURCES += message_reader_unittest.cc
 run_unittests_SOURCES += output_option_unittest.cc
 run_unittests_SOURCES += buffer_appender_unittest.cc
-nodist_run_unittests_SOURCES = log_test_messages.cc log_test_messages.h
+run_unittests_SOURCES += log_test_messages.cc log_test_messages.h
 
 run_unittests_CPPFLAGS = $(TESTSCPPFLAGS)
 run_unittests_CXXFLAGS = $(TESTSCXXFLAGS)
@@ -144,3 +136,36 @@ check-local:
        $(SHELL) $(abs_builddir)/local_file_test.sh
        $(SHELL) $(abs_builddir)/logger_lock_test.sh
        $(SHELL) $(abs_builddir)/severity_test.sh
+
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f log_test_messages.h log_test_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: log_test_messages.h log_test_messages.cc
+       @echo Message files regenerated
+
+log_test_messages.h log_test_messages.cc: log_test_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log_test/log_test_messages.mes
+
+else
+
+messages log_test_messages.h log_test_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
diff --git a/src/lib/log/tests/log_test_messages.cc b/src/lib/log/tests/log_test_messages.cc
new file mode 100644 (file)
index 0000000..4e3d89c
--- /dev/null
@@ -0,0 +1,25 @@
+// File created from ../../../../src/lib/log/tests/log_test_messages.mes on Fri Feb 08 2019 20:15
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace log {
+
+extern const isc::log::MessageID LOG_LOCK_TEST_MESSAGE = "LOG_LOCK_TEST_MESSAGE";
+
+} // namespace log
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "LOG_LOCK_TEST_MESSAGE", "this is a test message.",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/log/tests/log_test_messages.h b/src/lib/log/tests/log_test_messages.h
new file mode 100644 (file)
index 0000000..9d9f295
--- /dev/null
@@ -0,0 +1,16 @@
+// File created from ../../../../src/lib/log/tests/log_test_messages.mes on Fri Feb 08 2019 20:15
+
+#ifndef LOG_TEST_MESSAGES_H
+#define LOG_TEST_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace log {
+
+extern const isc::log::MessageID LOG_LOCK_TEST_MESSAGE;
+
+} // namespace log
+} // namespace isc
+
+#endif // LOG_TEST_MESSAGES_H
diff --git a/src/lib/process/.gitignore b/src/lib/process/.gitignore
deleted file mode 100644 (file)
index e5e3b06..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/process_messages.cc
-/process_messages.h
-/s-messages
index 61eb6a051c0d6f6fea2784f69a35e451a8559430..dbb3ab5a8f538c48d96d8386bf3bfcd854dc5c8b 100644 (file)
@@ -6,22 +6,10 @@ AM_CPPFLAGS += -DDATA_DIR="\"$(dhcp_data_dir)\""
 AM_CPPFLAGS += $(BOOST_INCLUDES)
 AM_CXXFLAGS  = $(KEA_CXXFLAGS)
 
-# Define rule to build logging source files from message file
-process_messages.h process_messages.cc: s-messages
-
-s-messages: process_messages.mes
-       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/process/process_messages.mes
-       touch $@
-
-# Tell automake that the message files are built as part of the build process
-# (so that they are built before the main library is built).
-BUILT_SOURCES = process_messages.h process_messages.cc
-
 # Ensure that the message file is included in the distribution
 EXTRA_DIST = process_messages.mes libprocess.dox
 
-# Get rid of generated message files on a clean
-CLEANFILES = *.gcno *.gcda process_messages.h process_messages.cc s-messages
+CLEANFILES = *.gcno *.gcda
 
 # Generated by configure files
 DISTCLEANFILES = spec_config.h.pre
@@ -38,8 +26,7 @@ libkea_process_la_SOURCES += daemon.cc daemon.h
 libkea_process_la_SOURCES += io_service_signal.cc io_service_signal.h
 libkea_process_la_SOURCES += log_parser.cc log_parser.h
 libkea_process_la_SOURCES += logging_info.cc logging_info.h
-
-nodist_libkea_process_la_SOURCES = process_messages.cc process_messages.h
+libkea_process_la_SOURCES += process_messages.cc process_messages.h
 
 libkea_process_la_CXXFLAGS = $(AM_CXXFLAGS)
 libkea_process_la_CPPFLAGS = $(AM_CPPFLAGS)
@@ -59,6 +46,39 @@ libkea_process_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
 libkea_process_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
 libkea_process_la_LIBADD += $(LOG4CPLUS_LIBS) $(BOOST_LIBS)
 
+# If we want to get rid of all generated messages files, we need to use
+# make maintainer-clean. The proper way to introduce custom commands for
+# that operation is to define maintainer-clean-local target. However,
+# make maintainer-clean also removes Makefile, so running configure script
+# is required.  To make it easy to rebuild messages without going through
+# reconfigure, a new target messages-clean has been added.
+maintainer-clean-local:
+       rm -f process_messages.h process_messages.cc
+
+# To regenerate messages files, one can do:
+#
+# make messages-clean
+# make messages
+#
+# This is needed only when a .mes file is modified.
+messages-clean: maintainer-clean-local
+
+if GENERATE_MESSAGES
+
+# Define rule to build logging source files from message file
+messages: process_messages.h process_messages.cc
+       @echo Message files regenerated
+
+process_messages.h process_messages.cc: process_messages.mes
+       $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/process/process_messages.mes
+
+else
+
+messages process_messages.h process_messages.cc:
+       @echo Messages generation disabled. Configure with --enable-generate=,essages to enable it.
+
+endif
+
 # Specify the headers for copying into the installation directory tree.
 libkea_process_includedir = $(pkgincludedir)/process
 libkea_process_include_HEADERS = \
@@ -72,4 +92,5 @@ libkea_process_include_HEADERS = \
        d_process.h \
        io_service_signal.h \
        logging_info.h \
-       log_parser.h
+       log_parser.h \
+       process_messages.h
diff --git a/src/lib/process/process_messages.cc b/src/lib/process/process_messages.cc
new file mode 100644 (file)
index 0000000..8835b69
--- /dev/null
@@ -0,0 +1,77 @@
+// File created from ../../../src/lib/process/process_messages.mes on Fri Feb 08 2019 20:30
+
+#include <cstddef>
+#include <log/message_types.h>
+#include <log/message_initializer.h>
+
+namespace isc {
+namespace process {
+
+extern const isc::log::MessageID DCTL_ALREADY_RUNNING = "DCTL_ALREADY_RUNNING";
+extern const isc::log::MessageID DCTL_CCSESSION_ENDING = "DCTL_CCSESSION_ENDING";
+extern const isc::log::MessageID DCTL_CCSESSION_STARTING = "DCTL_CCSESSION_STARTING";
+extern const isc::log::MessageID DCTL_CFG_FILE_RELOAD_ERROR = "DCTL_CFG_FILE_RELOAD_ERROR";
+extern const isc::log::MessageID DCTL_CFG_FILE_RELOAD_SIGNAL_RECVD = "DCTL_CFG_FILE_RELOAD_SIGNAL_RECVD";
+extern const isc::log::MessageID DCTL_COMMAND_RECEIVED = "DCTL_COMMAND_RECEIVED";
+extern const isc::log::MessageID DCTL_CONFIG_CHECK_COMPLETE = "DCTL_CONFIG_CHECK_COMPLETE";
+extern const isc::log::MessageID DCTL_CONFIG_COMPLETE = "DCTL_CONFIG_COMPLETE";
+extern const isc::log::MessageID DCTL_CONFIG_FILE_LOAD_FAIL = "DCTL_CONFIG_FILE_LOAD_FAIL";
+extern const isc::log::MessageID DCTL_CONFIG_LOAD_FAIL = "DCTL_CONFIG_LOAD_FAIL";
+extern const isc::log::MessageID DCTL_CONFIG_START = "DCTL_CONFIG_START";
+extern const isc::log::MessageID DCTL_CONFIG_STUB = "DCTL_CONFIG_STUB";
+extern const isc::log::MessageID DCTL_CONFIG_UPDATE = "DCTL_CONFIG_UPDATE";
+extern const isc::log::MessageID DCTL_INIT_PROCESS = "DCTL_INIT_PROCESS";
+extern const isc::log::MessageID DCTL_INIT_PROCESS_FAIL = "DCTL_INIT_PROCESS_FAIL";
+extern const isc::log::MessageID DCTL_NOT_RUNNING = "DCTL_NOT_RUNNING";
+extern const isc::log::MessageID DCTL_PARSER_FAIL = "DCTL_PARSER_FAIL";
+extern const isc::log::MessageID DCTL_PID_FILE_ERROR = "DCTL_PID_FILE_ERROR";
+extern const isc::log::MessageID DCTL_PROCESS_FAILED = "DCTL_PROCESS_FAILED";
+extern const isc::log::MessageID DCTL_RUN_PROCESS = "DCTL_RUN_PROCESS";
+extern const isc::log::MessageID DCTL_SESSION_FAIL = "DCTL_SESSION_FAIL";
+extern const isc::log::MessageID DCTL_SHUTDOWN = "DCTL_SHUTDOWN";
+extern const isc::log::MessageID DCTL_SHUTDOWN_SIGNAL_RECVD = "DCTL_SHUTDOWN_SIGNAL_RECVD";
+extern const isc::log::MessageID DCTL_SIGNAL_ERROR = "DCTL_SIGNAL_ERROR";
+extern const isc::log::MessageID DCTL_STANDALONE = "DCTL_STANDALONE";
+extern const isc::log::MessageID DCTL_STARTING = "DCTL_STARTING";
+extern const isc::log::MessageID DCTL_UNSUPPORTED_SIGNAL = "DCTL_UNSUPPORTED_SIGNAL";
+
+} // namespace process
+} // namespace isc
+
+namespace {
+
+const char* values[] = {
+    "DCTL_ALREADY_RUNNING", "%1 already running? %2",
+    "DCTL_CCSESSION_ENDING", "%1 ending control channel session",
+    "DCTL_CCSESSION_STARTING", "%1 starting control channel session, specfile: %2",
+    "DCTL_CFG_FILE_RELOAD_ERROR", "configuration reload failed: %1, reverting to current configuration.",
+    "DCTL_CFG_FILE_RELOAD_SIGNAL_RECVD", "OS signal %1 received, reloading configuration from file: %2",
+    "DCTL_COMMAND_RECEIVED", "%1 received command: %2, arguments: %3",
+    "DCTL_CONFIG_CHECK_COMPLETE", "server has completed configuration check: %1, result: %2",
+    "DCTL_CONFIG_COMPLETE", "server has completed configuration: %1",
+    "DCTL_CONFIG_FILE_LOAD_FAIL", "%1 reason: %2",
+    "DCTL_CONFIG_LOAD_FAIL", "%1 configuration failed to load: %2",
+    "DCTL_CONFIG_START", "parsing new configuration: %1",
+    "DCTL_CONFIG_STUB", "%1 configuration stub handler called",
+    "DCTL_CONFIG_UPDATE", "%1 updated configuration received: %2",
+    "DCTL_INIT_PROCESS", "%1 initializing the application",
+    "DCTL_INIT_PROCESS_FAIL", "%1 application initialization failed: %2",
+    "DCTL_NOT_RUNNING", "%1 application instance is not running",
+    "DCTL_PARSER_FAIL", ": %1",
+    "DCTL_PID_FILE_ERROR", "%1 could not create a PID file: %2",
+    "DCTL_PROCESS_FAILED", "%1 application execution failed: %2",
+    "DCTL_RUN_PROCESS", "%1 starting application event loop",
+    "DCTL_SESSION_FAIL", "%1 controller failed to establish Kea session: %1",
+    "DCTL_SHUTDOWN", "%1 has shut down, pid: %2, version: %3",
+    "DCTL_SHUTDOWN_SIGNAL_RECVD", "OS signal %1 received, starting shutdown",
+    "DCTL_SIGNAL_ERROR", "signal handler for signal %1, threw an unexpected exception: %2",
+    "DCTL_STANDALONE", "%1 skipping message queue, running standalone",
+    "DCTL_STARTING", "%1 starting, pid: %2, version: %3",
+    "DCTL_UNSUPPORTED_SIGNAL", "ignoring reception of unsupported signal: %1",
+    NULL
+};
+
+const isc::log::MessageInitializer initializer(values);
+
+} // Anonymous namespace
+
diff --git a/src/lib/process/process_messages.h b/src/lib/process/process_messages.h
new file mode 100644 (file)
index 0000000..3f3db67
--- /dev/null
@@ -0,0 +1,42 @@
+// File created from ../../../src/lib/process/process_messages.mes on Fri Feb 08 2019 20:30
+
+#ifndef PROCESS_MESSAGES_H
+#define PROCESS_MESSAGES_H
+
+#include <log/message_types.h>
+
+namespace isc {
+namespace process {
+
+extern const isc::log::MessageID DCTL_ALREADY_RUNNING;
+extern const isc::log::MessageID DCTL_CCSESSION_ENDING;
+extern const isc::log::MessageID DCTL_CCSESSION_STARTING;
+extern const isc::log::MessageID DCTL_CFG_FILE_RELOAD_ERROR;
+extern const isc::log::MessageID DCTL_CFG_FILE_RELOAD_SIGNAL_RECVD;
+extern const isc::log::MessageID DCTL_COMMAND_RECEIVED;
+extern const isc::log::MessageID DCTL_CONFIG_CHECK_COMPLETE;
+extern const isc::log::MessageID DCTL_CONFIG_COMPLETE;
+extern const isc::log::MessageID DCTL_CONFIG_FILE_LOAD_FAIL;
+extern const isc::log::MessageID DCTL_CONFIG_LOAD_FAIL;
+extern const isc::log::MessageID DCTL_CONFIG_START;
+extern const isc::log::MessageID DCTL_CONFIG_STUB;
+extern const isc::log::MessageID DCTL_CONFIG_UPDATE;
+extern const isc::log::MessageID DCTL_INIT_PROCESS;
+extern const isc::log::MessageID DCTL_INIT_PROCESS_FAIL;
+extern const isc::log::MessageID DCTL_NOT_RUNNING;
+extern const isc::log::MessageID DCTL_PARSER_FAIL;
+extern const isc::log::MessageID DCTL_PID_FILE_ERROR;
+extern const isc::log::MessageID DCTL_PROCESS_FAILED;
+extern const isc::log::MessageID DCTL_RUN_PROCESS;
+extern const isc::log::MessageID DCTL_SESSION_FAIL;
+extern const isc::log::MessageID DCTL_SHUTDOWN;
+extern const isc::log::MessageID DCTL_SHUTDOWN_SIGNAL_RECVD;
+extern const isc::log::MessageID DCTL_SIGNAL_ERROR;
+extern const isc::log::MessageID DCTL_STANDALONE;
+extern const isc::log::MessageID DCTL_STARTING;
+extern const isc::log::MessageID DCTL_UNSUPPORTED_SIGNAL;
+
+} // namespace process
+} // namespace isc
+
+#endif // PROCESS_MESSAGES_H