Include client IDs in network server command logs

This commit is contained in:
Jonathan G Rennison
2022-10-15 21:11:36 +01:00
parent 7e452d6341
commit dd16df976c
4 changed files with 15 additions and 5 deletions

View File

@@ -212,6 +212,7 @@ void NetworkSyncCommandQueue(NetworkClientSocket *cs)
*/
void NetworkExecuteLocalCommandQueue()
{
extern ClientID _cmd_client_id;
assert(IsLocalCompany());
CommandQueue &queue = (_network_server ? _local_execution_queue : ClientNetworkGameSocketHandler::my_client->incoming_queue);
@@ -230,6 +231,7 @@ void NetworkExecuteLocalCommandQueue()
/* We can execute this command */
_current_company = cp->company;
_cmd_client_id = cp->client_id;
cp->cmd |= CMD_NETWORK_COMMAND;
DoCommandP(cp, cp->my_cmd);
@@ -238,6 +240,7 @@ void NetworkExecuteLocalCommandQueue()
/* Local company may have changed, so we should not restore the old value */
_current_company = _local_company;
_cmd_client_id = INVALID_CLIENT_ID;
}
/**

View File

@@ -113,10 +113,11 @@ void UpdateNetworkGameWindow();
*/
struct CommandPacket : CommandContainer {
/** Make sure the pointer is nullptr. */
CommandPacket() : next(nullptr), company(INVALID_COMPANY), frame(0), my_cmd(false) {}
CommandPacket() : next(nullptr), frame(0), client_id(INVALID_CLIENT_ID), company(INVALID_COMPANY), my_cmd(false) {}
CommandPacket *next; ///< the next command packet (if in queue)
CompanyID company; ///< company that is executing the command
uint32 frame; ///< the frame in which this packet is executed
ClientID client_id; ///< originating client ID (or INVALID_CLIENT_ID if not specified)
CompanyID company; ///< company that is executing the command
bool my_cmd; ///< did the command originate from "me"
};

View File

@@ -1157,6 +1157,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_COMMAND(Packet
}
if (GetCommandFlags(cp.cmd) & CMD_CLIENT_ID) cp.p2 = this->client_id;
cp.client_id = this->client_id;
this->incoming_queue.Append(std::move(cp));
return NETWORK_RECV_STATUS_OKAY;