summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorRubidium <rubidium@openttd.org>2021-07-23 22:36:17 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-09-01 22:40:44 +0200
commit92559e6f3aa1015abbb453f43a51da13f8e5bf87 (patch)
tree752b4e96084e064d7ad2a11954c2878f05c6a8b0 /src/network
parent63116bd59f03182eadc529acee333a753e2046c4 (diff)
downloadopenttd-92559e6f3aa1015abbb453f43a51da13f8e5bf87.tar.xz
Fix #9388: thread unsafe use of NetworkAdminConsole/IConsolePrint
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network_admin.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/network/network_admin.cpp b/src/network/network_admin.cpp
index 8ccb6361d..811daaced 100644
--- a/src/network/network_admin.cpp
+++ b/src/network/network_admin.cpp
@@ -76,6 +76,11 @@ ServerNetworkAdminSocketHandler::~ServerNetworkAdminSocketHandler()
_network_admins_connected--;
Debug(net, 3, "[admin] '{}' ({}) has disconnected", this->admin_name, this->admin_version);
if (_redirect_console_to_admin == this->index) _redirect_console_to_admin = INVALID_ADMIN_ID;
+
+ if (this->update_frequency[ADMIN_UPDATE_CONSOLE] & ADMIN_FREQUENCY_AUTOMATIC) {
+ this->update_frequency[ADMIN_UPDATE_CONSOLE] = (AdminUpdateFrequency)0;
+ DebugReconsiderSendRemoteMessages();
+ }
}
/**
@@ -688,6 +693,8 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_UPDATE_FREQUENC
this->update_frequency[type] = freq;
+ if (type == ADMIN_UPDATE_CONSOLE) DebugReconsiderSendRemoteMessages();
+
return NETWORK_RECV_STATUS_OKAY;
}