1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 12:24:19 +00:00

check if NTCP2 address is valid before connection attempt

This commit is contained in:
orignal 2021-01-24 11:34:11 -05:00
parent 96e9608036
commit 2e0019c8c8

View File

@ -397,16 +397,24 @@ namespace transport
if (!peer.numAttempts) // NTCP2 ipv6
{
if (context.SupportsV6 ())
{
address = peer.router->GetPublishedNTCP2V6Address ();
if (address && m_CheckReserved && !i2p::util::net::IsInReservedRange(address->host))
address = nullptr;
}
peer.numAttempts++;
}
if (!address && peer.numAttempts == 1) // NTCP2 ipv4
{
if (context.SupportsV4 ())
if (context.SupportsV4 () && !peer.router->IsUnreachable ())
{
address = peer.router->GetPublishedNTCP2V4Address ();
if (address && m_CheckReserved && !i2p::util::net::IsInReservedRange(address->host))
address = nullptr;
}
peer.numAttempts++;
}
if (address && !peer.router->IsUnreachable () && (!m_CheckReserved || !i2p::util::net::IsInReservedRange(address->host)))
if (address)
{
auto s = std::make_shared<NTCP2Session> (*m_NTCP2Server, peer.router, address);