From 64d97c30632a83ddf93d37b37b35c2ddd354aff5 Mon Sep 17 00:00:00 2001 From: SaltySnail Date: Sat, 8 Aug 2026 23:13:59 +0200 Subject: [PATCH] Made http get and post try twice --- src/Http.cpp | 22 ++++++++++++++++++++++ src/TConsole.cpp | 4 ---- src/THeartbeatThread.cpp | 4 ---- src/TNetwork.cpp | 4 ---- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Http.cpp b/src/Http.cpp index 1700c12..5191424 100644 --- a/src/Http.cpp +++ b/src/Http.cpp @@ -146,7 +146,18 @@ std::string Http::GET(std::string url, unsigned int* status, const bool& redirec if (res != CURLE_OK) { beammp_error("GET to " + url + " failed: " + std::string(curl_easy_strerror(res))); beammp_error("Curl error: " + std::string(errbuf)); + if (!redirect) { + return Http::ErrorString; + } RegionHandler::TopLevelDomainFailed(); + url = RegionHandler::RedirectURL(url); + curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + beammp_error("GET to " + url + " failed: " + std::string(curl_easy_strerror(res))); + beammp_error("Curl error: " + std::string(errbuf)); + return Http::ErrorString; + } return Http::ErrorString; } @@ -203,7 +214,18 @@ std::string Http::POST(std::string url, const std::string& body, const std::stri if (res != CURLE_OK) { beammp_error("POST to " + url + " failed: " + std::string(curl_easy_strerror(res))); beammp_error("Curl error: " + std::string(errbuf)); + if (!redirect) { + return Http::ErrorString; + } RegionHandler::TopLevelDomainFailed(); + url = RegionHandler::RedirectURL(url); + curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + beammp_error("GET to " + url + " failed: " + std::string(curl_easy_strerror(res))); + beammp_error("Curl error: " + std::string(errbuf)); + return Http::ErrorString; + } return Http::ErrorString; } diff --git a/src/TConsole.cpp b/src/TConsole.cpp index a856142..bfe5523 100644 --- a/src/TConsole.cpp +++ b/src/TConsole.cpp @@ -298,10 +298,6 @@ void TConsole::Command_NetTest(const std::string& cmd, const std::vector TNetwork::Authentication(TConnection&& RawConnection) { unsigned int ResponseCode = 0; AuthResStr = Http::POST(Application::GetBackendUrlForAuth() + Target, AuthReq.dump(), "application/json", &ResponseCode); - if (AuthResStr == Http::ErrorString || ResponseCode != 200) { - RegionHandler::TopLevelDomainFailed(); - AuthResStr = Http::POST(Application::GetBackendUrlForAuth() + Target, AuthReq.dump(), "application/json", &ResponseCode); - } } catch (const std::exception& e) { beammp_debugf("Invalid json sent by client, kicking: {}", e.what());