diff --git a/src/network/core/tcp_game.cpp b/src/network/core/tcp_game.cpp index 43f547e662..4ecfe7347c 100644 --- a/src/network/core/tcp_game.cpp +++ b/src/network/core/tcp_game.cpp @@ -68,6 +68,8 @@ NetworkRecvStatus NetworkGameSocketHandler::HandlePacket(Packet *p) this->last_packet = std::chrono::steady_clock::now(); + DEBUG(net, 3, "[tcp/game] received packet type %d from client %d, %s", type, this->client_id, this->GetDebugInfo().c_str()); + switch (this->HasClientQuit() ? PACKET_END : type) { case PACKET_SERVER_FULL: return this->Receive_SERVER_FULL(p); case PACKET_SERVER_BANNED: return this->Receive_SERVER_BANNED(p); @@ -207,3 +209,5 @@ NetworkRecvStatus NetworkGameSocketHandler::Receive_SERVER_MOVE(Packet *p) { ret NetworkRecvStatus NetworkGameSocketHandler::Receive_CLIENT_MOVE(Packet *p) { return this->ReceiveInvalidPacket(PACKET_CLIENT_MOVE); } NetworkRecvStatus NetworkGameSocketHandler::Receive_SERVER_COMPANY_UPDATE(Packet *p) { return this->ReceiveInvalidPacket(PACKET_SERVER_COMPANY_UPDATE); } NetworkRecvStatus NetworkGameSocketHandler::Receive_SERVER_CONFIG_UPDATE(Packet *p) { return this->ReceiveInvalidPacket(PACKET_SERVER_CONFIG_UPDATE); } + +std::string NetworkGameSocketHandler::GetDebugInfo() const { return ""; } diff --git a/src/network/core/tcp_game.h b/src/network/core/tcp_game.h index cba35489ba..aa0925d8f1 100644 --- a/src/network/core/tcp_game.h +++ b/src/network/core/tcp_game.h @@ -581,6 +581,8 @@ public: const char *ReceiveCommand(Packet *p, CommandPacket *cp); void SendCommand(Packet *p, const CommandPacket *cp); + + virtual std::string GetDebugInfo() const; }; #endif /* NETWORK_CORE_TCP_GAME_H */ diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 290090349b..05c1f6bf49 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -1359,6 +1359,11 @@ void ClientNetworkGameSocketHandler::CheckConnection() ShowErrorMessage(STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION, STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION, WL_INFO); } +std::string ClientNetworkGameSocketHandler::GetDebugInfo() const +{ + return stdstr_fmt("status: %d", this->status); +} + /** Is called after a client is connected to the server */ void NetworkClient_Connected() diff --git a/src/network/network_client.h b/src/network/network_client.h index 003525885e..f5ecded70b 100644 --- a/src/network/network_client.h +++ b/src/network/network_client.h @@ -86,6 +86,8 @@ public: NetworkRecvStatus CloseConnection(NetworkRecvStatus status) override; void ClientError(NetworkRecvStatus res); + std::string GetDebugInfo() const override; + static NetworkRecvStatus SendCompanyInformationQuery(); static NetworkRecvStatus SendJoin(); diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index a76a264ecc..0064d048e1 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -132,7 +132,7 @@ struct PacketWriter : SaveFilter { for (auto &p : this->packets) { if (p->GetPacketType() == PACKET_SERVER_MAP_DONE) last_packet = true; socket->SendPacket(std::move(p)); - + } this->prepend_packets.clear(); this->packets.clear(); @@ -1588,6 +1588,11 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_MOVE(Packet *p) return NETWORK_RECV_STATUS_OKAY; } +std::string ServerNetworkGameSocketHandler::GetDebugInfo() const +{ + return stdstr_fmt("status: %d", this->status); +} + /** * Package some generic company information into a packet. * @param p The packet that will contain the data. diff --git a/src/network/network_server.h b/src/network/network_server.h index 8c9ba72944..618c0d4793 100644 --- a/src/network/network_server.h +++ b/src/network/network_server.h @@ -113,6 +113,8 @@ public: NetworkRecvStatus SendConfigUpdate(); NetworkRecvStatus SendSettingsAccessUpdate(bool ok); + std::string GetDebugInfo() const override; + static void Send(); static void AcceptConnection(SOCKET s, const NetworkAddress &address); static bool AllowConnection();