mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-13 01:20:22 +03:00
don't create SSU session for HolePunch
This commit is contained in:
parent
2b0d18a6d7
commit
8462d382f4
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2020, The PurpleI2P Project
|
* Copyright (c) 2013-2021, The PurpleI2P Project
|
||||||
*
|
*
|
||||||
* This file is part of Purple i2pd project and licensed under BSD3
|
* This file is part of Purple i2pd project and licensed under BSD3
|
||||||
*
|
*
|
||||||
@ -385,7 +385,7 @@ namespace transport
|
|||||||
auto it = sessions->find (packet->from);
|
auto it = sessions->find (packet->from);
|
||||||
if (it != sessions->end ())
|
if (it != sessions->end ())
|
||||||
session = it->second;
|
session = it->second;
|
||||||
if (!session)
|
if (!session && packet->len > 0)
|
||||||
{
|
{
|
||||||
session = std::make_shared<SSUSession> (*this, packet->from);
|
session = std::make_shared<SSUSession> (*this, packet->from);
|
||||||
session->WaitForConnect ();
|
session->WaitForConnect ();
|
||||||
|
@ -418,6 +418,7 @@ namespace transport
|
|||||||
else
|
else
|
||||||
FillHeaderAndEncrypt (PAYLOAD_TYPE_RELAY_REQUEST, buf, 96, introducer.iKey, iv, introducer.iKey);
|
FillHeaderAndEncrypt (PAYLOAD_TYPE_RELAY_REQUEST, buf, 96, introducer.iKey, iv, introducer.iKey);
|
||||||
m_Server.Send (buf, 96, m_RemoteEndpoint);
|
m_Server.Send (buf, 96, m_RemoteEndpoint);
|
||||||
|
LogPrint (eLogDebug, "SSU: relay request sent");
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSUSession::SendSessionCreated (const uint8_t * x, bool sendRelayTag)
|
void SSUSession::SendSessionCreated (const uint8_t * x, bool sendRelayTag)
|
||||||
@ -682,6 +683,7 @@ namespace transport
|
|||||||
LogPrint (eLogInfo, "SSU: RelayReponse connecting to endpoint ", remoteEndpoint);
|
LogPrint (eLogInfo, "SSU: RelayReponse connecting to endpoint ", remoteEndpoint);
|
||||||
if (i2p::context.GetRouterInfo ().UsesIntroducer ()) // if we are unreachable
|
if (i2p::context.GetRouterInfo ().UsesIntroducer ()) // if we are unreachable
|
||||||
m_Server.Send (buf, 0, remoteEndpoint); // send HolePunch
|
m_Server.Send (buf, 0, remoteEndpoint); // send HolePunch
|
||||||
|
// we assume that HolePunch has been sent by this time and our SessionRequest will go through
|
||||||
m_Server.CreateDirectSession (it->second, remoteEndpoint, false);
|
m_Server.CreateDirectSession (it->second, remoteEndpoint, false);
|
||||||
}
|
}
|
||||||
// delete request
|
// delete request
|
||||||
|
Loading…
Reference in New Issue
Block a user