From 345c64ebafda661acdce44afb600df3959f140db Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Tue, 12 Apr 2022 09:06:00 -0400 Subject: [PATCH] Tunnels: Don't build client tunnels less than min length even if we don't have enough peers --- .../router/tunnel/pool/ClientPeerSelector.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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 7a537c5e45..f1d726d198 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/ClientPeerSelector.java @@ -233,14 +233,23 @@ class ClientPeerSelector extends TunnelPeerSelector { matches.remove(ctx.routerHash()); rv.addAll(matches); } + if (rv.size() < length) { + // not enough peers to build the requested size + // client tunnels do not use overrides + if (log.shouldWarn()) + log.warn("CPS requested " + length + " got " + rv.size()); + int min = settings.getLength(); + int skew = settings.getLengthVariance(); + if (skew < 0) + min += skew; + // not enough peers to build the minimum size + if (rv.size() < min) + return null; + } } else { rv = new ArrayList<Hash>(1); } - //if (length != rv.size() && log.shouldWarn()) - // log.warn("CPS requested " + length + " got " + rv.size() + ": " + DataHelper.toString(rv)); - //else if (log.shouldDebug()) - // log.debug("EPS result: " + DataHelper.toString(rv)); if (isInbound) rv.add(0, ctx.routerHash()); else -- GitLab