summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/web_service/web_backend.cpp2
-rw-r--r--src/web_service/web_backend.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp
index 3a3f44dc2..5df4df5eb 100644
--- a/src/web_service/web_backend.cpp
+++ b/src/web_service/web_backend.cpp
@@ -24,6 +24,7 @@ Client::JWTCache Client::jwt_cache{};
Client::Client(const std::string& host, const std::string& username, const std::string& token)
: host(host), username(username), token(token) {
+ std::lock_guard<std::mutex> lock(jwt_cache.mutex);
if (username == jwt_cache.username && token == jwt_cache.token) {
jwt = jwt_cache.jwt;
}
@@ -116,6 +117,7 @@ void Client::UpdateJWT() {
if (result.result_code != Common::WebResult::Code::Success) {
LOG_ERROR(WebService, "UpdateJWT failed");
} else {
+ std::lock_guard<std::mutex> lock(jwt_cache.mutex);
jwt_cache.username = username;
jwt_cache.token = token;
jwt_cache.jwt = jwt = result.returned_data;
diff --git a/src/web_service/web_backend.h b/src/web_service/web_backend.h
index 549bcce29..d75fbcc15 100644
--- a/src/web_service/web_backend.h
+++ b/src/web_service/web_backend.h
@@ -5,7 +5,7 @@
#pragma once
#include <functional>
-#include <future>
+#include <mutex>
#include <string>
#include <tuple>
#include <httplib.h>
@@ -81,6 +81,7 @@ private:
std::unique_ptr<httplib::Client> cli;
struct JWTCache {
+ std::mutex mutex;
std::string username;
std::string token;
std::string jwt;