From d99a7d9b2013ddad0e7b9ac3e1a95b5d7e3af0f3 Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 5 Nov 2024 15:20:05 -0500 Subject: [PATCH 1/2] allow transit for router behind symmetric NAT or proxy --- libi2pd/RouterContext.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libi2pd/RouterContext.cpp b/libi2pd/RouterContext.cpp index f5f8b4fb..5fa7bc99 100644 --- a/libi2pd/RouterContext.cpp +++ b/libi2pd/RouterContext.cpp @@ -323,10 +323,6 @@ namespace i2p case eRouterStatusFirewalled: SetUnreachable (true, false); // ipv4 break; - case eRouterStatusProxy: - m_AcceptsTunnels = false; - UpdateCongestion (); - break; default: ; } @@ -1489,7 +1485,7 @@ namespace i2p void RouterContext::UpdateCongestion () { auto c = i2p::data::RouterInfo::eLowCongestion; - if (!AcceptsTunnels () || !m_ShareRatio || (m_Error == eRouterErrorSymmetricNAT && !SupportsV6 () && !SupportsMesh ())) + if (!AcceptsTunnels () || !m_ShareRatio) c = i2p::data::RouterInfo::eRejectAll; else { From be24a3e336fe7e380e0e883ec327e9d3f8cb2c4f Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 5 Nov 2024 19:24:54 -0500 Subject: [PATCH 2/2] publish R cap for yggdrasil-only router and U cap for routers through proxy --- libi2pd/RouterContext.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libi2pd/RouterContext.cpp b/libi2pd/RouterContext.cpp index 5fa7bc99..e69738c6 100644 --- a/libi2pd/RouterContext.cpp +++ b/libi2pd/RouterContext.cpp @@ -323,6 +323,12 @@ namespace i2p case eRouterStatusFirewalled: SetUnreachable (true, false); // ipv4 break; + case eRouterStatusMesh: + m_RouterInfo.UpdateCaps (m_RouterInfo.GetCaps () | i2p::data::RouterInfo::eReachable); + break; + case eRouterStatusProxy: + m_RouterInfo.UpdateCaps (m_RouterInfo.GetCaps () | i2p::data::RouterInfo::eUnreachable); + break; default: ; }