From b206665c727d990822df5776bafb05c8ab8cccf0 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 1 Apr 2014 13:03:40 +0000
Subject: [PATCH] TunnelPoolSettings constructor tweak

---
 .../net/i2p/router/ClientTunnelSettings.java  |  4 +--
 .../net/i2p/router/TunnelPoolSettings.java    | 26 +++++++++++++------
 .../router/tunnel/TunnelCreatorConfig.java    |  5 +++-
 .../router/tunnel/pool/TunnelPoolManager.java |  4 +--
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/router/java/src/net/i2p/router/ClientTunnelSettings.java b/router/java/src/net/i2p/router/ClientTunnelSettings.java
index 110e2e94a5..144bbd96bc 100644
--- a/router/java/src/net/i2p/router/ClientTunnelSettings.java
+++ b/router/java/src/net/i2p/router/ClientTunnelSettings.java
@@ -22,8 +22,8 @@ public class ClientTunnelSettings {
     private final TunnelPoolSettings _outboundSettings;
     
     public ClientTunnelSettings(Hash dest) {
-        _inboundSettings = new TunnelPoolSettings(dest, false, true);
-        _outboundSettings = new TunnelPoolSettings(dest, false, false);
+        _inboundSettings = new TunnelPoolSettings(dest, true);
+        _outboundSettings = new TunnelPoolSettings(dest, false);
     }
     
     public TunnelPoolSettings getInboundSettings() { return _inboundSettings; }
diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java
index 133c2600bf..f01a69476d 100644
--- a/router/java/src/net/i2p/router/TunnelPoolSettings.java
+++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java
@@ -79,23 +79,33 @@ public class TunnelPoolSettings {
     private static final int MAX_PRIORITY = 25;
     private static final int EXPLORATORY_PRIORITY = 30;
     
-    public TunnelPoolSettings(Hash dest, boolean isExploratory, boolean isInbound) {
+    /**
+     *  Exploratory tunnel
+     */
+    public TunnelPoolSettings(boolean isInbound) {
+        this(null, isInbound);
+    }
+
+    /**
+     *  Client tunnel unless dest == null
+     */
+    public TunnelPoolSettings(Hash dest, boolean isInbound) {
         _destination = dest;
-        _isExploratory = isExploratory;
+        _isExploratory = dest == null;
         _isInbound = isInbound;
         _quantity = DEFAULT_QUANTITY;
         _backupQuantity = DEFAULT_BACKUP_QUANTITY;
         // _rebuildPeriod = DEFAULT_REBUILD_PERIOD;
         //_duration = DEFAULT_DURATION;
         if (isInbound) {
-            _length = isExploratory ? DEFAULT_IB_EXPL_LENGTH : DEFAULT_IB_LENGTH;
-            _lengthVariance = isExploratory ? DEFAULT_IB_EXPL_LENGTH_VARIANCE : DEFAULT_LENGTH_VARIANCE;
+            _length = _isExploratory ? DEFAULT_IB_EXPL_LENGTH : DEFAULT_IB_LENGTH;
+            _lengthVariance = _isExploratory ? DEFAULT_IB_EXPL_LENGTH_VARIANCE : DEFAULT_LENGTH_VARIANCE;
         } else {
-            _length = isExploratory ? DEFAULT_OB_EXPL_LENGTH : DEFAULT_OB_LENGTH;
-            _lengthVariance = isExploratory ? DEFAULT_OB_EXPL_LENGTH_VARIANCE : DEFAULT_LENGTH_VARIANCE;
+            _length = _isExploratory ? DEFAULT_OB_EXPL_LENGTH : DEFAULT_OB_LENGTH;
+            _lengthVariance = _isExploratory ? DEFAULT_OB_EXPL_LENGTH_VARIANCE : DEFAULT_LENGTH_VARIANCE;
         }
         _lengthOverride = -1;
-        if (isExploratory)
+        if (_isExploratory)
             _allowZeroHop = true;
         else
             _allowZeroHop = DEFAULT_ALLOW_ZERO_HOP;
@@ -189,7 +199,7 @@ public class TunnelPoolSettings {
     //public int getDuration() { return _duration; }
     //public void setDuration(int ms) { _duration = ms; }
     
-    /** what destination is this a tunnel for (or null if none) */
+    /** what destination is this a client tunnel for (or null if exploratory) */
     public Hash getDestination() { return _destination; }
 
     /** random key used for peer ordering */
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
index 129caf2396..9340477c6f 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
@@ -114,7 +114,10 @@ public class TunnelCreatorConfig implements TunnelInfo {
     /** is this an inbound tunnel? */
     public boolean isInbound() { return _isInbound; }
 
-    /** if this is a client tunnel, what destination is it for? */
+    /**
+     *  If this is a client tunnel, what destination is it for?
+     *  @return null for exploratory
+     */
     public Hash getDestination() { return _destination; }
     
     public long getExpiration() { return _expiration; }
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
index 6dcfa0af23..c559e140ce 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
@@ -62,9 +62,9 @@ public class TunnelPoolManager implements TunnelManagerFacade {
         _clientPeerSelector = new ClientPeerSelector(ctx);
 
         ExploratoryPeerSelector selector = new ExploratoryPeerSelector(_context);
-        TunnelPoolSettings inboundSettings = new TunnelPoolSettings(null, true, true);
+        TunnelPoolSettings inboundSettings = new TunnelPoolSettings(true);
         _inboundExploratory = new TunnelPool(_context, this, inboundSettings, selector);
-        TunnelPoolSettings outboundSettings = new TunnelPoolSettings(null, true, false);
+        TunnelPoolSettings outboundSettings = new TunnelPoolSettings(false);
         _outboundExploratory = new TunnelPool(_context, this, outboundSettings, selector);
         
         // threads will be started in startup()
-- 
GitLab