Log client ID/name in server desync logs
This commit is contained in:
@@ -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);
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user