From fee077d9f3b69b565fa598c497eadda7e96b9af4 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 27 Jan 2024 09:40:06 +0100 Subject: [PATCH] Fix: update server as offline when unexpected disconnect during refresh --- src/network/network_query.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/network/network_query.cpp b/src/network/network_query.cpp index f6671b066e..727fe697fc 100644 --- a/src/network/network_query.cpp +++ b/src/network/network_query.cpp @@ -24,6 +24,15 @@ NetworkRecvStatus QueryNetworkGameSocketHandler::CloseConnection(NetworkRecvStat 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::CheckConnection() /* 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; }