diff options
author | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2025-04-02 12:11:31 +0200 |
---|---|---|
committer | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2025-04-14 15:56:12 +0200 |
commit | f7cdc3ec51525c748005039fc19e6d1570423f33 (patch) | |
tree | b535b8de5ee0ca93b2daf70da85ece68a43f077b /scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch | |
parent | 351a2513475b75178888f05c1c66e85313dde83c (diff) | |
download | vyos-build-f7cdc3ec51525c748005039fc19e6d1570423f33.tar.gz vyos-build-f7cdc3ec51525c748005039fc19e6d1570423f33.zip |
kea: T7281: Patches from upstream to include ping_check library
Diffstat (limited to 'scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch')
-rw-r--r-- | scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch b/scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch new file mode 100644 index 00000000..981e6f1d --- /dev/null +++ b/scripts/package-build/kea/patches/isc-kea/0001-Add-multithreading-test-mode.patch @@ -0,0 +1,135 @@ +From cb2b064162e2d5bf09331c619abf76a40130ade1 Mon Sep 17 00:00:00 2001 +From: sarthurdev <s.arthur@vyos.io> +Date: Wed, 2 Apr 2025 08:48:48 +0000 +Subject: [PATCH 1/2] Add multithreading test mode + +--- + src/bin/dhcp4/json_config_parser.cc | 4 ++++ + src/bin/dhcp6/json_config_parser.cc | 6 +++++- + src/lib/config/cmd_http_listener.cc | 3 +++ + src/lib/tcp/mt_tcp_listener_mgr.cc | 3 +++ + src/lib/util/multi_threading_mgr.cc | 3 ++- + src/lib/util/multi_threading_mgr.h | 19 +++++++++++++++++++ + 6 files changed, 36 insertions(+), 2 deletions(-) + +diff --git a/src/bin/dhcp4/json_config_parser.cc b/src/bin/dhcp4/json_config_parser.cc +index c2e34c5..1350816 100644 +--- a/src/bin/dhcp4/json_config_parser.cc ++++ b/src/bin/dhcp4/json_config_parser.cc +@@ -718,6 +718,10 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set, + LOG_DEBUG(dhcp4_logger, DBG_DHCP4_COMMAND, DHCP4_CONFIG_START) + .arg(server.redactConfig(config_set)->str()); + ++ if (check_only) { ++ MultiThreadingMgr::instance().setTestMode(true); ++ } ++ + auto answer = processDhcp4Config(config_set); + + int status_code = CONTROL_RESULT_SUCCESS; +diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc +index 671d69a..a74a568 100644 +--- a/src/bin/dhcp6/json_config_parser.cc ++++ b/src/bin/dhcp6/json_config_parser.cc +@@ -850,6 +850,10 @@ configureDhcp6Server(Dhcpv6Srv& server, isc::data::ConstElementPtr config_set, + LOG_DEBUG(dhcp6_logger, DBG_DHCP6_COMMAND, DHCP6_CONFIG_START) + .arg(server.redactConfig(config_set)->str()); + ++ if (check_only) { ++ MultiThreadingMgr::instance().setTestMode(true); ++ } ++ + auto answer = processDhcp6Config(config_set); + + int status_code = CONTROL_RESULT_SUCCESS; +@@ -953,7 +957,7 @@ configureDhcp6Server(Dhcpv6Srv& server, isc::data::ConstElementPtr config_set, + // configuration. This will add created subnets and option values into + // the server's configuration. + // This operation should be exception safe but let's make sure. +- if (status_code == CONTROL_RESULT_SUCCESS && (!check_only || extra_checks)) { ++ if (status_code == CONTROL_RESULT_SUCCESS && !check_only) { + try { + + // Setup the command channel. +diff --git a/src/lib/config/cmd_http_listener.cc b/src/lib/config/cmd_http_listener.cc +index 9dfea59..394806e 100644 +--- a/src/lib/config/cmd_http_listener.cc ++++ b/src/lib/config/cmd_http_listener.cc +@@ -40,6 +40,9 @@ CmdHttpListener::~CmdHttpListener() { + + void + CmdHttpListener::start() { ++ if (MultiThreadingMgr::instance().isTestMode()) { ++ return; ++ } + // We must be in multi-threading mode. + if (!MultiThreadingMgr::instance().getMode()) { + isc_throw(InvalidOperation, "CmdHttpListener cannot be started" +diff --git a/src/lib/tcp/mt_tcp_listener_mgr.cc b/src/lib/tcp/mt_tcp_listener_mgr.cc +index e880284..4680717 100644 +--- a/src/lib/tcp/mt_tcp_listener_mgr.cc ++++ b/src/lib/tcp/mt_tcp_listener_mgr.cc +@@ -40,6 +40,9 @@ MtTcpListenerMgr::~MtTcpListenerMgr() { + + void + MtTcpListenerMgr::start() { ++ if (MultiThreadingMgr::instance().isTestMode()) { ++ return; ++ } + // We must be in multi-threading mode. + if (!MultiThreadingMgr::instance().getMode()) { + isc_throw(InvalidOperation, "MtTcpListenerMgr cannot be started" +diff --git a/src/lib/util/multi_threading_mgr.cc b/src/lib/util/multi_threading_mgr.cc +index d1526b9..cab284d 100644 +--- a/src/lib/util/multi_threading_mgr.cc ++++ b/src/lib/util/multi_threading_mgr.cc +@@ -14,7 +14,8 @@ namespace isc { + namespace util { + + MultiThreadingMgr::MultiThreadingMgr() +- : enabled_(false), critical_section_count_(0), thread_pool_size_(0) { ++ : enabled_(false), test_mode_(false), critical_section_count_(0), ++ thread_pool_size_(0) { + } + + MultiThreadingMgr::~MultiThreadingMgr() { +diff --git a/src/lib/util/multi_threading_mgr.h b/src/lib/util/multi_threading_mgr.h +index e86c488..f3da67b 100644 +--- a/src/lib/util/multi_threading_mgr.h ++++ b/src/lib/util/multi_threading_mgr.h +@@ -154,6 +154,22 @@ public: + /// @param enabled The new mode. + void setMode(bool enabled); + ++ /// @brief Sets or clears the test mode for @c MultiThreadingMgr. ++ /// ++ /// @param test_mode A flag which indicates that the @c MultiThreadingMgr is ++ /// in the test mode (if true), or not (if false). ++ void setTestMode(const bool test_mode) { ++ test_mode_ = test_mode; ++ } ++ ++ /// @brief Checks if the @c MultiThreadingMgr is in the test mode. ++ /// ++ /// @return true if the @c MultiThreadingMgr is in the test mode, false ++ /// otherwise. ++ bool isTestMode() const { ++ return (test_mode_); ++ } ++ + /// @brief Enter critical section. + /// + /// When entering @ref MultiThreadingCriticalSection, increment internal +@@ -308,6 +324,9 @@ private: + /// otherwise. + bool enabled_; + ++ /// @brief Indicates if the @c MultiThreadingMgr is in the test mode. ++ bool test_mode_; ++ + /// @brief The critical section count. + /// + /// In case the configuration is applied within a +-- +2.39.5 + |