From f54f2c1601b7fb23e2bd3cd576f18b0f5d2fc3b3 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 31 Aug 2024 17:30:37 +0200 Subject: [PATCH] Fix RTT set before value is available --- src/network/mtp/impl.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/network/mtp/impl.cpp b/src/network/mtp/impl.cpp index 483765ea4..22c3f9804 100644 --- a/src/network/mtp/impl.cpp +++ b/src/network/mtp/impl.cpp @@ -995,13 +995,15 @@ bool UDPPeer::isTimedOut(float timeout, std::string &reason) void UDPPeer::reportRTT(float rtt) { - if (rtt < 0.0) { + if (rtt < 0) return; - } RTTStatistics(rtt,"rudp",MAX_RELIABLE_WINDOW_SIZE*10); // use this value to decide the resend timeout - float timeout = getStat(AVG_RTT) * RESEND_TIMEOUT_FACTOR; + const float rtt_stat = getStat(AVG_RTT); + if (rtt_stat < 0) + return; + float timeout = rtt_stat * RESEND_TIMEOUT_FACTOR; if (timeout < RESEND_TIMEOUT_MIN) timeout = RESEND_TIMEOUT_MIN; if (timeout > RESEND_TIMEOUT_MAX)