diff --git a/config/v201/component_config/standardized/SecurityCtrlr.json b/config/v201/component_config/standardized/SecurityCtrlr.json index ab13d92f4..9e168ad99 100644 --- a/config/v201/component_config/standardized/SecurityCtrlr.json +++ b/config/v201/component_config/standardized/SecurityCtrlr.json @@ -101,7 +101,7 @@ { "type": "Actual", "mutability": "ReadWrite", - "value": 0 + "value": 30 } ], "description": "Seconds to wait before generating another CSR in case CSMS does not return a signed certificate.", diff --git a/lib/ocpp/v201/functional_blocks/security.cpp b/lib/ocpp/v201/functional_blocks/security.cpp index b2d6a74dc..8c352998f 100644 --- a/lib/ocpp/v201/functional_blocks/security.cpp +++ b/lib/ocpp/v201/functional_blocks/security.cpp @@ -312,8 +312,8 @@ void Security::handle_sign_certificate_response(CallResultawaited_certificate_signing_use_enum = std::nullopt; return; } - int retry_backoff_milliseconds = - std::max(minimum_cert_signing_wait_time_seconds, 1000 * cert_signing_wait_minimum.value()) * + int retry_backoff_seconds = + std::max(minimum_cert_signing_wait_time_seconds, cert_signing_wait_minimum.value()) * std::pow(2, this->csr_attempt); // prevent immediate repetition in case of value 0 this->certificate_signed_timer.timeout( [this]() { @@ -324,7 +324,7 @@ void Security::handle_sign_certificate_response(CallResultawaited_certificate_signing_use_enum.reset(); this->sign_certificate_req(current_awaited_certificate_signing_use_enum); }, - std::chrono::milliseconds(retry_backoff_milliseconds)); + std::chrono::seconds(retry_backoff_seconds)); } else { this->awaited_certificate_signing_use_enum = std::nullopt; this->csr_attempt = 1;