|
|
@ -433,7 +433,7 @@ namespace transport |
|
|
|
{ |
|
|
|
{ |
|
|
|
boost::asio::ip::udp::endpoint remoteEndpoint (address->host, address->port); |
|
|
|
boost::asio::ip::udp::endpoint remoteEndpoint (address->host, address->port); |
|
|
|
auto it = m_Sessions.find (remoteEndpoint); |
|
|
|
auto it = m_Sessions.find (remoteEndpoint); |
|
|
|
// check if session if presented alredy
|
|
|
|
// check if session is presented already
|
|
|
|
if (it != m_Sessions.end ()) |
|
|
|
if (it != m_Sessions.end ()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto session = it->second; |
|
|
|
auto session = it->second; |
|
|
@ -480,9 +480,14 @@ namespace transport |
|
|
|
introducerSession = std::make_shared<SSUSession> (*this, introducerEndpoint, router); |
|
|
|
introducerSession = std::make_shared<SSUSession> (*this, introducerEndpoint, router); |
|
|
|
m_Sessions[introducerEndpoint] = introducerSession; |
|
|
|
m_Sessions[introducerEndpoint] = introducerSession; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#if BOOST_VERSION >= 104900 |
|
|
|
|
|
|
|
if (!address->host.is_unspecified () && address->port) |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
{ |
|
|
|
// create session
|
|
|
|
// create session
|
|
|
|
auto session = std::make_shared<SSUSession> (*this, remoteEndpoint, router, peerTest); |
|
|
|
auto session = std::make_shared<SSUSession> (*this, remoteEndpoint, router, peerTest); |
|
|
|
m_Sessions[remoteEndpoint] = session; |
|
|
|
m_Sessions[remoteEndpoint] = session; |
|
|
|
|
|
|
|
|
|
|
|
// introduce
|
|
|
|
// introduce
|
|
|
|
LogPrint (eLogInfo, "SSU: Introduce new session to [", i2p::data::GetIdentHashAbbreviation (router->GetIdentHash ()), |
|
|
|
LogPrint (eLogInfo, "SSU: Introduce new session to [", i2p::data::GetIdentHashAbbreviation (router->GetIdentHash ()), |
|
|
|
"] through introducer ", introducer->iHost, ":", introducer->iPort); |
|
|
|
"] through introducer ", introducer->iHost, ":", introducer->iPort); |
|
|
@ -492,6 +497,7 @@ namespace transport |
|
|
|
uint8_t buf[1]; |
|
|
|
uint8_t buf[1]; |
|
|
|
Send (buf, 0, remoteEndpoint); // send HolePunch
|
|
|
|
Send (buf, 0, remoteEndpoint); // send HolePunch
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
introducerSession->Introduce (*introducer, router); |
|
|
|
introducerSession->Introduce (*introducer, router); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|