* We want to disconnect from the host/clients. * @param close_admins Whether the admin sockets need to be closed as well. */
| 998 | * @param close_admins Whether the admin sockets need to be closed as well. |
| 999 | */ |
| 1000 | void NetworkDisconnect(bool close_admins) |
| 1001 | { |
| 1002 | if (_network_server) { |
| 1003 | for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { |
| 1004 | cs->SendShutdown(); |
| 1005 | cs->SendPackets(); |
| 1006 | } |
| 1007 | |
| 1008 | if (close_admins) { |
| 1009 | for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) { |
| 1010 | as->SendShutdown(); |
| 1011 | as->SendPackets(); |
| 1012 | } |
| 1013 | } |
| 1014 | } |
| 1015 | |
| 1016 | CloseWindowById(WC_NETWORK_STATUS_WINDOW, WN_NETWORK_STATUS_WINDOW_JOIN); |
| 1017 | |
| 1018 | NetworkClose(close_admins); |
| 1019 | |
| 1020 | /* Reinitialize the UDP stack, i.e. close all existing connections. */ |
| 1021 | NetworkUDPInitialize(); |
| 1022 | } |
| 1023 | |
| 1024 | /** |
| 1025 | * The setting server_game_type was updated; possibly we need to take some |
no test coverage detected