diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/FetchAndAdd.java b/apps/i2psnark/java/src/org/klomp/snark/web/FetchAndAdd.java
index 270bba2ce..88905e689 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/FetchAndAdd.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/FetchAndAdd.java
@@ -13,6 +13,7 @@ import net.i2p.I2PAppContext;
import net.i2p.client.streaming.I2PSocketEepGet;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.crypto.SHA1;
+import net.i2p.data.DataHelper;
import net.i2p.util.EepGet;
import net.i2p.util.I2PAppThread;
import net.i2p.util.Log;
@@ -96,7 +97,7 @@ public class FetchAndAdd extends Snark implements EepGet.StatusListener, Runnabl
add(file);
} else {
_mgr.addMessage(_("Torrent was not retrieved from {0}", urlify(_url)) +
- ((_failCause != null) ? (": " + _failCause) : ""));
+ ((_failCause != null) ? (": " + DataHelper.stripHTML(_failCause)) : ""));
}
if (file != null)
file.delete();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java
index 1b97a2f20..2b38859c1 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java
@@ -71,8 +71,8 @@ public class ConfigRestartBean {
buf.append(_("Shutdown in {0}", DataHelper.formatDuration2(timeRemaining), ctx));
int tuns = ctx.tunnelManager().getParticipatingCount();
if (tuns > 0) {
- buf.append("
").append(ngettext("Please wait for routing commitment on {0} tunnel to expire",
- "Please wait for routing commitments on {0} tunnels to expire",
+ buf.append("
").append(ngettext("Please wait for routing commitment to expire for {0} tunnel",
+ "Please wait for routing commitments to expire for {0} tunnels",
tuns, ctx));
}
buf.append("
");
@@ -82,8 +82,8 @@ public class ConfigRestartBean {
buf.append(_("Restart in {0}", DataHelper.formatDuration2(timeRemaining), ctx));
int tuns = ctx.tunnelManager().getParticipatingCount();
if (tuns > 0) {
- buf.append("
").append(ngettext("Please wait for routing commitment on {0} tunnel to expire",
- "Please wait for routing commitments on {0} tunnels to expire",
+ buf.append("
").append(ngettext("Please wait for routing commitment to expire for {0} tunnel",
+ "Please wait for routing commitments to expire for {0} tunnels",
tuns, ctx));
}
buf.append("
");
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/I2PSocketManagerFull.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/I2PSocketManagerFull.java
index 64b930993..9ba9c249e 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/impl/I2PSocketManagerFull.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/I2PSocketManagerFull.java
@@ -305,8 +305,9 @@ public class I2PSocketManagerFull implements I2PSocketManager {
I2PSocket sock = connect(peer, options);
return new StandardSocket(sock);
} catch (I2PException i2pe) {
- // fixme in 1.6 change to cause
- throw new IOException(i2pe.toString());
+ IOException ioe = new IOException("connect fail");
+ ioe.initCause(i2pe);
+ throw ioe;
}
}
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/StandardServerSocket.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/StandardServerSocket.java
index a2c1a9118..8ef206862 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/impl/StandardServerSocket.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/StandardServerSocket.java
@@ -44,8 +44,9 @@ class StandardServerSocket extends ServerSocket {
throw new IOException("No socket");
return new StandardSocket(sock);
} catch (I2PException i2pe) {
- // fixme in 1.6 change to cause
- throw new IOException(i2pe.toString());
+ IOException ioe = new IOException("accept fail");
+ ioe.initCause(i2pe);
+ throw ioe;
}
}
diff --git a/history.txt b/history.txt
index 568ac36ea..7248cb176 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,8 @@
+2014-01-04 zzz
+ * Peermanager: Disable small same-country bonus
+ * Tunnels: Change client default to 3 hops in router;
+ change expl. default to 2+0 IB and 2 + 0-1 OB
+
2014-01-04 dg
* Streaming: Move streaming to new package (ticket #1135)
diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java
index 48a2f1d00..eb59ee30e 100644
--- a/router/java/src/net/i2p/router/TunnelPoolSettings.java
+++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java
@@ -5,6 +5,7 @@ import java.util.Map;
import java.util.Properties;
import net.i2p.data.Hash;
+import net.i2p.util.NativeBigInteger;
import net.i2p.util.RandomSource;
import net.i2p.util.SystemVersion;
@@ -56,8 +57,22 @@ public class TunnelPoolSettings {
// public static final int DEFAULT_REBUILD_PERIOD = 60*1000;
public static final int DEFAULT_DURATION = 10*60*1000;
//public static final int DEFAULT_LENGTH = SystemVersion.isAndroid() ? 2 : 3;
- public static final int DEFAULT_LENGTH = 2;
- public static final int DEFAULT_LENGTH_VARIANCE = 0;
+
+ private static final boolean isSlow = SystemVersion.isGNU() ||
+ SystemVersion.isARM() ||
+ SystemVersion.isApache() ||
+ !NativeBigInteger.isNative();
+
+ /** client only */
+ private static final int DEFAULT_IB_LENGTH = 3;
+ private static final int DEFAULT_OB_LENGTH = 3;
+ private static final int DEFAULT_LENGTH_VARIANCE = 0;
+ /** expl only */
+ private static final int DEFAULT_IB_EXPL_LENGTH = 2;
+ private static final int DEFAULT_OB_EXPL_LENGTH = 2;
+ private static final int DEFAULT_IB_EXPL_LENGTH_VARIANCE = 0;
+ private static final int DEFAULT_OB_EXPL_LENGTH_VARIANCE = isSlow ? 0 : 1;
+
public static final boolean DEFAULT_ALLOW_ZERO_HOP = true;
public static final int DEFAULT_IP_RESTRICTION = 2; // class B (/16)
private static final int MIN_PRIORITY = -25;
@@ -72,8 +87,13 @@ public class TunnelPoolSettings {
_backupQuantity = DEFAULT_BACKUP_QUANTITY;
// _rebuildPeriod = DEFAULT_REBUILD_PERIOD;
//_duration = DEFAULT_DURATION;
- _length = DEFAULT_LENGTH;
- _lengthVariance = DEFAULT_LENGTH_VARIANCE;
+ if (isInbound) {
+ _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;
+ }
_lengthOverride = -1;
if (isExploratory)
_allowZeroHop = true;
@@ -212,9 +232,15 @@ public class TunnelPoolSettings {
//else if (name.equalsIgnoreCase(prefix + PROP_DURATION))
// _duration = getInt(value, DEFAULT_DURATION);
else if (name.equalsIgnoreCase(prefix + PROP_LENGTH))
- _length = getInt(value, DEFAULT_LENGTH);
+ _length = getInt(value, _isInbound ?
+ (_isExploratory ? DEFAULT_IB_EXPL_LENGTH : DEFAULT_IB_LENGTH) :
+ (_isExploratory ? DEFAULT_OB_EXPL_LENGTH : DEFAULT_OB_LENGTH));
else if (name.equalsIgnoreCase(prefix + PROP_LENGTH_VARIANCE))
- _lengthVariance = getInt(value, DEFAULT_LENGTH_VARIANCE);
+ _lengthVariance = getInt(value, _isExploratory ?
+ (_isInbound ?
+ DEFAULT_IB_EXPL_LENGTH_VARIANCE :
+ DEFAULT_OB_EXPL_LENGTH_VARIANCE) :
+ DEFAULT_LENGTH_VARIANCE);
else if (name.equalsIgnoreCase(prefix + PROP_QUANTITY))
_quantity = getInt(value, DEFAULT_QUANTITY);
// else if (name.equalsIgnoreCase(prefix + PROP_REBUILD_PERIOD))
diff --git a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java
index 2ff865082..0979f5d4e 100644
--- a/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java
+++ b/router/java/src/net/i2p/router/peermanager/CapacityCalculator.java
@@ -67,6 +67,7 @@ class CapacityCalculator {
// boost connected peers
if (profile.isEstablished())
capacity += BONUS_ESTABLISHED;
+ /****
// boost same country
if (profile.isSameCountry()) {
double bonus = BONUS_SAME_COUNTRY;
@@ -78,6 +79,7 @@ class CapacityCalculator {
}
capacity += bonus;
}
+ ****/
// penalize unreachable peers
if (profile.wasUnreachable())
capacity -= PENALTY_UNREACHABLE;