]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#4460] added info log message on service startup
authorRazvan Becheriu <razvan@isc.org>
Fri, 22 May 2026 19:48:05 +0000 (22:48 +0300)
committerAndrei Pavel <andrei@isc.org>
Mon, 25 May 2026 06:22:51 +0000 (09:22 +0300)
src/bin/netconf/netconf_config.cc
src/bin/netconf/netconf_config.h
src/bin/netconf/netconf_messages.cc
src/bin/netconf/netconf_messages.h
src/bin/netconf/netconf_messages.mes
src/bin/netconf/simple_parser.cc

index ea9a08837ab6c2def77a2617914f81c022deb2cf..bcd5e07274afdb421c09aa253b28b13a7eebb93b 100644 (file)
@@ -131,7 +131,7 @@ operator<<(ostream& os, const CfgServer& server) {
 // *********************** ControlSocketConfigParser  *************************
 
 CfgControlSocketPtr
-ControlSocketConfigParser::parse(ConstElementPtr ctrl_sock_config) {
+ControlSocketConfigParser::parse(ConstElementPtr ctrl_sock_config, const std::string& service) {
     CfgControlSocketPtr result;
     string type_str = getString(ctrl_sock_config, "socket-type");
     string name = getString(ctrl_sock_config, "socket-name");
@@ -199,13 +199,30 @@ ControlSocketConfigParser::parse(ConstElementPtr ctrl_sock_config) {
         result->setContext(user_context);
     }
 
+    std::ostringstream msg;
+    switch (type) {
+    case CfgControlSocket::Type::UNIX:
+        msg << "with socket name: " << name;
+        break;
+    case CfgControlSocket::Type::HTTP:
+        msg << "with url: " << url_str;
+        break;
+    case CfgControlSocket::Type::STDOUT:
+        msg << "used for logging";
+        break;
+    }
+    LOG_INFO(netconf_logger, NETCONF_CONTROL_SOCKET_INFO)
+        .arg(service)
+        .arg(type_str)
+        .arg(msg.str());
+
     return (result);
 }
 
 // *********************** ServerConfigParser  *************************
 
 CfgServerPtr
-ServerConfigParser::parse(ConstElementPtr server_config) {
+ServerConfigParser::parse(ConstElementPtr server_config, const string& service) {
     CfgServerPtr result;
     string model = getString(server_config, "model");
     ConstElementPtr user_context = server_config->get("user-context");
@@ -213,7 +230,7 @@ ServerConfigParser::parse(ConstElementPtr server_config) {
     CfgControlSocketPtr ctrl_sock;
     if (ctrl_sock_config) {
         ControlSocketConfigParser parser;
-        ctrl_sock = parser.parse(ctrl_sock_config);
+        ctrl_sock = parser.parse(ctrl_sock_config, service);
     }
     try {
         result.reset(new CfgServer(model, ctrl_sock));
index 6320fa3e7d21560293f816856e94fd595efae658..1c1345a1cfcb147a402e52f14000c9ebd412ec16 100644 (file)
@@ -299,9 +299,11 @@ public:
     /// instance.
     ///
     /// @param ctrl_sock_config is the "control-socket" configuration to parse.
+    /// @param service The service name.
     ///
     /// @return pointer to the new CfgControlSocket instance.
-    CfgControlSocketPtr parse(data::ConstElementPtr ctrl_sock_config);
+    CfgControlSocketPtr parse(data::ConstElementPtr ctrl_sock_config,
+                              const std::string& service = "");
 };  // ControlSocketConfigParser
 
 /// @brief Parser for CfgServer.
@@ -317,8 +319,10 @@ public:
     /// CfgServer, validates those entries, creates a CfgServer instance.
     ///
     /// @param server_config is the value from the "managed-servers" map to parse.
+    /// @param service The service name.
     /// @return pointer to the new CfgServer instance.
-    CfgServerPtr parse(data::ConstElementPtr server_config);
+    CfgServerPtr parse(data::ConstElementPtr server_config,
+                       const std::string& service = "");
 };  // ServerConfigParser
 
 }  // namespace netconf
index e1bdb7dc0138461588ea5f53cb2370945ae4882f..cc212506432807d9fa44865f6200968bced9f7fb 100644 (file)
@@ -13,6 +13,7 @@ extern const isc::log::MessageID NETCONF_CONFIG_CHANGE_EVENT = "NETCONF_CONFIG_C
 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_CONFIG_SYNTAX_WARNING = "NETCONF_CONFIG_SYNTAX_WARNING";
+extern const isc::log::MessageID NETCONF_CONTROL_SOCKET_INFO = "NETCONF_CONTROL_SOCKET_INFO";
 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";
@@ -55,6 +56,7 @@ const char* values[] = {
     "NETCONF_CONFIG_CHECK_FAIL", "NETCONF configuration check failed: %1",
     "NETCONF_CONFIG_FAIL", "NETCONF configuration failed: %1",
     "NETCONF_CONFIG_SYNTAX_WARNING", "NETCONF configuration syntax warning: %1",
+    "NETCONF_CONTROL_SOCKET_INFO", "the service: %1 started using control socket type: %2 %3",
     "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",
index da79c1a3fbfd6bbbd382b69cb83d1f47e547fae3..30d749c74e4d5112fc9447ca628b1f1bb282919c 100644 (file)
@@ -14,6 +14,7 @@ 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_CONFIG_SYNTAX_WARNING;
+extern const isc::log::MessageID NETCONF_CONTROL_SOCKET_INFO;
 extern const isc::log::MessageID NETCONF_FAILED;
 extern const isc::log::MessageID NETCONF_GET_CONFIG;
 extern const isc::log::MessageID NETCONF_GET_CONFIG_FAILED;
index cc27276f650bcb3e9c80191a981777829b4a2900..f2b2c9302e584d6a32a0810efa67cd862c72744a 100644 (file)
@@ -34,6 +34,10 @@ in earlier log entries, possibly on lower levels.
 This warning message indicates that the NETCONF configuration had a minor
 syntax error. The error was displayed and the configuration parsing resumed.
 
+% NETCONF_CONTROL_SOCKET_INFO the service: %1 started using control socket type: %2 %3
+This info message provides details of the control socket used for the
+respective service. The service name, socket type and details are logged.
+
 % NETCONF_FAILED application experienced a fatal error: %1
 This is a fatal error message issued when kea-netconf
 got an unrecoverable error from within the event loop.
index 92eb46b80d9fcd5f434fc3ea46d71dac4c80bf2d..df28197c46280c148f8f234456cbc1785d206ea9 100644 (file)
@@ -163,7 +163,7 @@ NetconfSimpleParser::parse(const NetconfConfigPtr& ctx,
     if (servers) {
         for (auto const& it : servers->mapValue()) {
             ServerConfigParser server_parser;
-            CfgServerPtr server = server_parser.parse(it.second);
+            CfgServerPtr server = server_parser.parse(it.second, it.first);
             ctx->getCfgServersMap()->insert(make_pair(it.first, server));
         }
     }