From: Marcin Siodelski Date: Thu, 25 Oct 2018 16:43:52 +0000 (+0200) Subject: [#78,!85] max-period in dhcp-disable set to sync-timeout HA parameter. X-Git-Tag: 66-authoritative-flag-in-kea_base~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6243bae6b077299de8304b1c5e70aaf37f7d7bc;p=thirdparty%2Fkea.git [#78,!85] max-period in dhcp-disable set to sync-timeout HA parameter. --- diff --git a/src/hooks/dhcp/high_availability/ha_service.cc b/src/hooks/dhcp/high_availability/ha_service.cc index 9256de5d52..de9a3470e3 100644 --- a/src/hooks/dhcp/high_availability/ha_service.cc +++ b/src/hooks/dhcp/high_availability/ha_service.cc @@ -355,11 +355,18 @@ HAService::syncingStateHandler() { // so let's temporarily stop it. communication_state_->stopHeartbeat(); + // Timeout is configured in milliseconds. Need to convert to seconds. + unsigned int dhcp_disable_timeout = + static_cast(config_->getSyncTimeout() / 1000); + if (dhcp_disable_timeout == 0) { + ++dhcp_disable_timeout; + } + // Perform synchronous leases update. std::string status_message; int sync_status = synchronize(status_message, config_->getFailoverPeerConfig()->getName(), - 60); + dhcp_disable_timeout); // If the leases synchronization was successful, let's transition // to the ready state. @@ -1024,7 +1031,9 @@ HAService::asyncDisable(HttpClient& http_client, // Create HTTP/1.1 request including our command. PostHttpRequestJsonPtr request = boost::make_shared (HttpRequest::Method::HTTP_POST, "/", HttpVersion::HTTP_11()); - request->setBodyAsJson(CommandCreator::createDHCPDisable(max_period, server_type_)); + + request->setBodyAsJson(CommandCreator::createDHCPDisable(max_period, + server_type_)); request->finalize(); // Response object should also be created because the HTTP client needs @@ -1160,8 +1169,16 @@ HAService::localEnable() { void HAService::asyncSyncLeases() { PostSyncCallback null_action; + + // Timeout is configured in milliseconds. Need to convert to seconds. + unsigned int dhcp_disable_timeout = + static_cast(config_->getSyncTimeout() / 1000); + if (dhcp_disable_timeout == 0) { + ++dhcp_disable_timeout; + } + asyncSyncLeases(client_, config_->getFailoverPeerConfig()->getName(), - 60, LeasePtr(), null_action); + dhcp_disable_timeout, LeasePtr(), null_action); } void