diff --git a/src/bin/dhcp4/json_config_parser.cc b/src/bin/dhcp4/json_config_parser.cc index 865f86a179..d213c83ccc 100644 --- a/src/bin/dhcp4/json_config_parser.cc +++ b/src/bin/dhcp4/json_config_parser.cc @@ -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; } diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc index d34260ce95..ce195e6ee7 100644 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@ -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; } diff --git a/src/lib/dhcpsrv/srv_config.h b/src/lib/dhcpsrv/srv_config.h index 4bfa4ccae3..e3c3d88818 100644 --- a/src/lib/dhcpsrv/srv_config.h +++ b/src/lib/dhcpsrv/srv_config.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -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.