# HG changeset patch # User Patric Stout # Date 2024-01-27 10:23:25 # Node ID 8bbb27103bfb786493ab2551dfed74dc48fcd010 # Parent 628a6b420026d4286bf12256108eec0e42c757ab Fix: update server as offline when unexpected disconnect during refresh (#11891) diff --git a/src/network/network_query.cpp b/src/network/network_query.cpp --- a/src/network/network_query.cpp +++ b/src/network/network_query.cpp @@ -24,6 +24,15 @@ NetworkRecvStatus QueryNetworkGameSocket assert(status != NETWORK_RECV_STATUS_OKAY); assert(this->sock != INVALID_SOCKET); + /* Connection is closed, but we never received a packet. Must be offline. */ + NetworkGameList *item = NetworkGameListAddItem(this->connection_string); + if (item->refreshing) { + item->status = NGLS_OFFLINE; + item->refreshing = false; + + UpdateNetworkGameWindow(); + } + return status; } @@ -36,6 +45,7 @@ bool QueryNetworkGameSocketHandler::Chec /* If there was no response in 5 seconds, terminate the query. */ if (lag > std::chrono::seconds(5)) { + Debug(net, 0, "Timeout while waiting for response from {}", this->connection_string); this->CloseConnection(NETWORK_RECV_STATUS_CONNECTION_LOST); return false; }