]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2305] Added LM getStatus
authorFrancis Dupont <fdupont@isc.org>
Tue, 2 Sep 2025 08:11:17 +0000 (10:11 +0200)
committerFrancis Dupont <fdupont@isc.org>
Thu, 18 Sep 2025 12:42:01 +0000 (14:42 +0200)
src/bin/dhcp4/ctrl_dhcp4_srv.cc
src/bin/dhcp6/ctrl_dhcp6_srv.cc
src/lib/dhcpsrv/lease_mgr.cc
src/lib/dhcpsrv/lease_mgr.h

index a013dd9532b5a9a0cc26c7b87f0db79513959522..e1fc9df534753b6c13793767eccdc81f6a6b987d 100644 (file)
@@ -1158,6 +1158,17 @@ ControlledDhcpv4Srv::commandStatusGetHandler(const string&,
         status->set("multi-threading-enabled", Element::create(false));
     }
 
+    // Merge lease manager status.
+    ElementPtr lm_info;
+    if (LeaseMgrFactory::haveInstance()) {
+        lm_info = LeaseMgrFactory::instance().getStatus();
+    }
+    if (lm_info && (lm_info->getType() == Element::map)) {
+        for (auto const& entry : lm_info->mapValue()) {
+            status->set(entry.first, entry.second);
+        }
+    }
+
     // Iterate through the interfaces and get all the errors.
     ElementPtr socket_errors(Element::createList());
     for (IfacePtr const& interface : IfaceMgr::instance().getIfaces()) {
index b3b9868207f3295a4c6cf87844bc7565e077aa7d..10e56be1920b5597d89eff6a615b91a57b98c3e3 100644 (file)
@@ -922,6 +922,17 @@ ControlledDhcpv6Srv::commandStatusGetHandler(const string&,
         status->set("multi-threading-enabled", Element::create(false));
     }
 
+    // Merge lease manager status.
+    ElementPtr lm_info;
+    if (LeaseMgrFactory::haveInstance()) {
+        lm_info = LeaseMgrFactory::instance().getStatus();
+    }
+    if (lm_info && (lm_info->getType() == Element::map)) {
+        for (auto const& entry : lm_info->mapValue()) {
+            status->set(entry.first, entry.second);
+        }
+    }
+
     status->set("extended-info-tables", Element::create(
                     CfgMgr::instance().getCurrentCfg()->getCfgDbAccess()->getExtendedInfoTablesEnabled()));
 
index 958510e45ae35be6f6772bcce53b8fe7aa8fbb74..004160e084120dcf4f9218aee03945f129282ffc 100644 (file)
@@ -1306,6 +1306,11 @@ LeaseMgr::byRemoteId6size() const {
     return (0);
 }
 
+ElementPtr
+LeaseMgr::getStatus() const {
+    return (ElementPtr());
+}
+
 ConstElementPtr
 LeaseMgr::lfcStartHandler() {
     ostringstream msg;
index 7610e3904205fe1300d4d00ff5966a2d33d6f811..8c4749fd972ed346e0e3360cdbe78ff850cd94c8 100644 (file)
@@ -1065,6 +1065,13 @@ public:
     /// @return Always 0.
     virtual size_t byRemoteId6size() const;
 
+    /// @brief Return status information.
+    ///
+    /// Can be derived by backends (currently memfile).
+    ///
+    /// @return Null or a map to add to status-get command output.
+    virtual data::ElementPtr getStatus() const;
+
     /// @brief Handler for kea-lfc-start command.
     ///
     /// Derived by the memfile backend.