diff --git a/src/Http.cpp b/src/Http.cpp index 19d73d2..03a31e1 100644 --- a/src/Http.cpp +++ b/src/Http.cpp @@ -84,7 +84,7 @@ std::string Http::POST(const std::string& url, const std::string& body, const st list = curl_slist_append(list, ("Content-Type: " + ContentType).c_str()); for (auto [header, value] : headers) { - list = curl_slist_append(list, (header + value).c_str()); + list = curl_slist_append(list, (header + ": " + value).c_str()); } curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list); diff --git a/src/THeartbeatThread.cpp b/src/THeartbeatThread.cpp index 34e0346..36cdde1 100644 --- a/src/THeartbeatThread.cpp +++ b/src/THeartbeatThread.cpp @@ -24,12 +24,8 @@ #include "Http.h" // #include "SocketIO.h" #include -#include -#include #include -namespace json = rapidjson; - void THeartbeatThread::operator()() { RegisterThread("Heartbeat"); std::string Body; @@ -63,7 +59,7 @@ void THeartbeatThread::operator()() { auto Target = "/heartbeat"; unsigned int ResponseCode = 0; - json::Document Doc; + nlohmann::json Doc; bool Ok = false; for (const auto& Url : Application::GetBackendUrlsInOrder()) { T = Http::POST(Url + Target, Body, "application/json", &ResponseCode, { { "api-v", "2" } }); @@ -72,8 +68,8 @@ void THeartbeatThread::operator()() { beammp_debug("Backend response was: `" + T + "`"); } - Doc.Parse(T.data(), T.size()); - if (Doc.HasParseError() || !Doc.IsObject()) { + Doc = nlohmann::json::parse(T, nullptr, false); + if (Doc.is_discarded() || !Doc.is_object()) { if (!Application::Settings.getAsBool(Settings::Key::General_Private)) { beammp_trace("Backend response failed to parse as valid json"); } @@ -94,18 +90,18 @@ void THeartbeatThread::operator()() { const auto MessageKey = "msg"; if (Ok) { - if (Doc.HasMember(StatusKey) && Doc[StatusKey].IsString()) { - Status = Doc[StatusKey].GetString(); + if (Doc.contains(StatusKey) && Doc[StatusKey].is_string()) { + Status = Doc[StatusKey]; } else { Ok = false; } - if (Doc.HasMember(CodeKey) && Doc[CodeKey].IsString()) { - Code = Doc[CodeKey].GetString(); + if (Doc.contains(CodeKey) && Doc[CodeKey].is_string()) { + Code = Doc[CodeKey]; } else { Ok = false; } - if (Doc.HasMember(MessageKey) && Doc[MessageKey].IsString()) { - Message = Doc[MessageKey].GetString(); + if (Doc.contains(MessageKey) && Doc[MessageKey].is_string()) { + Message = Doc[MessageKey]; } else { Ok = false; } diff --git a/src/TResourceManager.cpp b/src/TResourceManager.cpp index e9f01a8..7a3639b 100644 --- a/src/TResourceManager.cpp +++ b/src/TResourceManager.cpp @@ -121,6 +121,8 @@ void TResourceManager::RefreshFiles() { } EVP_MD_CTX_free(mdctx); + stream.close(); + std::string result; for (size_t i = 0; i < sha256_len; i++) { result += fmt::format("{:02x}", sha256_value[i]);