Skip to content

Commit aa5bede

Browse files
kenmcgaughKen McGaugh
authored andcommitted
Allow for optionally disabling SSL verification.
Signed-off-by: Ken McGaugh <[email protected]>
1 parent 8cde0df commit aa5bede

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

include/xstudio/http_client/http_client_actor.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ namespace http_client {
1515
caf::actor_config &cfg,
1616
time_t connection_timeout = CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND,
1717
time_t read_timeout = CPPHTTPLIB_READ_TIMEOUT_SECOND,
18-
time_t write_timeout = CPPHTTPLIB_WRITE_TIMEOUT_SECOND);
18+
time_t write_timeout = CPPHTTPLIB_WRITE_TIMEOUT_SECOND,
19+
bool ssl_verify = true);
1920
~HTTPClientActor() override = default;
2021

2122
const char *name() const override { return NAME.c_str(); }
@@ -30,6 +31,7 @@ namespace http_client {
3031
time_t connection_timeout_;
3132
time_t read_timeout_;
3233
time_t write_timeout_;
34+
bool ssl_verify_;
3335
};
3436

3537
class HTTPWorker : public caf::event_based_actor {
@@ -38,7 +40,8 @@ namespace http_client {
3840
caf::actor_config &cfg,
3941
time_t connection_timeout = CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND,
4042
time_t read_timeout = CPPHTTPLIB_READ_TIMEOUT_SECOND,
41-
time_t write_timeout = CPPHTTPLIB_WRITE_TIMEOUT_SECOND);
43+
time_t write_timeout = CPPHTTPLIB_WRITE_TIMEOUT_SECOND,
44+
bool ssl_verify = true);
4245
~HTTPWorker() override = default;
4346

4447
const char *name() const override { return NAME.c_str(); }

src/http_client/src/http_client_actor.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ HTTPWorker::HTTPWorker(
6464
caf::actor_config &cfg,
6565
time_t connection_timeout,
6666
time_t read_timeout,
67-
time_t write_timeout)
67+
time_t write_timeout,
68+
bool ssl_verify)
6869
: caf::event_based_actor(cfg) {
6970
behavior_.assign(
7071
[=](xstudio::broadcast::broadcast_down_atom, const caf::actor_addr &) {},
@@ -81,6 +82,7 @@ HTTPWorker::HTTPWorker(
8182
cli.set_connection_timeout(connection_timeout, 0);
8283
cli.set_read_timeout(read_timeout, 0);
8384
cli.set_write_timeout(write_timeout, 0);
85+
cli.enable_server_certificate_verification(ssl_verify);
8486
auto res = [&]() -> httplib::Result {
8587
if (content_type.empty())
8688
return cli.Delete(path.c_str(), headers);
@@ -135,6 +137,7 @@ HTTPWorker::HTTPWorker(
135137
cli.set_connection_timeout(connection_timeout, 0);
136138
cli.set_read_timeout(read_timeout, 0);
137139
cli.set_write_timeout(write_timeout, 0);
140+
cli.enable_server_certificate_verification(ssl_verify);
138141

139142
// cli.set_logger([](const auto& req, const auto& res) {
140143
// spdlog::warn("{}", req.);
@@ -200,6 +203,7 @@ HTTPWorker::HTTPWorker(
200203
cli.set_connection_timeout(connection_timeout, 0);
201204
cli.set_read_timeout(read_timeout, 0);
202205
cli.set_write_timeout(write_timeout, 0);
206+
cli.enable_server_certificate_verification(ssl_verify);
203207
auto res = [&]() -> httplib::Result {
204208
if (content_type.empty())
205209
return cli.Post(path.c_str(), headers, params);
@@ -257,6 +261,7 @@ HTTPWorker::HTTPWorker(
257261
cli.set_connection_timeout(connection_timeout, 0);
258262
cli.set_read_timeout(read_timeout, 0);
259263
cli.set_write_timeout(write_timeout, 0);
264+
cli.enable_server_certificate_verification(ssl_verify);
260265

261266
auto res = [&]() -> httplib::Result {
262267
if (content_type.empty())
@@ -311,11 +316,13 @@ HTTPClientActor::HTTPClientActor(
311316
caf::actor_config &cfg,
312317
time_t connection_timeout,
313318
time_t read_timeout,
314-
time_t write_timeout)
319+
time_t write_timeout,
320+
bool ssl_verify)
315321
: caf::event_based_actor(cfg),
316322
connection_timeout_(connection_timeout),
317323
read_timeout_(read_timeout),
318-
write_timeout_(write_timeout) {
324+
write_timeout_(write_timeout),
325+
ssl_verify_(ssl_verify) {
319326
init();
320327
}
321328

@@ -339,7 +346,7 @@ void HTTPClientActor::init() {
339346
worker_count,
340347
[&] {
341348
return system().spawn<HTTPWorker>(
342-
connection_timeout_, read_timeout_, write_timeout_);
349+
connection_timeout_, read_timeout_, write_timeout_, ssl_verify_);
343350
},
344351
caf::actor_pool::round_robin());
345352

0 commit comments

Comments
 (0)