diff --git a/src/security/tls_session.cpp b/src/security/tls_session.cpp index 8a75585a2f0e5c5b30c3b9804280604f027e9cf4..e0b5e28a6461c257771083ab33b4dbae743e4dd5 100644 --- a/src/security/tls_session.cpp +++ b/src/security/tls_session.cpp @@ -771,29 +771,26 @@ TlsSession::TlsSessionImpl::sendOcspRequest(const std::string& uri, request->set_header_field(restinio::http_field_t::content_type, "application/ocsp-request"); request->set_body(std::move(body)); request->set_connection_type(restinio::http_connection_header_t::close); - request->add_on_state_change_callback( - [this, cb = std::move(cb), timeout](const http::Request::State state, - const http::Response response) { - JAMI_DBG("HTTP OCSP Request state=%i status_code=%i", - (unsigned int) state, - response.status_code); - if (state == http::Request::State::SENDING) { - auto request = response.request.lock(); - request->get_connection()->timeout(timeout, [request](const asio::error_code& ec) { - if (ec and ec != asio::error::operation_aborted) - JAMI_ERR("HTTP OCSP Request timeout with error: %s", ec.message().c_str()); - request->cancel(); - }); - } - if (state != http::Request::State::DONE) - return; - if (cb) - cb(response); - if (auto request = response.request.lock()) { - std::lock_guard<std::mutex> lock(requestsMtx_); - requests_.erase(request); - } - }); + request->timeout(timeout, [this, request](const asio::error_code& ec) { + if (ec and ec != asio::error::operation_aborted) + JAMI_ERR("HTTP OCSP Request timeout with error: %s", ec.message().c_str()); + request->cancel(); + }); + request->add_on_state_change_callback([this, + cb = std::move(cb)](const http::Request::State state, + const http::Response response) { + JAMI_DBG("HTTP OCSP Request state=%i status_code=%i", + (unsigned int) state, + response.status_code); + if (state != http::Request::State::DONE) + return; + if (cb) + cb(response); + if (auto request = response.request.lock()) { + std::lock_guard<std::mutex> lock(requestsMtx_); + requests_.erase(request); + } + }); { std::lock_guard<std::mutex> lock(requestsMtx_); requests_.emplace(request);