From aca5617935ddd10be703afc4748b528aae1baef0 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Thu, 3 Oct 2019 14:10:18 +0000 Subject: [PATCH] i2psnark: Start with minimum tunnel count (ticket #2623) --- .../src/org/klomp/snark/I2PSnarkUtil.java | 28 +++++++++++++++++++ .../java/src/org/klomp/snark/IdleChecker.java | 9 +++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java index bed0df7b92..02e85f8ee6 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java +++ b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java @@ -229,6 +229,34 @@ public class I2PSnarkUtil { for (Map.Entry<String, String> entry : _opts.entrySet() ) opts.setProperty(entry.getKey(), entry.getValue()); } + // override preference and start with two tunnels. IdleChecker will ramp up/down as necessary + String sin = opts.getProperty("inbound.quantity"); + if (sin != null) { + int in; + try { + in = Integer.parseInt(sin); + } catch (NumberFormatException nfe) { + in = 3; + } + if (in > 2) + opts.setProperty("inbound.quantity", "2"); + } + String sout = opts.getProperty("outbound.quantity"); + if (sout != null) { + int out; + try { + out = Integer.parseInt(sout); + } catch (NumberFormatException nfe) { + out = 3; + } + if (out > 2) + opts.setProperty("outbound.quantity", "2"); + } + if (opts.containsKey("inbound.backupQuantity")) + opts.setProperty("inbound.backupQuantity", "0"); + if (opts.containsKey("outbound.backupQuantity")) + opts.setProperty("outbound.backupQuantity", "0"); + if (opts.getProperty("inbound.nickname") == null) opts.setProperty("inbound.nickname", _baseName.replace("i2psnark", "I2PSnark")); if (opts.getProperty("outbound.nickname") == null) diff --git a/apps/i2psnark/java/src/org/klomp/snark/IdleChecker.java b/apps/i2psnark/java/src/org/klomp/snark/IdleChecker.java index 1a109654af..34fcca5928 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/IdleChecker.java +++ b/apps/i2psnark/java/src/org/klomp/snark/IdleChecker.java @@ -29,13 +29,14 @@ class IdleChecker extends SimpleTimer2.TimedEvent { private int _consec; private int _consecNotRunning; private boolean _isIdle; - private String _lastIn = "3"; - private String _lastOut = "3"; + private String _lastIn = DEFAULT_QTY; + private String _lastOut = DEFAULT_QTY; private final Object _lock = new Object(); private static final long CHECK_TIME = 63*1000; private static final int MAX_CONSEC_IDLE = 4; private static final int MAX_CONSEC_NOT_RUNNING = 20; + private static final String DEFAULT_QTY = "2"; /** * Caller must schedule @@ -93,8 +94,8 @@ class IdleChecker extends SimpleTimer2.TimedEvent { _isIdle = false; _consec = 0; _consecNotRunning = 0; - _lastIn = "3"; - _lastOut = "3"; + _lastIn = DEFAULT_QTY; + _lastOut = DEFAULT_QTY; } schedule(CHECK_TIME); } -- GitLab