diff --git a/history.txt b/history.txt index 01db0b772..b5470d74c 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,9 @@ -$Id: history.txt,v 1.74 2004/11/17 13:34:25 jrandom Exp $ +$Id: history.txt,v 1.75 2004/11/17 14:42:53 jrandom Exp $ + +2004-11-19 jrandom + * Off-by-one fix to the tunnel pool management code, along side some + explicit initialization. This can affect clients whose lengths are + shorter than the router's default (thanks duck!) 2004-11-17 jrandom * Fix to propogate i2psocket options into the SAM bridge correctly (thanks diff --git a/router/java/src/net/i2p/router/ClientTunnelSettings.java b/router/java/src/net/i2p/router/ClientTunnelSettings.java index b40f2df19..3804c88f6 100644 --- a/router/java/src/net/i2p/router/ClientTunnelSettings.java +++ b/router/java/src/net/i2p/router/ClientTunnelSettings.java @@ -68,20 +68,20 @@ public class ClientTunnelSettings { public final static boolean DEFAULT_STRICT_MINIMUM_LENGTH = true; public ClientTunnelSettings() { - _numInbound = 0; - _numOutbound = 0; - _depthInbound = 0; - _depthOutbound = 0; - _msgsPerMinuteAvgInbound = 0; - _bytesPerMinuteAvgInbound = 0; - _msgsPerMinutePeakInbound = 0; - _bytesPerMinutePeakInbound = 0; - _includeDummyInbound = false; - _includeDummyOutbound = false; - _reorderInbound = false; - _reorderOutbound = false; - _inboundDuration = -1; - _enforceStrictMinimumLength = false; + _numInbound = DEFAULT_NUM_INBOUND; + _numOutbound = DEFAULT_NUM_OUTBOUND; + _depthInbound = DEFAULT_DEPTH_INBOUND; + _depthOutbound = DEFAULT_DEPTH_OUTBOUND; + _msgsPerMinuteAvgInbound = DEFAULT_MSGS_AVG; + _bytesPerMinuteAvgInbound = DEFAULT_BYTES_AVG; + _msgsPerMinutePeakInbound = DEFAULT_MSGS_PEAK; + _bytesPerMinutePeakInbound = DEFAULT_BYTES_PEAK; + _includeDummyInbound = DEFAULT_DUMMY_INBOUND; + _includeDummyOutbound = DEFAULT_DUMMY_OUTBOUND; + _reorderInbound = DEFAULT_REORDER_INBOUND; + _reorderOutbound = DEFAULT_REORDER_OUTBOUND; + _inboundDuration = DEFAULT_DURATION; + _enforceStrictMinimumLength = DEFAULT_STRICT_MINIMUM_LENGTH; } public int getNumInboundTunnels() { return _numInbound; } diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 7bb0c23c8..41d14e53e 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.79 $ $Date: 2004/11/17 13:34:26 $"; + public final static String ID = "$Revision: 1.80 $ $Date: 2004/11/17 14:42:53 $"; public final static String VERSION = "0.4.1.4"; - public final static long BUILD = 8; + public final static long BUILD = 9; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/tunnelmanager/ClientTunnelPoolManagerJob.java b/router/java/src/net/i2p/router/tunnelmanager/ClientTunnelPoolManagerJob.java index 4140af3ef..357a30c9d 100644 --- a/router/java/src/net/i2p/router/tunnelmanager/ClientTunnelPoolManagerJob.java +++ b/router/java/src/net/i2p/router/tunnelmanager/ClientTunnelPoolManagerJob.java @@ -186,12 +186,12 @@ class ClientTunnelPoolManagerJob extends JobImpl { return false; } - int length = info.getLength(); + int length = info.getLength() - 1; // -1 because .getLength() includes us if (_clientPool.getClientSettings().getEnforceStrictMinimumLength()) { if (length < _clientPool.getClientSettings().getDepthInbound()) { // we will require at least the client's length, but they dont meet it if (_log.shouldLog(Log.DEBUG)) - _log.debug("Refusing tunnel " + info.getTunnelId() + _log.debug("Strictly refusing tunnel " + info.getTunnelId() + " because it is too short (length = " + length + ", wanted = " + _clientPool.getClientSettings().getDepthInbound() + ")"); @@ -205,7 +205,7 @@ class ClientTunnelPoolManagerJob extends JobImpl { // the best we have on hand (which may be less that their requested length) // this tunnel however meets neither criteria if (_log.shouldLog(Log.DEBUG)) - _log.debug("Refusing tunnel " + info.getTunnelId() + _log.debug("Loosely refusing tunnel " + info.getTunnelId() + " because it is too short (length = " + length + ", wanted = " + _clientPool.getClientSettings().getDepthInbound() + ")"); @@ -230,7 +230,9 @@ class ClientTunnelPoolManagerJob extends JobImpl { } if (_log.shouldLog(Log.DEBUG)) - _log.debug("Accepting tunnel " + info.getTunnelId()); + _log.debug("Accepting tunnel for length=" + _clientPool.getClientSettings().getDepthInbound() + + " and dest=" + _clientPool.getDestination().calculateHash().toBase64().substring(0,6) + + " for " + info.getTunnelId()); return true; }