From a99fcfe54ff450c5080a5734b57d55040b19e58a Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 26 Jun 2022 21:35:26 -0400 Subject: [PATCH] cleanup terminated sessions --- libi2pd/SSU2.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libi2pd/SSU2.cpp b/libi2pd/SSU2.cpp index 56ccfe93..5b0a55dd 100644 --- a/libi2pd/SSU2.cpp +++ b/libi2pd/SSU2.cpp @@ -376,6 +376,9 @@ namespace transport m_LastSession->SetRemoteEndpoint (senderEndpoint); m_LastSession->ProcessPeerTest (buf, len); break; + case eSSU2SessionStateTerminated: + m_LastSession = nullptr; + break; default: LogPrint (eLogWarning, "SSU2: Invalid session state ", (int)m_LastSession->GetState ()); } @@ -608,7 +611,8 @@ namespace transport for (auto it = m_Sessions.begin (); it != m_Sessions.end ();) { - if (it->second->IsTerminationTimeoutExpired (ts)) + if (it->second->GetState () == eSSU2SessionStateTerminated || + it->second->IsTerminationTimeoutExpired (ts)) { if (it->second->IsEstablished ()) it->second->TerminateByTimeout ();