diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
index 12bfaee8f4..75907ff1b2 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
@@ -18,6 +18,7 @@ import java.util.Set;
import net.i2p.time.Timestamper;
import net.i2p.router.transport.udp.UDPTransport;
import net.i2p.router.Router;
+import net.i2p.router.LoadTestManager;
import net.i2p.data.RouterInfo;
import net.i2p.router.web.ConfigServiceHandler.UpdateWrapperManagerTask;
import net.i2p.router.web.ConfigServiceHandler.UpdateWrapperManagerAndRekeyTask;
@@ -46,6 +47,7 @@ public class ConfigNetHandler extends FormHandler {
private String _outboundBurstRate;
private String _outboundBurst;
private String _reseedFrom;
+ private boolean _enableLoadTesting;
private String _sharePct;
private boolean _ratesOnly;
@@ -72,6 +74,7 @@ public class ConfigNetHandler extends FormHandler {
public void setHiddenMode(String moo) { _hiddenMode = true; }
public void setDynamicKeys(String moo) { _dynamicKeys = true; }
public void setUpdateratesonly(String moo) { _ratesOnly = true; }
+ public void setEnableloadtesting(String moo) { _enableLoadTesting = true; }
public void setHostname(String hostname) {
_hostname = (hostname != null ? hostname.trim() : null);
@@ -313,6 +316,8 @@ public class ConfigNetHandler extends FormHandler {
} else {
_context.router().setConfigSetting(Timestamper.PROP_DISABLED, "true");
}
+
+ LoadTestManager.setEnableLoadTesting(_context, _enableLoadTesting);
}
boolean saved = _context.router().saveConfig();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
index de5b17d0c7..d47ae5caf6 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
@@ -4,6 +4,7 @@ import net.i2p.time.Timestamper;
import net.i2p.router.RouterContext;
import net.i2p.router.CommSystemFacade;
import net.i2p.data.RouterAddress;
+import net.i2p.router.LoadTestManager;
import net.i2p.router.transport.udp.UDPAddress;
import net.i2p.router.transport.udp.UDPTransport;
import net.i2p.router.Router;
@@ -195,6 +196,13 @@ public class ConfigNetHelper {
return buf.toString();
}
+ public String getEnableLoadTesting() {
+ if (LoadTestManager.isEnabled(_context))
+ return " checked ";
+ else
+ return "";
+ }
+
public String getSharePercentageBox() {
String pctStr = _context.getProperty(PROP_SHARE_PERCENTAGE);
int pct = DEFAULT_SHARE_PERCENTAGE;
diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp
index 6f0c21e2bc..f18d78bcd9 100644
--- a/apps/routerconsole/jsp/config.jsp
+++ b/apps/routerconsole/jsp/config.jsp
@@ -58,6 +58,14 @@
Sharing a higher percentage will improve your anonymity and help the network
If enabled, your router will periodically anonymously probe some of your peers + to see what sort of throughput they can handle. This improves your router's ability + to pick faster peers, but can cost substantial bandwidth. Relevent data from the + load testing is fed into the profiles as well as the + test.rtt and related stats.
+diff --git a/history.txt b/history.txt index 8100070b7b..c5be6989d4 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,7 @@ -$Id: history.txt,v 1.399 2006/02/16 03:24:23 jrandom Exp $ +$Id: history.txt,v 1.400 2006/02/16 04:45:23 jrandom Exp $ + +2006-02-16 jrandom + * Add a new toggle to the web config to enable/disable the load testing 2006-02-16 jrandom * Dropped much of the abandonware from the apps/ directory diff --git a/router/java/src/net/i2p/router/LoadTestManager.java b/router/java/src/net/i2p/router/LoadTestManager.java index 241245b217..f98774cbb7 100644 --- a/router/java/src/net/i2p/router/LoadTestManager.java +++ b/router/java/src/net/i2p/router/LoadTestManager.java @@ -2,6 +2,7 @@ package net.i2p.router; import java.io.*; import java.util.*; +import net.i2p.I2PAppContext; import net.i2p.util.*; import net.i2p.data.*; import net.i2p.data.i2np.*; @@ -75,7 +76,26 @@ public class LoadTestManager { /** 4 messages per peer at a time */ private static final int CONCURRENT_MESSAGES = 1;//4; + private static final boolean DEFAULT_ENABLE = true; + + public static boolean isEnabled(I2PAppContext ctx) { + String enable = ctx.getProperty("router.enableLoadTesting"); + if ( (DEFAULT_ENABLE) && (enable != null) && (!Boolean.valueOf(enable).booleanValue()) ) + return false; + else if ( (!DEFAULT_ENABLE) && ((enable == null) || (!Boolean.valueOf(enable).booleanValue()) ) ) + return false; + return true; + } + public static void setEnableLoadTesting(RouterContext ctx, boolean enable) { + if (enable) + ctx.router().setConfigSetting("router.enableLoadTesting", "true"); + else + ctx.router().setConfigSetting("router.enableLoadTesting", "false"); + } + private int getConcurrency() { + if (!isEnabled(_context)) return 0; + int rv = CONCURRENT_PEERS; try { rv = Integer.parseInt(_context.getProperty("router.loadTestConcurrency", CONCURRENT_PEERS+"")); diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index dc1d630b92..e265eefa68 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.342 $ $Date: 2006/02/15 08:36:32 $"; + public final static String ID = "$Revision: 1.343 $ $Date: 2006/02/16 03:24:20 $"; public final static String VERSION = "0.6.1.9"; - public final static long BUILD = 27; + public final static long BUILD = 28; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID);