diff --git a/src/asynchttprequest.cpp b/src/asynchttprequest.cpp index 26a6dde..e421357 100644 --- a/src/asynchttprequest.cpp +++ b/src/asynchttprequest.cpp @@ -140,6 +140,7 @@ bool AsyncHttpRequest::taskRunning() const std::expected AsyncHttpRequest::createClient(std::string_view url, esp_http_client_method_t method, int timeout_ms, + std::string_view serverCert, const std::optional &clientAuth) { if (m_client) @@ -160,6 +161,12 @@ std::expected AsyncHttpRequest::createClient(std::string_view .is_async = true, }; + if (!serverCert.empty()) + { + config.cert_pem = serverCert.data(); + config.cert_len = serverCert.size(); + } + if (clientAuth) { config.client_key_pem = clientAuth->clientKey.data(); @@ -208,6 +215,7 @@ std::expected AsyncHttpRequest::start(std::string_view url, esp_http_client_method_t method, const std::map &requestHeaders, std::string &&requestBody, int timeout_ms, + std::string_view serverCert, const std::optional &clientAuth) { if (!m_taskHandle) @@ -229,7 +237,7 @@ std::expected AsyncHttpRequest::start(std::string_view url, m_client = {}; } - if (auto result = createClient(url, method, timeout_ms, clientAuth); !result) + if (auto result = createClient(url, method, timeout_ms, serverCert, clientAuth); !result) return std::unexpected(std::move(result).error()); m_requestBody = std::move(requestBody); diff --git a/src/asynchttprequest.h b/src/asynchttprequest.h index 19bf1a9..c1c6a30 100644 --- a/src/asynchttprequest.h +++ b/src/asynchttprequest.h @@ -31,6 +31,7 @@ public: std::expected createClient(std::string_view url, esp_http_client_method_t method = HTTP_METHOD_GET, int timeout_ms = 0, + std::string_view serverCert = {}, const std::optional &clientAuth = {}); std::expected deleteClient(); bool hasClient() const; @@ -39,6 +40,7 @@ public: esp_http_client_method_t method = HTTP_METHOD_GET, const std::map &requestHeaders = {}, std::string &&requestBody = {}, int timeout_ms = 0, + std::string_view serverCert = {}, const std::optional &clientAuth = {}); std::expected retry(std::optional url = std::nullopt, std::optional method = std::nullopt,