diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index d8c31545..fd79226d 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -2004,7 +2004,7 @@ namespace transport if (*ranges > lastPacketNum) break; lastPacketNum -= *ranges; ranges++; // nacks if (*ranges > lastPacketNum + 1) break; - firstPacketNum = lastPacketNum - *ranges + 1; ranges++; // acks + firstPacketNum = lastPacketNum + 1 - *ranges; ranges++; // acks len -= 2; HandleAckRange (firstPacketNum, lastPacketNum, 0); } diff --git a/libi2pd/Streaming.cpp b/libi2pd/Streaming.cpp index 40d20786..e3b380f9 100644 --- a/libi2pd/Streaming.cpp +++ b/libi2pd/Streaming.cpp @@ -1508,7 +1508,7 @@ namespace stream ResetWindowSize (); } auto currentRemoteLease = m_CurrentRemoteLease; - if (!m_IsRemoteLeaseChangeInProgress && m_RemoteLeaseSet && m_CurrentRemoteLease && ts >= m_CurrentRemoteLease->endDate - i2p::data::LEASE_ENDDATE_THRESHOLD) + if (!m_IsRemoteLeaseChangeInProgress && m_RemoteLeaseSet && m_CurrentRemoteLease && ts + i2p::data::LEASE_ENDDATE_THRESHOLD >= m_CurrentRemoteLease->endDate) { auto leases = m_RemoteLeaseSet->GetNonExpiredLeases (false); if (leases.size ())