From 162e70a9eabd52fddeffcf5e539e5e251b5d9333 Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 25 Nov 2025 20:43:35 -0500 Subject: [PATCH] drop packet if window is full on server side --- libi2pd_client/UDPTunnel.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libi2pd_client/UDPTunnel.cpp b/libi2pd_client/UDPTunnel.cpp index dcdba14b..ba2c3275 100644 --- a/libi2pd_client/UDPTunnel.cpp +++ b/libi2pd_client/UDPTunnel.cpp @@ -240,6 +240,12 @@ namespace client { if(!ecode) { + if (!m_UnackedDatagrams.empty () && m_NextSendPacketNum > m_UnackedDatagrams.front ().first + I2P_UDP_MAX_NUM_UNACKED_DATAGRAMS) + { + // window is full, drop packet + Receive (); + return; + } LogPrint(eLogDebug, "UDPSession: Forward ", len, "B from ", FromEndpoint); auto ts = i2p::util::GetMillisecondsSinceEpoch(); auto session = GetDatagramSession ();