diff options
| author | bunnei <bunneidev@gmail.com> | 2020-10-28 17:18:33 -0700 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2020-10-28 17:19:12 -0700 |
| commit | 529f48d980b59cc86f22ff22508a046d193c9554 (patch) | |
| tree | 00dfd9e9aa7ab449664202a8a1ed9e988cd9ceaf /src/web_service/web_backend.cpp | |
| parent | e5bdbbc88130a5d066b32e3584851a6a36b9ca3b (diff) | |
web_service: web_backend: Handle socket errors with GenericRequest.
- Fixes a shutdown crash when we try to submit telemetry if there is a service issue.
Diffstat (limited to 'src/web_service/web_backend.cpp')
| -rw-r--r-- | src/web_service/web_backend.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp index c56cd7c71f..f264b98a04 100644 --- a/src/web_service/web_backend.cpp +++ b/src/web_service/web_backend.cpp @@ -65,6 +65,17 @@ struct Client::Impl { if (cli == nullptr) { cli = std::make_unique<httplib::Client>(host.c_str()); } + + if (!cli->is_valid()) { + LOG_ERROR(WebService, "Client is invalid, skipping request!"); + return {}; + } + + if (!cli->is_socket_open()) { + LOG_ERROR(WebService, "Failed to open socket, skipping request!"); + return {}; + } + cli->set_connection_timeout(TIMEOUT_SECONDS); cli->set_read_timeout(TIMEOUT_SECONDS); cli->set_write_timeout(TIMEOUT_SECONDS); |
