From 84bbe235e4aea9c987bd37dc9477bfbf6fb3f05e Mon Sep 17 00:00:00 2001 From: Rubidium Date: Mon, 25 Mar 2024 21:00:28 +0100 Subject: [PATCH] Fix: do not send chat to clients that have not authorized yet --- src/network/network_server.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index f63c79bd65..88698226d8 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1316,7 +1316,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co } else { /* Else find the client to send the message to */ for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { - if (cs->client_id == (ClientID)dest) { + if (cs->client_id == (ClientID)dest && cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) { cs->SendChat(action, from_id, false, msg, data); break; } @@ -1333,7 +1333,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co } } else { for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { - if (cs->client_id == from_id) { + if (cs->client_id == from_id && cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) { cs->SendChat(action, (ClientID)dest, true, msg, data); break; } @@ -1348,7 +1348,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co ci_to = nullptr; for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { ci = cs->GetInfo(); - if (ci != nullptr && ci->client_playas == (CompanyID)dest) { + if (ci != nullptr && ci->client_playas == (CompanyID)dest && cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) { cs->SendChat(action, from_id, false, msg, data); if (cs->client_id == from_id) show_local = false; ci_to = ci; // Remember a client that is in the company for company-name @@ -1380,7 +1380,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co NetworkTextMessage(action, GetDrawStringCompanyColour(ci_own->client_playas), true, name, msg, data); } else { for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { - if (cs->client_id == from_id) { + if (cs->client_id == from_id && cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) { cs->SendChat(action, ci_to->client_id, true, msg, data); } } @@ -1394,7 +1394,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co case DESTTYPE_BROADCAST: for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { - cs->SendChat(action, from_id, false, msg, data); + if (cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) cs->SendChat(action, from_id, false, msg, data); } NetworkAdminChat(action, desttype, from_id, msg, data, from_admin); @@ -1417,7 +1417,7 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co void NetworkServerSendExternalChat(const std::string &source, TextColour colour, const std::string &user, const std::string &msg) { for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { - cs->SendExternalChat(source, colour, user, msg); + if (cs->status >= ServerNetworkGameSocketHandler::STATUS_AUTHORIZED) cs->SendExternalChat(source, colour, user, msg); } NetworkTextMessage(NETWORK_ACTION_EXTERNAL_CHAT, colour, false, user, msg, 0, source); }