mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 04:04:16 +00:00
select compatible outbound tunnel
This commit is contained in:
parent
632d41e50c
commit
73b77c83b8
@ -204,10 +204,16 @@ namespace client
|
||||
}
|
||||
else
|
||||
{
|
||||
outboundTunnel = GetTunnelPool ()->GetNextOutboundTunnel ();
|
||||
auto leases = remote->GetNonExpiredLeases ();
|
||||
auto leases = remote->GetNonExpiredLeases (false); // without threshold
|
||||
if (leases.empty ())
|
||||
leases = remote->GetNonExpiredLeases (true); // with threshold
|
||||
if (!leases.empty ())
|
||||
{
|
||||
remoteLease = leases[rand () % leases.size ()];
|
||||
auto leaseRouter = i2p::data::netdb.FindRouter (remoteLease->tunnelGateway);
|
||||
outboundTunnel = GetTunnelPool ()->GetNextOutboundTunnel (nullptr,
|
||||
leaseRouter ? leaseRouter->GetCompatibleTransports (false) : (i2p::data::RouterInfo::CompatibleTransports)i2p::data::RouterInfo::eAllTransports);
|
||||
}
|
||||
if (remoteLease && outboundTunnel)
|
||||
remoteSession->SetSharedRoutingPath (std::make_shared<i2p::garlic::GarlicRoutingPath> (
|
||||
i2p::garlic::GarlicRoutingPath{outboundTunnel, remoteLease, 10000, 0, 0})); // 10 secs RTT
|
||||
|
Loading…
x
Reference in New Issue
Block a user