From 567816e6a5d6515959ecce6d97ac312454a964ef Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 26 Feb 2014 22:53:19 -0500 Subject: [PATCH] create tunnel through any type of transports --- RouterInfo.cpp | 3 +++ Tunnel.cpp | 11 ++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/RouterInfo.cpp b/RouterInfo.cpp index 8740ef9d..adae686c 100644 --- a/RouterInfo.cpp +++ b/RouterInfo.cpp @@ -180,6 +180,9 @@ namespace data CryptoPP::SHA256().CalculateDigest(m_IdentHash, (uint8_t *)&m_RouterIdentity, sizeof (m_RouterIdentity)); UpdateIdentHashBase64 (); UpdateRoutingKey (); + + if (!m_SupportedTransports) + SetUnreachable (true); } void RouterInfo::UpdateIdentHashBase64 () diff --git a/Tunnel.cpp b/Tunnel.cpp index 9d58c875..601586ae 100644 --- a/Tunnel.cpp +++ b/Tunnel.cpp @@ -389,7 +389,7 @@ namespace tunnel CreateTunnel ( new TunnelConfig (std::vector { - i2p::data::netdb.GetRandomNTCPRouter () + i2p::data::netdb.GetRandomRouter () }, inboundTunnel->GetTunnelConfig ())); } @@ -397,7 +397,7 @@ namespace tunnel { LogPrint ("Creating two hops outbound tunnel..."); - auto firstHop = i2p::data::netdb.GetRandomNTCPRouter (); // first hop must be NTCP + auto firstHop = i2p::data::netdb.GetRandomRouter (); CreateTunnel ( new TunnelConfig (std::vector { @@ -439,7 +439,7 @@ namespace tunnel CreateTunnel ( new TunnelConfig (std::vector { - i2p::data::netdb.GetRandomNTCPRouter () + i2p::data::netdb.GetRandomRouter () })); } else @@ -447,11 +447,12 @@ namespace tunnel OutboundTunnel * outboundTunnel = GetNextOutboundTunnel (); LogPrint ("Creating two hops inbound tunnel..."); auto router = outboundTunnel->GetTunnelConfig ()->GetFirstHop ()->router; + auto firstHop = i2p::data::netdb.GetRandomRouter (outboundTunnel->GetEndpointRouter ()); CreateTunnel ( new TunnelConfig (std::vector { - i2p::data::netdb.GetRandomRouter (outboundTunnel->GetEndpointRouter ()), - router != &i2p::context.GetRouterInfo () ? router : i2p::data::netdb.GetRandomNTCPRouter () // last hop must be NTCP + firstHop, + router != &i2p::context.GetRouterInfo () ? router : i2p::data::netdb.GetRandomRouter (firstHop) }), outboundTunnel); }