remove incoming session from pending list when established

This commit is contained in:
orignal 2019-09-22 21:01:34 -04:00
parent 03a861745b
commit d6b1d0d4fb
2 changed files with 5 additions and 3 deletions

View File

@ -719,7 +719,7 @@ namespace transport
// ready to communicate
auto existing = i2p::data::netdb.FindRouter (ri.GetRouterIdentity ()->GetIdentHash ()); // check if exists already
SetRemoteIdentity (existing ? existing->GetRouterIdentity () : ri.GetRouterIdentity ());
m_Server.AddNTCP2Session (shared_from_this ());
m_Server.AddNTCP2Session (shared_from_this (), true);
Established ();
ReceiveLength ();
}
@ -1258,7 +1258,7 @@ namespace transport
}
}
bool NTCP2Server::AddNTCP2Session (std::shared_ptr<NTCP2Session> session)
bool NTCP2Server::AddNTCP2Session (std::shared_ptr<NTCP2Session> session, bool incoming)
{
if (!session || !session->GetRemoteIdentity ()) return false;
auto& ident = session->GetRemoteIdentity ()->GetIdentHash ();
@ -1270,6 +1270,8 @@ namespace transport
return false;
}
m_NTCP2Sessions.insert (std::make_pair (ident, session));
if (incoming)
m_PendingIncomingSessions.remove (session);
return true;
}

View File

@ -227,7 +227,7 @@ namespace transport
void Start ();
void Stop ();
bool AddNTCP2Session (std::shared_ptr<NTCP2Session> session);
bool AddNTCP2Session (std::shared_ptr<NTCP2Session> session, bool incoming = false);
void RemoveNTCP2Session (std::shared_ptr<NTCP2Session> session);
std::shared_ptr<NTCP2Session> FindNTCP2Session (const i2p::data::IdentHash& ident);