From fe744f8f81e84079f30f9be17a8bd1da7a4d8d0e Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 24 Jul 2022 16:44:02 -0400 Subject: [PATCH] more routine cleanup --- libi2pd/SSU2.cpp | 19 ++++++++++++++++++- libi2pd/SSU2.h | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libi2pd/SSU2.cpp b/libi2pd/SSU2.cpp index 2c754e6b..2f7c1e74 100644 --- a/libi2pd/SSU2.cpp +++ b/libi2pd/SSU2.cpp @@ -679,6 +679,22 @@ namespace transport it.second->CleanUp (ts); } + for (auto it = m_SessionsByRouterHash.begin (); it != m_SessionsByRouterHash.begin ();) + { + if (it->second && it->second->GetState () == eSSU2SessionStateTerminated) + it = m_SessionsByRouterHash.erase (it); + else + it++; + } + + for (auto it = m_Relays.begin (); it != m_Relays.begin ();) + { + if (it->second && it->second->GetState () == eSSU2SessionStateTerminated) + it = m_Relays.erase (it); + else + it++; + } + for (auto it = m_IncomingTokens.begin (); it != m_IncomingTokens.end (); ) { if (ts > it->second.second) @@ -694,7 +710,8 @@ namespace transport else it++; } - + + m_PacketsPool.CleanUpMt (); ScheduleTermination (); } } diff --git a/libi2pd/SSU2.h b/libi2pd/SSU2.h index b705f222..1625080b 100644 --- a/libi2pd/SSU2.h +++ b/libi2pd/SSU2.h @@ -116,7 +116,7 @@ namespace transport boost::asio::ip::udp::socket m_SocketV4, m_SocketV6; boost::asio::ip::address m_AddressV4, m_AddressV6; std::unordered_map > m_Sessions; - std::map > m_SessionsByRouterHash; + std::unordered_map > m_SessionsByRouterHash; std::map > m_PendingOutgoingSessions; std::map > m_IncomingTokens, m_OutgoingTokens; // remote endpoint -> (token, expires in seconds) std::map > m_Relays; // we are introducer, relay tag -> session