|
|
@ -706,9 +706,13 @@ namespace transport |
|
|
|
// ready to communicate
|
|
|
|
// ready to communicate
|
|
|
|
auto existing = i2p::data::netdb.FindRouter (ri.GetRouterIdentity ()->GetIdentHash ()); // check if exists already
|
|
|
|
auto existing = i2p::data::netdb.FindRouter (ri.GetRouterIdentity ()->GetIdentHash ()); // check if exists already
|
|
|
|
SetRemoteIdentity (existing ? existing->GetRouterIdentity () : ri.GetRouterIdentity ()); |
|
|
|
SetRemoteIdentity (existing ? existing->GetRouterIdentity () : ri.GetRouterIdentity ()); |
|
|
|
m_Server.AddNTCP2Session (shared_from_this (), true); |
|
|
|
if (m_Server.AddNTCP2Session (shared_from_this (), true)) |
|
|
|
Established (); |
|
|
|
{ |
|
|
|
ReceiveLength (); |
|
|
|
Established (); |
|
|
|
|
|
|
|
ReceiveLength (); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
Terminate (); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
Terminate (); |
|
|
|
Terminate (); |
|
|
@ -1258,7 +1262,6 @@ namespace transport |
|
|
|
if (it != m_NTCP2Sessions.end ()) |
|
|
|
if (it != m_NTCP2Sessions.end ()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
LogPrint (eLogWarning, "NTCP2: session to ", ident.ToBase64 (), " already exists"); |
|
|
|
LogPrint (eLogWarning, "NTCP2: session to ", ident.ToBase64 (), " already exists"); |
|
|
|
session->Terminate(); |
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
m_NTCP2Sessions.insert (std::make_pair (ident, session)); |
|
|
|
m_NTCP2Sessions.insert (std::make_pair (ident, session)); |
|
|
@ -1301,6 +1304,8 @@ namespace transport |
|
|
|
}); |
|
|
|
}); |
|
|
|
conn->GetSocket ().async_connect (boost::asio::ip::tcp::endpoint (address, port), std::bind (&NTCP2Server::HandleConnect, this, std::placeholders::_1, conn, timer)); |
|
|
|
conn->GetSocket ().async_connect (boost::asio::ip::tcp::endpoint (address, port), std::bind (&NTCP2Server::HandleConnect, this, std::placeholders::_1, conn, timer)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
conn->Terminate (); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|