From: Tomek Mrugalski Date: Mon, 5 Nov 2018 04:05:02 +0000 (+0700) Subject: [#110,!156] libprocess dependency fix (in progress) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a5e59b90f213fb5f4a3fd03bedd609b29408511;p=thirdparty%2Fkea.git [#110,!156] libprocess dependency fix (in progress) --- diff --git a/src/lib/database/Makefile.am b/src/lib/database/Makefile.am index ad8d1c6db8..0e24608b9f 100644 --- a/src/lib/database/Makefile.am +++ b/src/lib/database/Makefile.am @@ -24,6 +24,8 @@ CLEANFILES = *.gcno *.gcda db_messages.h db_messages.cc s-messages lib_LTLIBRARIES = libkea-database.la libkea_database_la_SOURCES = backend_selector.cc backend_selector.h +libkea_database_la_SOURCES += config_ctl_info.cc config_ctl_info.h +libkea_database_la_SOURCES += config_ctl_parser.cc config_ctl_parser.h libkea_database_la_SOURCES += database_connection.cc database_connection.h libkea_database_la_SOURCES += dbaccess_parser.h dbaccess_parser.cc libkea_database_la_SOURCES += db_exceptions.h diff --git a/src/lib/process/config_ctl_info.cc b/src/lib/database/config_ctl_info.cc similarity index 97% rename from src/lib/process/config_ctl_info.cc rename to src/lib/database/config_ctl_info.cc index 9d84134691..feb63f77d4 100644 --- a/src/lib/process/config_ctl_info.cc +++ b/src/lib/database/config_ctl_info.cc @@ -5,12 +5,12 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include -#include +#include using namespace isc::data; namespace isc { -namespace process { +namespace db { void ConfigDbInfo::setAccessString(const std::string& access_str) { diff --git a/src/lib/process/config_ctl_info.h b/src/lib/database/config_ctl_info.h similarity index 99% rename from src/lib/process/config_ctl_info.h rename to src/lib/database/config_ctl_info.h index b5c94eff5b..5ba0b8c63e 100644 --- a/src/lib/process/config_ctl_info.h +++ b/src/lib/database/config_ctl_info.h @@ -15,7 +15,7 @@ #include namespace isc { -namespace process { +namespace db { /// @brief Provides configuration information used during a server's /// configuration process diff --git a/src/lib/process/config_ctl_parser.cc b/src/lib/database/config_ctl_parser.cc similarity index 96% rename from src/lib/process/config_ctl_parser.cc rename to src/lib/database/config_ctl_parser.cc index 4474876e8e..0e85997aba 100644 --- a/src/lib/process/config_ctl_parser.cc +++ b/src/lib/database/config_ctl_parser.cc @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include @@ -15,7 +15,7 @@ using namespace isc; using namespace isc::data; namespace isc { -namespace process { +namespace db { ConfigControlInfoPtr ConfigControlParser::parse(const data::ConstElementPtr& config_control) { diff --git a/src/lib/process/config_ctl_parser.h b/src/lib/database/config_ctl_parser.h similarity index 94% rename from src/lib/process/config_ctl_parser.h rename to src/lib/database/config_ctl_parser.h index 4182a1908e..f228669f5d 100644 --- a/src/lib/process/config_ctl_parser.h +++ b/src/lib/database/config_ctl_parser.h @@ -9,10 +9,10 @@ #include #include -#include +#include namespace isc { -namespace process { +namespace db { /// @brief Implements parser for config control information, "config-control" class ConfigControlParser : isc::data::SimpleParser { diff --git a/src/lib/database/tests/Makefile.am b/src/lib/database/tests/Makefile.am index 4e1609d18f..10bc46fa83 100644 --- a/src/lib/database/tests/Makefile.am +++ b/src/lib/database/tests/Makefile.am @@ -20,6 +20,8 @@ if HAVE_GTEST TESTS += libdatabase_unittests libdatabase_unittests_SOURCES = backend_selector_unittest.cc +libdatabase_unittests_SOURCES += config_ctl_info_unittests.cc +libdatabase_unittests_SOURCES += config_ctl_parser_unittests.cc libdatabase_unittests_SOURCES += database_connection_unittest.cc libdatabase_unittests_SOURCES += dbaccess_parser_unittest.cc libdatabase_unittests_SOURCES += run_unittests.cc diff --git a/src/lib/process/tests/config_ctl_info_unittests.cc b/src/lib/database/tests/config_ctl_info_unittests.cc similarity index 98% rename from src/lib/process/tests/config_ctl_info_unittests.cc rename to src/lib/database/tests/config_ctl_info_unittests.cc index 5f0c50f5d6..e497fc15e3 100644 --- a/src/lib/process/tests/config_ctl_info_unittests.cc +++ b/src/lib/database/tests/config_ctl_info_unittests.cc @@ -5,7 +5,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include -#include +#include #include #include @@ -13,7 +13,7 @@ #include #include -using namespace isc::process; +using namespace isc::db; using namespace isc::data; // Verifies initializing via an access string and unparsing into elements diff --git a/src/lib/process/tests/config_ctl_parser_unittests.cc b/src/lib/database/tests/config_ctl_parser_unittests.cc similarity index 97% rename from src/lib/process/tests/config_ctl_parser_unittests.cc rename to src/lib/database/tests/config_ctl_parser_unittests.cc index bf1be4d1ac..1b4fdf85fc 100644 --- a/src/lib/process/tests/config_ctl_parser_unittests.cc +++ b/src/lib/database/tests/config_ctl_parser_unittests.cc @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include @@ -14,7 +14,7 @@ #include #include -using namespace isc::process; +using namespace isc::db; using namespace isc::data; // Verifies valid configurations are parsed correctly. The test diff --git a/src/lib/dhcpsrv/srv_config.cc b/src/lib/dhcpsrv/srv_config.cc index 967d021553..ca4369709a 100644 --- a/src/lib/dhcpsrv/srv_config.cc +++ b/src/lib/dhcpsrv/srv_config.cc @@ -38,7 +38,7 @@ SrvConfig::SrvConfig() decline_timer_(0), echo_v4_client_id_(true), dhcp4o6_port_(0), d2_client_config_(new D2ClientConfig()), configured_globals_(Element::createMap()), - cfg_consist_(new CfgConsistency()), + cfg_consist_(new CfgConsistency()), server_tag_("") { } @@ -128,6 +128,13 @@ SrvConfig::copy(SrvConfig& new_config) const { it != hooks_config_.get().end(); ++it) { new_config.hooks_config_.add(it->first, it->second); } + + // Clone the config control info + if (config_ctl_info_) { + new_config.config_ctl_info_.reset(new ConfigControlInfo(*config_ctl_info_)); + } else { + new_config.config_ctl_info_.reset(); + } } bool @@ -146,6 +153,15 @@ SrvConfig::equals(const SrvConfig& other) const { (*d2_client_config_ != *other.d2_client_config_)) { return (false); } + + // Check config control info for equality. + if ((config_ctl_info_ && !other.config_ctl_info_) || + (!config_ctl_info_ && other.config_ctl_info_) || + ((config_ctl_info_ && other.config_ctl_info_) && + (!config_ctl_info_->equals(*(other.config_ctl_info_))))) { + return (false); + } + // Now only configured hooks libraries can differ. // If number of configured hooks libraries are different, then // configurations aren't equal. diff --git a/src/lib/dhcpsrv/srv_config.h b/src/lib/dhcpsrv/srv_config.h index 3f317f0ba3..1b91d586ae 100644 --- a/src/lib/dhcpsrv/srv_config.h +++ b/src/lib/dhcpsrv/srv_config.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -392,6 +393,26 @@ public: return (hooks_config_); } + /// @brief Fetches a read-only copy of the configuration control + /// information + /// @return pointer to the const ConfigControlInfo + db::ConstConfigControlInfoPtr getConfigControlInfo() const { + return (config_ctl_info_); + } + + /// @brief Set the configuration control information + /// + /// Updates the internal pointer to the configuration control + /// information with the given pointer value. If the given pointer + /// is empty, the internal pointer will be reset. + /// + /// @param config_ctl_info pointer to the configuration value + /// to store. + void setConfigControlInfo(const db::ConfigControlInfoPtr& + config_ctl_info) { + config_ctl_info_ = config_ctl_info; + } + /// @brief Copies the current configuration to a new configuration. /// /// This method copies the parameters stored in the configuration to @@ -683,6 +704,9 @@ private: /// @brief Logical name of the server std::string server_tag_; + + /// @brief Configuration control information. + db::ConfigControlInfoPtr config_ctl_info_; }; /// @name Pointers to the @c SrvConfig object. diff --git a/src/lib/process/Makefile.am b/src/lib/process/Makefile.am index f2d838cf56..e2fb5ed825 100644 --- a/src/lib/process/Makefile.am +++ b/src/lib/process/Makefile.am @@ -28,8 +28,6 @@ DISTCLEANFILES = spec_config.h.pre lib_LTLIBRARIES = libkea-process.la libkea_process_la_SOURCES = config_base.cc config_base.h -libkea_process_la_SOURCES += config_ctl_info.cc config_ctl_info.h -libkea_process_la_SOURCES += config_ctl_parser.cc config_ctl_parser.h libkea_process_la_SOURCES += d_cfg_mgr.cc d_cfg_mgr.h libkea_process_la_SOURCES += d_controller.cc d_controller.h libkea_process_la_SOURCES += d_log.cc d_log.h diff --git a/src/lib/process/config_base.cc b/src/lib/process/config_base.cc index 74b4ca788f..f72b0209b8 100644 --- a/src/lib/process/config_base.cc +++ b/src/lib/process/config_base.cc @@ -54,14 +54,6 @@ ConfigBase::equals(const ConfigBase& other) const { } } - // Check config control info for equality. - if ((config_ctl_info_ && !other.config_ctl_info_) || - (!config_ctl_info_ && other.config_ctl_info_) || - ((config_ctl_info_ && other.config_ctl_info_) && - (!config_ctl_info_->equals(*(other.config_ctl_info_))))) { - return (false); - } - return (true); } @@ -73,13 +65,6 @@ ConfigBase::copy(ConfigBase& other) const { it != logging_info_.end(); ++it) { other.addLoggingInfo(*it); } - - // Clone the config control info - if (config_ctl_info_) { - other.config_ctl_info_.reset(new ConfigControlInfo(*config_ctl_info_)); - } else { - other.config_ctl_info_.reset(); - } } ElementPtr diff --git a/src/lib/process/config_base.h b/src/lib/process/config_base.h index bdf8fbc884..240b883bbe 100644 --- a/src/lib/process/config_base.h +++ b/src/lib/process/config_base.h @@ -9,7 +9,6 @@ #include #include -#include #include namespace isc { @@ -76,26 +75,6 @@ public: /// @return Element representation. virtual isc::data::ElementPtr toElement() const; - /// @brief Fetches a read-only copy of the configuration control - /// information - /// @return pointer to the const ConfigControlInfo - process::ConstConfigControlInfoPtr getConfigControlInfo() const { - return (config_ctl_info_); - } - - /// @brief Set the configuration control information - /// - /// Updates the internal pointer to the configuration control - /// information with the given pointer value. If the given pointer - /// is empty, the internal pointer will be reset. - /// - /// @param config_ctl_info pointer to the configuration value - /// to store. - void setConfigControlInfo(const process::ConfigControlInfoPtr& - config_ctl_info) { - config_ctl_info_ = config_ctl_info; - } - protected: /// @brief Copies the current configuration to a new configuration. /// @@ -110,9 +89,6 @@ protected: private: /// @brief Logging specific information. process::LoggingInfoStorage logging_info_; - - /// @brief Configuration control information. - process::ConfigControlInfoPtr config_ctl_info_; }; /// @brief Non-const pointer to the @c SrvConfig. diff --git a/src/lib/process/tests/Makefile.am b/src/lib/process/tests/Makefile.am index 2fe844b5d4..0d2a7e4495 100644 --- a/src/lib/process/tests/Makefile.am +++ b/src/lib/process/tests/Makefile.am @@ -23,8 +23,6 @@ TESTS += libprocess_unittests libprocess_unittests_SOURCES = d_cfg_mgr_unittests.cc libprocess_unittests_SOURCES += config_base_unittests.cc -libprocess_unittests_SOURCES += config_ctl_info_unittests.cc -libprocess_unittests_SOURCES += config_ctl_parser_unittests.cc libprocess_unittests_SOURCES += d_controller_unittests.cc libprocess_unittests_SOURCES += daemon_unittest.cc libprocess_unittests_SOURCES += io_service_signal_unittests.cc