summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-02-27 00:32:51 +0100
committerGitHub <noreply@github.com>2021-02-27 00:32:51 +0100
commitd068d61f3c412b4e146d5665c17bcbc01acffa1e (patch)
treef28fa3f961f55edc8c95398d96f30ca0dff33c49 /src/network
parentaf326753a95489459c509088010350d09b0af1f8 (diff)
downloadopenttd-d068d61f3c412b4e146d5665c17bcbc01acffa1e.tar.xz
Fix bddfcaef: don't tell twice that a client left because of a timeout etc (#8746)
SendError() notifies all clients of the disconnect. This calls CloseConnection() at the end, which also notified the clients of the disconnect. Really no need to do it twice. The status NETWORK_RECV_STATUS_SERVER_ERROR is only set by SendError(), so in case that is the status, don't let ClientConnection() send another notification.
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network_server.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index 6ae8e7cdc..e03a60465 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -265,7 +265,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::CloseConnection(NetworkRecvSta
*/
if (this->sock == INVALID_SOCKET) return status;
- if (status != NETWORK_RECV_STATUS_CONN_LOST && !this->HasClientQuit() && this->status >= STATUS_AUTHORIZED) {
+ if (status != NETWORK_RECV_STATUS_CONN_LOST && status != NETWORK_RECV_STATUS_SERVER_ERROR && !this->HasClientQuit() && this->status >= STATUS_AUTHORIZED) {
/* We did not receive a leave message from this client... */
char client_name[NETWORK_CLIENT_NAME_LENGTH];