mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 08:14:15 +00:00
respond to termination
This commit is contained in:
parent
987497bb10
commit
f8a609f692
@ -234,7 +234,8 @@ namespace transport
|
||||
{
|
||||
ProcessNextPacket (packet->buf, packet->len, packet->from);
|
||||
m_PacketsPool.ReleaseMt (packet);
|
||||
if (m_LastSession) m_LastSession->FlushData ();
|
||||
if (m_LastSession && m_LastSession->GetState () != eSSU2SessionStateTerminated)
|
||||
m_LastSession->FlushData ();
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,7 +244,8 @@ namespace transport
|
||||
for (auto& packet: packets)
|
||||
ProcessNextPacket (packet->buf, packet->len, packet->from);
|
||||
m_PacketsPool.ReleaseMt (packets);
|
||||
if (m_LastSession) m_LastSession->FlushData ();
|
||||
if (m_LastSession && m_LastSession->GetState () != eSSU2SessionStateTerminated)
|
||||
m_LastSession->FlushData ();
|
||||
}
|
||||
|
||||
void SSU2Server::AddSession (std::shared_ptr<SSU2Session> session)
|
||||
@ -416,7 +418,9 @@ namespace transport
|
||||
m_LastSession->ProcessPeerTest (buf, len);
|
||||
break;
|
||||
case eSSU2SessionStateClosing:
|
||||
m_LastSession->RequestTermination (eSSU2TerminationReasonIdleTimeout); // send termination again
|
||||
m_LastSession->ProcessData (buf, len); // we might receive termintaion block
|
||||
if (m_LastSession && m_LastSession->GetState () != eSSU2SessionStateTerminated)
|
||||
m_LastSession->RequestTermination (eSSU2TerminationReasonIdleTimeout); // send termination again
|
||||
break;
|
||||
case eSSU2SessionStateTerminated:
|
||||
m_LastSession = nullptr;
|
||||
|
@ -1308,7 +1308,10 @@ namespace transport
|
||||
break;
|
||||
case eSSU2BlkTermination:
|
||||
LogPrint (eLogDebug, "SSU2: Termination reason=", (int)buf[11]);
|
||||
Terminate ();
|
||||
if (IsEstablished () && buf[11] != eSSU2TerminationReasonTerminationReceived)
|
||||
RequestTermination (eSSU2TerminationReasonTerminationReceived);
|
||||
else
|
||||
Terminate ();
|
||||
break;
|
||||
case eSSU2BlkRelayRequest:
|
||||
LogPrint (eLogDebug, "SSU2: RelayRequest");
|
||||
|
Loading…
x
Reference in New Issue
Block a user