mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
delete session by hash from table if expired or terminated
This commit is contained in:
parent
67763248cc
commit
98669eff4f
2 changed files with 11 additions and 3 deletions
|
@ -515,11 +515,19 @@ namespace transport
|
|||
return m_PendingOutgoingSessions.emplace (session->GetRemoteEndpoint (), session).second;
|
||||
}
|
||||
|
||||
std::shared_ptr<SSU2Session> SSU2Server::FindSession (const i2p::data::IdentHash& ident) const
|
||||
std::shared_ptr<SSU2Session> SSU2Server::FindSession (const i2p::data::IdentHash& ident)
|
||||
{
|
||||
auto it = m_SessionsByRouterHash.find (ident);
|
||||
if (it != m_SessionsByRouterHash.end ())
|
||||
return it->second.lock ();
|
||||
{
|
||||
if (!it->second.expired ())
|
||||
{
|
||||
auto s = it->second.lock ();
|
||||
if (s && s->GetState () != eSSU2SessionStateTerminated)
|
||||
return s;
|
||||
}
|
||||
m_SessionsByRouterHash.erase (it);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue