min size in AsyncRequest

This commit is contained in:
orignal committed 2026-08-22 14:47:14 -04:00
1 parent 410dbaf661
commit b6be65d774
3 files changed
+29 -20

No files matched your search

+17 -9
View File
@@ -112,7 +112,7 @@ namespace stream
m_IsWinDropped (true), m_IsChoking2 (false), m_IsChoking3 (false), m_IsClientChoked (false), m_IsClientChoked2 (false),
m_IsTimeOutResend (false), m_IsImmediateAckRequested (false), m_IsRemoteLeaseChangeInProgress (false),
m_IsBufferEmpty (false), m_IsJavaClient (false), m_DontSign (local.GetOwner ()->IsStreamingDontSign ()),
m_LocalDestination (local), m_PacketsPool (local.GetPacketsPool ()), m_RemoteLeaseSet (remote), m_ReceiveTimer (m_Service),
m_LocalDestination (local), m_RemoteLeaseSet (remote), m_SizeToReceive (0), m_ReceiveTimer (m_Service),
m_SendTimer (m_Service), m_ResendTimer (m_Service), m_AckSendTimer (m_Service), m_NumSentBytes (0),
m_NumReceivedBytes (0), m_Port (port), m_RTT (INITIAL_RTT), m_MinRTT (INITIAL_RTT),
m_SlowRTT (INITIAL_RTT), m_FastRTT (INITIAL_RTT), m_WindowSize (INITIAL_WINDOW_SIZE),
@@ -146,7 +146,7 @@ namespace stream
m_IsWinDropped (true), m_IsChoking2 (false), m_IsChoking3 (false), m_IsClientChoked (false), m_IsClientChoked2 (false),
m_IsTimeOutResend (false), m_IsImmediateAckRequested (false), m_IsRemoteLeaseChangeInProgress (false),
m_IsBufferEmpty (false), m_IsJavaClient (false), m_DontSign (local.GetOwner ()->IsStreamingDontSign ()),
m_LocalDestination (local), m_PacketsPool (local.GetPacketsPool ()), m_ReceiveTimer (m_Service), m_SendTimer (m_Service),
m_LocalDestination (local), m_SizeToReceive (0), m_ReceiveTimer (m_Service), m_SendTimer (m_Service),
m_ResendTimer (m_Service), m_AckSendTimer (m_Service),m_NumSentBytes (0), m_NumReceivedBytes (0),
m_Port (0), m_RTT (INITIAL_RTT), m_MinRTT (INITIAL_RTT), m_SlowRTT (INITIAL_RTT), m_FastRTT (INITIAL_RTT),
m_WindowSize (INITIAL_WINDOW_SIZE), m_MaxWindowSize (local.GetOwner ()->GetStreamingMaxWindowSize ()),
@@ -204,17 +204,17 @@ namespace stream
{
auto packet = m_ReceiveQueue.front ();
m_ReceiveQueue.pop ();
m_PacketsPool->Release (packet);
delete packet;
}
m_NACKedPackets.clear ();
for (auto it: m_SentPackets)
m_PacketsPool->Release (it);
delete it;
m_SentPackets.clear ();
for (auto it: m_SavedPackets)
m_PacketsPool->Release (it);
delete it;
m_SavedPackets.clear ();
}
@@ -422,10 +422,19 @@ namespace stream
}
packet->offset = packet->GetPayload () - packet->buf;
if (packet->GetLength () > 0)
size_t packetLength = packet->GetLength ();
if (packetLength > 0)
{
m_ReceiveQueue.push (packet);
m_ReceiveTimer.cancel ();
if (m_SizeToReceive)
{
if (packetLength < m_SizeToReceive)
m_SizeToReceive -= packetLength;
else
m_SizeToReceive = 0;
}
if (!m_SizeToReceive)
m_ReceiveTimer.cancel ();
}
else
m_LocalDestination.DeletePacket (packet);
@@ -2141,7 +2150,6 @@ namespace stream
}
StreamingDestination::StreamingDestination (std::shared_ptr<i2p::client::ClientDestination> owner, uint16_t localPort, bool gzip):
m_PacketsPool (std::make_shared<i2p::util::MemoryPool<Packet> >()),
m_Owner (owner), m_LocalPort (localPort), m_Gzip (gzip),
m_PendingIncomingTimer (m_Owner->GetService ()),
m_LastCleanupTime (i2p::util::GetSecondsSinceEpoch ())
@@ -2366,7 +2374,7 @@ namespace stream
auto ts = i2p::util::GetSecondsSinceEpoch ();
if (m_Streams.empty () || ts > m_LastCleanupTime + STREAMING_DESTINATION_POOLS_CLEANUP_INTERVAL)
{
m_PacketsPool->CleanUp ();
m_PacketsPool.CleanUp ();
m_I2NPMsgsPool.CleanUp ();
if (!m_NumIncomingConnectionsPerSecond.empty ())
{