From 3892a1e201c0d70de2af82afff00278db3991a7f Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 14 Jan 2022 18:44:29 +0000 Subject: [PATCH] Log client ID/name in server desync logs --- src/crashlog.cpp | 3 +++ src/crashlog.h | 2 ++ src/network/network_server.cpp | 5 ++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 44f42d4bd0..f8686d1b63 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -511,6 +511,9 @@ char *CrashLog::FillDesyncCrashLog(char *buffer, const char *last, const DesyncE buffer += seprintf(buffer, last, "Last sync at: %i-%02i-%02i (%i, %i)", ymd.year, ymd.month + 1, ymd.day, _last_sync_date_fract, _last_sync_tick_skip_counter); } + if (info.client_id >= 0) { + buffer += seprintf(buffer, last, "Client #%d, \"%s\"\n", info.client_id, info.client_name != nullptr ? info.client_name : ""); + } buffer += seprintf(buffer, last, "\n"); buffer = this->LogOpenTTDVersion(buffer, last); diff --git a/src/crashlog.h b/src/crashlog.h index 86116c0055..176fe832f9 100644 --- a/src/crashlog.h +++ b/src/crashlog.h @@ -24,6 +24,8 @@ struct DesyncExtraInfo { }; Flags flags = DEIF_NONE; + const char *client_name = nullptr; + int client_id = -1; FILE **log_file = nullptr; ///< save unclosed log file handle here }; DECLARE_ENUM_AS_BIT_SET(DesyncExtraInfo::Flags) diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 68aced0372..06171b32e6 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1196,7 +1196,10 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_ERROR(Packet *p if (errorno == NETWORK_ERROR_DESYNC) { std::string server_desync_log; - CrashLog::DesyncCrashLog(&(this->desync_log), &server_desync_log, DesyncExtraInfo{}); + DesyncExtraInfo info; + info.client_name = client_name; + info.client_id = this->client_id; + CrashLog::DesyncCrashLog(&(this->desync_log), &server_desync_log, info); this->SendDesyncLog(server_desync_log); // decrease the sync frequency for this point onwards