From e3be6b50cef2e39043bee2ef68396ae6e8b94387 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 12 Nov 2021 07:21:27 -0500 Subject: [PATCH] Tunnels: Use connected peer for closest inbound hop when approaching conn limits to increase tunnel build success This should reduce chances of tunnel builds pushing us over conn limits, and reduce build failures and watchdog warnings when at conn limits. --- history.txt | 21 +++++++++++++++++++ .../src/net/i2p/router/RouterVersion.java | 2 +- .../tunnel/pool/ClientPeerSelector.java | 3 ++- .../tunnel/pool/ExploratoryPeerSelector.java | 3 ++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/history.txt b/history.txt index 9366b75e6..5e6321e1d 100644 --- a/history.txt +++ b/history.txt @@ -1,6 +1,27 @@ +2021-11-12 zzz + * Tunnels: Improve build success when at conn limits + +2021-11-09 zzz + * GeoIP 2021-11-01 + +2021-11-09 zzz + * Util: Update DoH server list + +2021-10-23 zzz + * Debian: Update JRE dependencies + 2021-10-21 idk * Improve consistency between light and dark theme on Bandwidth Config Wizard +2021-10-20 zzz + * SSU: Send Peer Test from Bob to Alice in-session + +2021-10-13 zzz + * Util: Recognize newer Intel processors + +2021-10-11 zzz + * Tomcat 9.0.54 + 2021-10-10 zzz * Jetty 9.3.30.v20211001 diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 35ab2b80b..9bc4388a0 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Git"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 4; + public final static long BUILD = 5; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java index 340ee61b4..cb8ffdef8 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java @@ -53,7 +53,8 @@ class ClientPeerSelector extends TunnelPeerSelector { boolean ssuDisabled = isSSUDisabled(); boolean checkClosestHop = v6Only || ntcpDisabled || ssuDisabled; boolean hidden = ctx.router().isHidden() || - ctx.router().getRouterInfo().getAddressCount() <= 0; + ctx.router().getRouterInfo().getAddressCount() <= 0 || + !ctx.commSystem().haveInboundCapacity(95); boolean hiddenInbound = hidden && isInbound; boolean hiddenOutbound = hidden && !isInbound; diff --git a/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java index 4a8451f64..866a1708b 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/ExploratoryPeerSelector.java @@ -65,7 +65,8 @@ class ExploratoryPeerSelector extends TunnelPeerSelector { boolean ssuDisabled = nonzero && isSSUDisabled(); boolean checkClosestHop = v6Only || ntcpDisabled || ssuDisabled; boolean hidden = nonzero && (ctx.router().isHidden() || - ctx.router().getRouterInfo().getAddressCount() <= 0); + ctx.router().getRouterInfo().getAddressCount() <= 0 || + !ctx.commSystem().haveInboundCapacity(95)); boolean hiddenInbound = hidden && isInbound; boolean hiddenOutbound = hidden && !isInbound; boolean lowOutbound = nonzero && !isInbound && !ctx.commSystem().haveHighOutboundCapacity();