Browse Source

remove incoming session from pending list when established

pull/1432/head
orignal 5 years ago
parent
commit
d6b1d0d4fb
  1. 6
      libi2pd/NTCP2.cpp
  2. 2
      libi2pd/NTCP2.h

6
libi2pd/NTCP2.cpp

@ -719,7 +719,7 @@ namespace transport @@ -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 @@ -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 @@ -1270,6 +1270,8 @@ namespace transport
return false;
}
m_NTCP2Sessions.insert (std::make_pair (ident, session));
if (incoming)
m_PendingIncomingSessions.remove (session);
return true;
}

2
libi2pd/NTCP2.h

@ -227,7 +227,7 @@ namespace transport @@ -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);

Loading…
Cancel
Save