From 07ae277f9e2a9836d21242d1506ae2583f15e442 Mon Sep 17 00:00:00 2001 From: peri4 Date: Fri, 6 Mar 2026 20:31:37 +0300 Subject: [PATCH] add PIHTTPClient::ignoreSSLErrors() --- libs/http_client/pihttpclient.cpp | 7 +++++++ libs/main/http_client/pihttpclient.h | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/libs/http_client/pihttpclient.cpp b/libs/http_client/pihttpclient.cpp index ee07034c..b6d3aa52 100644 --- a/libs/http_client/pihttpclient.cpp +++ b/libs/http_client/pihttpclient.cpp @@ -93,6 +93,7 @@ bool PIHTTPClient::init() { // curl_easy_setopt(PRIVATE->handle, CURLOPT_VERBOSE, 1L); // curl_easy_setopt(PRIVATE->handle, CURLOPT_ERRORBUFFER, buffer_error.data()); curl_easy_setopt(PRIVATE->handle, CURLOPT_SSL_VERIFYPEER, 0L); + curl_easy_setopt(PRIVATE->handle, CURLOPT_SSL_VERIFYHOST, ignore_ssl_errors ? 0L : 1L); if (request.body().isNotEmpty()) { curl_easy_setopt(PRIVATE->handle, CURLOPT_UPLOAD, 1L); curl_easy_setopt(PRIVATE->handle, CURLOPT_INFILESIZE_LARGE, static_cast(request.body().size())); @@ -273,6 +274,12 @@ PIHTTPClient * PIHTTPClient::onAbort(std::functionregisterClient(this); } diff --git a/libs/main/http_client/pihttpclient.h b/libs/main/http_client/pihttpclient.h index 99d14eee..24512c50 100644 --- a/libs/main/http_client/pihttpclient.h +++ b/libs/main/http_client/pihttpclient.h @@ -48,6 +48,10 @@ public: //! \~russian Устанавливает callback для прерывания запроса (с ответом о прерывании). PIHTTPClient * onAbort(std::function f); + //! \~english Setup request to ignore SSL errors. Need to call before \a start(). + //! \~russian Устанавливает игнорирование ошибок SSL. Необходимо вызывать перед \a start(). + PIHTTPClient * ignoreSSLErrors(); + //! \~english Starts the HTTP request execution. //! \~russian Начинает выполнение HTTP-запроса. void start(); @@ -83,6 +87,7 @@ private: PIByteArray buffer_out; PIHTTP::MessageMutable request, reply; std::atomic_bool is_cancel = {false}; + bool ignore_ssl_errors = false; ssize_t read_pos = 0; std::function on_finish, on_error, on_abort; };