]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#687] Add additional log line called CTRL_AGENT_COMMAND_RECEIVED recording command...
authorDan Theisen <djt@isc.org>
Fri, 8 Apr 2022 19:54:27 +0000 (12:54 -0700)
committerTomek Mrugalski <tomek@isc.org>
Fri, 22 Apr 2022 11:36:09 +0000 (13:36 +0200)
src/bin/agent/ca_command_mgr.cc
src/bin/agent/ca_command_mgr.h
src/bin/agent/ca_messages.cc
src/bin/agent/ca_messages.h
src/bin/agent/ca_messages.mes

index b36eaa4163fa34ebdfd4beadb3cbb03d14c3e3d5..bf6922daccad55554065193d1bebba44a445ea2c 100644 (file)
@@ -65,6 +65,16 @@ CtrlAgentCommandMgr::handleCommand(const std::string& cmd_name,
                                    const isc::data::ConstElementPtr& params,
                                    const isc::data::ConstElementPtr& original_cmd) {
 
+    ConstElementPtr raddr_ptr = original_cmd->get("remote-address");
+    if (raddr_ptr && (raddr_ptr->getType() == Element::string)) {
+        remote_addr_ = raddr_ptr->stringValue();
+    } else {
+        remote_addr_ = "(unknown)";
+    }
+    LOG_INFO(agent_logger, CTRL_AGENT_COMMAND_RECEIVED)
+        .arg(cmd_name)
+        .arg(remote_addr_);
+
     ConstElementPtr services = Element::createList();
 
     // Retrieve 'service' parameter to determine if we should forward the
@@ -250,17 +260,10 @@ CtrlAgentCommandMgr::forwardCommand(const std::string& service,
     try {
         answer = received_feed->toElement();
 
-        std::string remote_addr;
-        ConstElementPtr raddr_ptr = command->get("remote-address");
-        if (raddr_ptr && (raddr_ptr->getType() == Element::string)) {
-            remote_addr = raddr_ptr->stringValue();
-        } else {
-            remote_addr = "(unknown)";
-        }
         LOG_INFO(agent_logger, CTRL_AGENT_COMMAND_FORWARDED)
             .arg(cmd_name)
             .arg(service)
-            .arg(remote_addr);
+            .arg(remote_addr_);
 
     } catch (const std::exception& ex) {
         isc_throw(CommandForwardingError, "internal server error: unable to parse"
index 038353b9c4153bb103079a50db944f2e272879bc..36f5fbe2b46cbf484aa89a87fc204c438fc65ee5 100644 (file)
@@ -107,6 +107,9 @@ private:
     /// thus the constructor is private.
     CtrlAgentCommandMgr();
 
+    /// @brief Remote address of HTTP endpoint.
+    std::string remote_addr_;
+
 };
 
 } // end of namespace isc::agent
index eaccb46d44eab4f9157f25f65f04f4a7ea068648..4d4ea684421326b47c535d5ea811a21c440f954e 100644 (file)
@@ -7,6 +7,7 @@
 namespace isc {
 namespace agent {
 
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_RECEIVED = "CTRL_AGENT_COMMAND_RECEIVED";
 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";
@@ -25,6 +26,7 @@ extern const isc::log::MessageID CTRL_AGENT_STARTED = "CTRL_AGENT_STARTED";
 namespace {
 
 const char* values[] = {
+    "CTRL_AGENT_COMMAND_RECEIVED", "command %1 received from remote address %2",
     "CTRL_AGENT_COMMAND_FORWARDED", "command %1 successfully forwarded to the service %2 from remote address %3",
     "CTRL_AGENT_COMMAND_FORWARD_BEGIN", "begin forwarding command %1 to service %2",
     "CTRL_AGENT_COMMAND_FORWARD_FAILED", "failed forwarding command %1: %2",
index 7e23243007b556ebab1369002cd786890d529522..d8ff6dbc914ac1a37a5c9655fea83341efd3f0cc 100644 (file)
@@ -8,6 +8,7 @@
 namespace isc {
 namespace agent {
 
+extern const isc::log::MessageID CTRL_AGENT_COMMAND_RECEIVED;
 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;
index 199a5c90199172a70f45943be397c89e7aefc3c9..c8f35ad77d30952669f31c924ed40273dc52ebf1 100644 (file)
@@ -6,6 +6,10 @@
 
 $NAMESPACE isc::agent
 
+% CTRL_AGENT_COMMAND_RECEIVED command %1 received from remote address %2
+This informational message is issued when the CA receives a control message,
+whether it is destined to the control agent itself, or to be forwarded on.
+
 % CTRL_AGENT_COMMAND_FORWARDED command %1 successfully forwarded to the service %2 from remote address %3
 This informational message is issued when the CA successfully forwards
 the control message to the specified Kea service and receives a response.