mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-04 00:36:14 +00:00
UpdateCheck: Try all URLs
This commit is contained in:
parent
2a588954be
commit
fca5bbcec9
@ -99,25 +99,31 @@ void Application::CheckForUpdates() {
|
|||||||
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Starting);
|
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Starting);
|
||||||
// checks current version against latest version
|
// checks current version against latest version
|
||||||
std::regex VersionRegex { R"(\d+\.\d+\.\d+\n*)" };
|
std::regex VersionRegex { R"(\d+\.\d+\.\d+\n*)" };
|
||||||
auto Response = Http::GET(GetBackendUrlsInOrder().at(0), 443, "/v/s");
|
for (const auto& url : GetBackendUrlsInOrder()) {
|
||||||
bool Matches = std::regex_match(Response, VersionRegex);
|
auto Response = Http::GET(GetBackendUrlsInOrder().at(0), 443, "/v/s");
|
||||||
if (Matches) {
|
bool Matches = std::regex_match(Response, VersionRegex);
|
||||||
auto MyVersion = ServerVersion();
|
if (Matches) {
|
||||||
auto RemoteVersion = Version(VersionStrToInts(Response));
|
auto MyVersion = ServerVersion();
|
||||||
if (IsOutdated(MyVersion, RemoteVersion)) {
|
auto RemoteVersion = Version(VersionStrToInts(Response));
|
||||||
std::string RealVersionString = RemoteVersion.AsString();
|
if (IsOutdated(MyVersion, RemoteVersion)) {
|
||||||
beammp_warn(std::string(ANSI_YELLOW_BOLD) + "NEW VERSION OUT! There's a new version (v" + RealVersionString + ") of the BeamMP-Server available! For more info visit https://wiki.beammp.com/en/home/server-maintenance#updating-the-server." + std::string(ANSI_RESET));
|
std::string RealVersionString = RemoteVersion.AsString();
|
||||||
|
beammp_warn(std::string(ANSI_YELLOW_BOLD) + "NEW VERSION OUT! There's a new version (v" + RealVersionString + ") of the BeamMP-Server available! For more info visit https://wiki.beammp.com/en/home/server-maintenance#updating-the-server." + std::string(ANSI_RESET));
|
||||||
|
} else {
|
||||||
|
beammp_info("Server up-to-date!");
|
||||||
|
}
|
||||||
|
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Good);
|
||||||
|
break;
|
||||||
} else {
|
} else {
|
||||||
beammp_info("Server up-to-date!");
|
beammp_debug("Failed to fetch version from: " + url);
|
||||||
|
beammp_trace("got " + Response);
|
||||||
|
auto Lock = Sentry.CreateExclusiveContext();
|
||||||
|
Sentry.SetContext("get-response", { { "response", Response } });
|
||||||
|
Sentry.LogError("failed to get server version", _file_basename, _line);
|
||||||
|
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Bad);
|
||||||
}
|
}
|
||||||
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Good);
|
}
|
||||||
} else {
|
if (Application::GetSubsystemStatuses().at("UpdateCheck") == Application::Status::Bad) {
|
||||||
beammp_warn("Unable to fetch version from backend.");
|
beammp_warn("Unable to fetch version info from backend.");
|
||||||
beammp_trace("got " + Response);
|
|
||||||
auto Lock = Sentry.CreateExclusiveContext();
|
|
||||||
Sentry.SetContext("get-response", { { "response", Response } });
|
|
||||||
Sentry.LogError("failed to get server version", _file_basename, _line);
|
|
||||||
Application::SetSubsystemStatus("UpdateCheck", Application::Status::Bad);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user