From 5eaec4c841559bae130bb5c98a492043f04347b3 Mon Sep 17 00:00:00 2001 From: jrandom <jrandom> Date: Wed, 28 Jul 2004 03:51:38 +0000 Subject: [PATCH] only recurse one time --- .../tunnelmanager/PoolingTunnelSelector.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java index 4a429f140a..170d25c659 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java +++ b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java @@ -30,6 +30,9 @@ class PoolingTunnelSelector { } public List selectOutboundTunnelIds(TunnelPool pool, TunnelSelectionCriteria criteria) { + return selectOutboundTunnelIds(pool, criteria, true); + } + public List selectOutboundTunnelIds(TunnelPool pool, TunnelSelectionCriteria criteria, boolean recurse) { List tunnelIds = new ArrayList(criteria.getMinimumTunnelsRequired()); Set outIds = pool.getOutboundTunnels(); @@ -61,8 +64,8 @@ class PoolingTunnelSelector { pool.buildFakeTunnels(); rebuilt = true; } - if (rebuilt) - return selectOutboundTunnelIds(pool, criteria); + if (rebuilt && recurse) + return selectOutboundTunnelIds(pool, criteria, false); List ordered = randomize(pool, tunnelIds); List rv = new ArrayList(criteria.getMinimumTunnelsRequired()); @@ -76,6 +79,9 @@ class PoolingTunnelSelector { } public List selectInboundTunnelIds(TunnelPool pool, TunnelSelectionCriteria criteria) { + return selectInboundTunnelIds(pool, criteria, true); + } + public List selectInboundTunnelIds(TunnelPool pool, TunnelSelectionCriteria criteria, boolean recurse) { List tunnels = new ArrayList(criteria.getMinimumTunnelsRequired()); for (Iterator iter = pool.getFreeTunnels().iterator(); iter.hasNext(); ) { @@ -103,8 +109,8 @@ class PoolingTunnelSelector { pool.buildFakeTunnels(); rebuilt = true; } - if (rebuilt) - return selectInboundTunnelIds(pool, criteria); + if (rebuilt && recurse) + return selectInboundTunnelIds(pool, criteria, false); List ordered = randomize(pool, tunnels); List rv = new ArrayList(criteria.getMinimumTunnelsRequired()); -- GitLab