From: Thomas Markwalder Date: Thu, 21 Mar 2024 17:02:34 +0000 (-0400) Subject: [#3300] Fixed db-reconnect issue X-Git-Tag: Kea-2.5.7~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68e735f1ebe556c473a30c24680616c628d29ce8;p=thirdparty%2Fkea.git [#3300] Fixed db-reconnect issue src/bin/dhcp4/ctrl_dhcp4_srv.cc ControlledDhcpv4Srv::processConfig(isc::data::ConstElementPtr config) src/bin/dhcp6/ctrl_dhcp6_srv.cc ControlledDhcpv6Srv::processConfig(isc::data::ConstElementPtr config) --- diff --git a/src/bin/dhcp4/ctrl_dhcp4_srv.cc b/src/bin/dhcp4/ctrl_dhcp4_srv.cc index ed0278fa8b..0c0a24c174 100644 --- a/src/bin/dhcp4/ctrl_dhcp4_srv.cc +++ b/src/bin/dhcp4/ctrl_dhcp4_srv.cc @@ -913,7 +913,7 @@ ControlledDhcpv4Srv::processConfig(isc::data::ConstElementPtr config) { // Allow DB reconnect on startup. The database connection parameters specify // respective details. - DbConnectionInitWithRetry retry; + std::shared_ptr dbr(new DbConnectionInitWithRetry()); // Single stream instance used in all error clauses std::ostringstream err; @@ -1092,6 +1092,8 @@ ControlledDhcpv4Srv::processConfig(isc::data::ConstElementPtr config) { return (isc::config::createAnswer(CONTROL_RESULT_ERROR, err.str())); } + dbr.reset(); + /// Let postponed hook initializations to run. try { ControlledDhcpv4Srv::getInstance()->getIOService()->poll(); diff --git a/src/bin/dhcp6/ctrl_dhcp6_srv.cc b/src/bin/dhcp6/ctrl_dhcp6_srv.cc index cda7f8b87b..e304537ba9 100644 --- a/src/bin/dhcp6/ctrl_dhcp6_srv.cc +++ b/src/bin/dhcp6/ctrl_dhcp6_srv.cc @@ -918,7 +918,7 @@ ControlledDhcpv6Srv::processConfig(isc::data::ConstElementPtr config) { // Allow DB reconnect on startup. The database connection parameters specify // respective details. - DbConnectionInitWithRetry retry; + std::shared_ptr dbr(new DbConnectionInitWithRetry()); // Single stream instance used in all error clauses std::ostringstream err; @@ -1112,6 +1112,8 @@ ControlledDhcpv6Srv::processConfig(isc::data::ConstElementPtr config) { return (isc::config::createAnswer(CONTROL_RESULT_ERROR, err.str())); } + dbr.reset(); + /// Let postponed hook initializations to run. try { ControlledDhcpv6Srv::getInstance()->getIOService()->poll();