]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[3590] Hook libraries information is now stored in SrvConfig
authorTomek Mrugalski <tomasz@isc.org>
Thu, 23 Feb 2017 18:16:49 +0000 (19:16 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Thu, 23 Feb 2017 18:16:49 +0000 (19:16 +0100)
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp6/json_config_parser.cc
src/lib/dhcpsrv/srv_config.h

index 865f86a17989ccd4d6b1ad41eb05d31925eff893..d213c83cccd78601b9b065dcb965781b3d9ec2de 100644 (file)
@@ -515,6 +515,11 @@ configureDhcp4Server(Dhcpv4Srv&, isc::data::ConstElementPtr config_set) {
             if (config_pair.first == "hooks-libraries") {
                 hooks_parser.parse(config_pair.second);
                 hooks_parser.verifyLibraries();
+
+                // We need to store hooks information in the configuration.
+                hooks::HookLibsCollection libs;
+                hooks_parser.getLibraries(libs);
+                srv_cfg->setLibraries(libs);
                 continue;
             }
 
index d34260ce9552ade56cf23b3906d77ae32cdafee3..ce195e6ee7dcbf50cdd213b332cf233e6f8af5b0 100644 (file)
@@ -737,6 +737,11 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set) {
             if (config_pair.first == "hooks-libraries") {
                 hooks_parser.parse(config_pair.second);
                 hooks_parser.verifyLibraries();
+
+                // We need to store hooks information in the configuration.
+                hooks::HookLibsCollection libs;
+                hooks_parser.getLibraries(libs);
+                srv_config->setLibraries(libs);
                 continue;
             }
 
index 4bfa4ccae311cba3bc578de8ad77035b151aebc3..e3c3d888185e9b71da9ed7c37f0e8729fb15b626 100644 (file)
@@ -22,6 +22,7 @@
 #include <dhcpsrv/client_class_def.h>
 #include <dhcpsrv/d2_client_cfg.h>
 #include <dhcpsrv/logging_info.h>
+#include <hooks/libinfo.h>
 #include <cc/data.h>
 #include <boost/shared_ptr.hpp>
 #include <vector>
@@ -521,6 +522,19 @@ public:
         d2_client_config_ = d2_client_config;
     }
 
+    /// @brief Returns a list of hook libraries
+    /// @return a list of hook libraries
+    const hooks::HookLibsCollection& getLibraries() const {
+        return (libraries_);
+    }
+
+    /// @brief Sets the list of hook libraries
+    ///
+    /// @params libs a coolection of libraries to remember.
+    void setLibraries(const hooks::HookLibsCollection& libs) {
+        libraries_ = libs;
+    }
+
 private:
 
     /// @brief Sequence number identifying the configuration.
@@ -609,6 +623,9 @@ private:
     uint32_t dhcp4o6_port_;
 
     D2ClientConfigPtr d2_client_config_;
+
+    /// List of hook libraries.
+    hooks::HookLibsCollection libraries_;
 };
 
 /// @name Pointers to the @c SrvConfig object.