From f816094c488e9a22492f9f280596778142fe690d Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 9 Sep 2026 06:02:59 +0200 Subject: [PATCH] Fix `ENet` network driver stats from all peers --- .../Engine/Networking/Drivers/ENetDriver.cpp | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Networking/Drivers/ENetDriver.cpp b/Source/Engine/Networking/Drivers/ENetDriver.cpp index c5dc00681..6d4bf55a9 100644 --- a/Source/Engine/Networking/Drivers/ENetDriver.cpp +++ b/Source/Engine/Networking/Drivers/ENetDriver.cpp @@ -275,7 +275,28 @@ void ENetDriver::SendMessage(const NetworkChannelType channelType, const Network NetworkDriverStats ENetDriver::GetStats() { - return GetStats({ 0 }); + NetworkDriverStats stats; + if (_host) + { + // Get host stats + stats.TotalDataSent = _host->totalSentData; + stats.TotalDataReceived = _host->totalReceivedData; + int32 peers = 0; + for (ENetPeer* peer = _host->peers; peer < &_host->peers[_host->peerCount]; peer++) + { + if (peer->state != ENET_PEER_STATE_CONNECTED) + continue; + stats.RTT += (float)peer->roundTripTime; + peers++; + } + if (peers > 0) + { + stats.RTT /= (float)peers; + } + } + else + stats = GetStats({}); + return stats; } NetworkDriverStats ENetDriver::GetStats(NetworkConnection target) @@ -285,9 +306,10 @@ NetworkDriverStats ENetDriver::GetStats(NetworkConnection target) if (!peer) _peerMap.TryGet(target.ConnectionId, peer); if (!peer && _host && _host->peerCount > 0) - peer = _host->peers; + peer = _host->peers; // Get the first peer if (peer) { + // Get peer stats stats.RTT = (float)peer->roundTripTime; stats.TotalDataSent = peer->totalDataSent; stats.TotalDataReceived = peer->totalDataReceived;