Browse Source

try to resend if window is full

pull/1786/head
orignal 2 years ago
parent
commit
c3dd7ed73a
  1. 20
      libi2pd/SSU2Session.cpp

20
libi2pd/SSU2Session.cpp

@ -284,13 +284,18 @@ namespace transport
for (auto it: msgs) for (auto it: msgs)
m_SendQueue.push_back (it); m_SendQueue.push_back (it);
SendQueue (); SendQueue ();
if (m_SendQueue.size () > SSU2_MAX_OUTGOING_QUEUE_SIZE) if (m_SendQueue.size () > 0) // windows is full
{ {
LogPrint (eLogWarning, "SSU2: Outgoing messages queue size to ", if (m_SendQueue.size () <= SSU2_MAX_OUTGOING_QUEUE_SIZE)
GetIdentHashBase64(), " exceeds ", SSU2_MAX_OUTGOING_QUEUE_SIZE); Resend (i2p::util::GetMillisecondsSinceEpoch ());
RequestTermination (eSSU2TerminationReasonTimeout); else
} {
LogPrint (eLogWarning, "SSU2: Outgoing messages queue size to ",
GetIdentHashBase64(), " exceeds ", SSU2_MAX_OUTGOING_QUEUE_SIZE);
RequestTermination (eSSU2TerminationReasonTimeout);
}
}
} }
bool SSU2Session::SendQueue () bool SSU2Session::SendQueue ()
@ -462,7 +467,6 @@ namespace transport
m_WindowSize >>= 1; // /2 m_WindowSize >>= 1; // /2
if (m_WindowSize < SSU2_MIN_WINDOW_SIZE) m_WindowSize = SSU2_MIN_WINDOW_SIZE; if (m_WindowSize < SSU2_MIN_WINDOW_SIZE) m_WindowSize = SSU2_MIN_WINDOW_SIZE;
} }
SendQueue ();
} }
void SSU2Session::ResendHandshakePacket () void SSU2Session::ResendHandshakePacket ()

Loading…
Cancel
Save