Add server cert option

This commit is contained in:
2024-05-27 19:34:51 +02:00
parent 4dc845147e
commit 4a319bdcd2
2 changed files with 11 additions and 1 deletions

View File

@ -140,6 +140,7 @@ bool AsyncHttpRequest::taskRunning() const
std::expected<void, std::string> AsyncHttpRequest::createClient(std::string_view url, esp_http_client_method_t method,
int timeout_ms,
std::string_view serverCert,
const std::optional<cpputils::ClientAuth> &clientAuth)
{
if (m_client)
@ -160,6 +161,12 @@ std::expected<void, std::string> 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<void, std::string> AsyncHttpRequest::start(std::string_view url,
esp_http_client_method_t method,
const std::map<std::string, std::string> &requestHeaders,
std::string &&requestBody, int timeout_ms,
std::string_view serverCert,
const std::optional<cpputils::ClientAuth> &clientAuth)
{
if (!m_taskHandle)
@ -229,7 +237,7 @@ std::expected<void, std::string> 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);

View File

@ -31,6 +31,7 @@ public:
std::expected<void, std::string> 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<cpputils::ClientAuth> &clientAuth = {});
std::expected<void, std::string> deleteClient();
bool hasClient() const;
@ -39,6 +40,7 @@ public:
esp_http_client_method_t method = HTTP_METHOD_GET,
const std::map<std::string, std::string> &requestHeaders = {},
std::string &&requestBody = {}, int timeout_ms = 0,
std::string_view serverCert = {},
const std::optional<cpputils::ClientAuth> &clientAuth = {});
std::expected<void, std::string> retry(std::optional<std::string_view> url = std::nullopt,
std::optional<esp_http_client_method_t> method = std::nullopt,