diff --git a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java index 170d25c6597089c5b20ccec822c78100d7dacd0f..ecdac3683b49fee30139f98e22698a8edf814250 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java +++ b/router/java/src/net/i2p/router/tunnelmanager/PoolingTunnelSelector.java @@ -61,7 +61,7 @@ class PoolingTunnelSelector { for (int i = outIds.size(); i < criteria.getMinimumTunnelsRequired(); i++) { if (_log.shouldLog(Log.WARN)) _log.warn("Building fake tunnels because the outbound tunnels weren't sufficient"); - pool.buildFakeTunnels(); + pool.buildFakeTunnels(true); rebuilt = true; } if (rebuilt && recurse) @@ -106,7 +106,7 @@ class PoolingTunnelSelector { for (int i = tunnels.size(); i < criteria.getMinimumTunnelsRequired(); i++) { if (_log.shouldLog(Log.WARN)) _log.warn("Building fake tunnels because the inbound tunnels weren't sufficient"); - pool.buildFakeTunnels(); + pool.buildFakeTunnels(true); rebuilt = true; } if (rebuilt && recurse) diff --git a/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java b/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java index dd83a0f0d0257a582084724a2a8192292996e4f1..0a63ab04c5098c37d908e9be5c689a221f7e82a0 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java +++ b/router/java/src/net/i2p/router/tunnelmanager/TunnelPool.java @@ -470,14 +470,17 @@ class TunnelPool { * */ public void buildFakeTunnels() { - if (getFreeValidTunnelCount() < 3) { + buildFakeTunnels(false); + } + public void buildFakeTunnels(boolean force) { + if (force || getFreeValidTunnelCount() < 3) { if (_log.shouldLog(Log.WARN)) _log.warn("Running low on valid inbound tunnels, building another"); TunnelInfo inTunnelGateway = _tunnelBuilder.configureInboundTunnel(null, getPoolSettings(), true); RequestTunnelJob inReqJob = new RequestTunnelJob(_context, this, inTunnelGateway, true, getTunnelCreationTimeout()); inReqJob.runJob(); } - if (getOutboundValidTunnelCount() < 3) { + if (force || getOutboundValidTunnelCount() < 3) { if (_log.shouldLog(Log.WARN)) _log.warn("Running low on valid outbound tunnels, building another"); TunnelInfo outTunnelGateway = _tunnelBuilder.configureOutboundTunnel(getPoolSettings(), true);