mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2026-10-22 19:41:41 +00:00
handle immediate ack request
This commit is contained in:
1 parent
0046a8b3ec
commit
ae65af07c2
2 files changed
+10
-4
No files matched your search
@@ -326,12 +326,16 @@ namespace stream
|
||||
LogPrint (eLogInfo, "Streaming: Invalid option size ", optionSize, " Discarded");
|
||||
return false;
|
||||
}
|
||||
if (!flags) return true;
|
||||
bool immediateAckRequested = false;
|
||||
if (flags & PACKET_FLAG_DELAY_REQUESTED)
|
||||
{
|
||||
if (!m_IsAckSendScheduled)
|
||||
uint16_t delayRequested = bufbe16toh (optionData);
|
||||
if (!delayRequested) // 0 requests an immediate ack
|
||||
immediateAckRequested = true;
|
||||
else if (!m_IsAckSendScheduled)
|
||||
{
|
||||
uint16_t delayRequested = bufbe16toh (optionData);
|
||||
if (delayRequested > 0 && delayRequested < m_RTT)
|
||||
if (delayRequested < m_RTT)
|
||||
{
|
||||
m_IsAckSendScheduled = true;
|
||||
m_AckSendTimer.expires_from_now (boost::posix_time::milliseconds(delayRequested));
|
||||
@@ -432,6 +436,8 @@ namespace stream
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (immediateAckRequested)
|
||||
SendQuickAck ();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user