Sentry: report any issue with backend.beammp or auth.beammp responses

This commit is contained in:
Lion Kortlepel
2021-08-08 21:01:56 +02:00
committed by Lion
parent e6c97de3c4
commit 5684134894
5 changed files with 32 additions and 2 deletions

View File

@@ -25,7 +25,22 @@ void TSentry::Log(sentry_level_t level, const std::string& logger, const std::st
if (!mValid) {
return;
}
sentry_capture_event(sentry_value_new_message_event(level, logger.c_str(), text.c_str()));
auto Msg = sentry_value_new_message_event(level, logger.c_str(), text.c_str());
sentry_capture_event(Msg);
}
void TSentry::AddExtra(const std::string& key, const sentry_value_t& value) {
if (!mValid) {
return;
}
sentry_set_extra(key.c_str(), value);
}
void TSentry::AddExtra(const std::string& key, const std::string& value) {
if (!mValid) {
return;
}
AddExtra(key.c_str(), sentry_value_new_string(value.c_str()));
}
void TSentry::LogException(const std::exception& e, const std::string& file, const std::string& line) {

View File

@@ -45,6 +45,12 @@ void THeartbeatThread::operator()() {
if (T.substr(0, 2) != "20") {
warn("Backend system refused server! Server might not show in the public list");
debug("server returned \"" + T + "\"");
if (T.size() > std::string("YOU_SHALL_NOT_PASS").size()
&& Application::Settings.Key.size() == 36) {
Sentry.AddExtra("response", T);
Sentry.AddExtra("body", Body);
Sentry.Log(SENTRY_LEVEL_ERROR, "default", "wrong backend response format");
}
isAuth = false;
}
}

View File

@@ -280,8 +280,10 @@ void TNetwork::Authentication(SOCKET TCPSock) {
return;
}
auto RequestString = R"({"key":")" + Rc + "\"}";
if (!Rc.empty()) {
Rc = Http::POST(Application::GetBackendUrlForAuth(), "/pkToUser", {}, R"({"key":")" + Rc + "\"}", true);
Rc = Http::POST(Application::GetBackendUrlForAuth(), "/pkToUser", {}, RequestString, true);
}
json::Document AuthResponse;
@@ -294,6 +296,9 @@ void TNetwork::Authentication(SOCKET TCPSock) {
if (!AuthResponse.IsObject()) {
ClientKick(*Client, "Backend returned invalid auth response format.");
error("Backend returned invalid auth response format. This should never happen.");
Sentry.AddExtra("response", Rc);
Sentry.AddExtra("key", RequestString);
Sentry.Log(SENTRY_LEVEL_ERROR, "default", "wrong backend response format");
return;
}