diff options
author | Rubidium <rubidium@openttd.org> | 2021-07-23 22:36:17 +0200 |
---|---|---|
committer | rubidium42 <rubidium42@users.noreply.github.com> | 2021-09-01 22:40:44 +0200 |
commit | 92559e6f3aa1015abbb453f43a51da13f8e5bf87 (patch) | |
tree | 752b4e96084e064d7ad2a11954c2878f05c6a8b0 /src/network | |
parent | 63116bd59f03182eadc529acee333a753e2046c4 (diff) | |
download | openttd-92559e6f3aa1015abbb453f43a51da13f8e5bf87.tar.xz |
Fix #9388: thread unsafe use of NetworkAdminConsole/IConsolePrint
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/network_admin.cpp | 7 |
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; } |