diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java index b44b29bc90..aac2767f3c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java @@ -11,6 +11,7 @@ public class ConfigClientsHandler extends FormHandler { private String _numClients; private String _numTunnels; private String _numHops; + private String _numHopsOutbound; private boolean _shouldSave; public void ConfigNetHandler() { @@ -36,6 +37,9 @@ public class ConfigClientsHandler extends FormHandler { public void setTunneldepth(String num) { _numHops = (num != null ? num.trim() : null); } + public void setTunneldepthoutbound(String num) { + _numHopsOutbound = (num != null ? num.trim() : null); + } /** * The user made changes to the network config and wants to save them, so @@ -63,6 +67,12 @@ public class ConfigClientsHandler extends FormHandler { saveRequired = true; } + if ( (_numHopsOutbound != null) && (_numHopsOutbound.length() > 0) ) { + _context.router().setConfigSetting(ClientTunnelSettings.PROP_DEPTH_OUTBOUND, _numHopsOutbound); + addFormNotice("Updating default outbound tunnel length to " + _numHopsOutbound); + saveRequired = true; + } + if (saveRequired) { boolean saved = _context.router().saveConfig(); if (saved) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java index 5e2dcabdf9..215e13dabf 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java @@ -114,4 +114,31 @@ public class ConfigClientsHelper { buf.append("\n"); return buf.toString(); } + + public String getTunnelDepthOutboundSelectBox() { + int count = ClientTunnelSettings.DEFAULT_DEPTH_OUTBOUND; + String val = _context.router().getConfigSetting(ClientTunnelSettings.PROP_DEPTH_OUTBOUND); + if (val != null) { + try { + count = Integer.parseInt(val); + } catch (NumberFormatException nfe) { + // ignore, use default from above + } + } + StringBuffer buf = new StringBuffer(1024); + buf.append("\n"); + return buf.toString(); + } } diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp index f1ab29d97a..369df5ead6 100644 --- a/apps/routerconsole/jsp/configclients.jsp +++ b/apps/routerconsole/jsp/configclients.jsp @@ -34,6 +34,8 @@
Default number of hops per tunnel:
+ Hops per outbound tunnel: +

diff --git a/build.xml b/build.xml index 8b037a0e4f..cdde6dbf91 100644 --- a/build.xml +++ b/build.xml @@ -230,6 +230,7 @@ + diff --git a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java index 87b5616bb2..bb44ac7660 100644 --- a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java +++ b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java @@ -16,6 +16,7 @@ import java.util.Properties; import java.util.StringTokenizer; import net.i2p.I2PAppContext; +import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.util.Log; @@ -61,12 +62,10 @@ public class HostsTxtNamingService extends NamingService { for (int i = 0; i < filenames.size(); i++) { String hostsfile = (String)filenames.get(i); Properties hosts = new Properties(); - FileInputStream fis = null; try { File f = new File(hostsfile); if ( (f.exists()) && (f.canRead()) ) { - fis = new FileInputStream(f); - hosts.load(fis); + DataHelper.loadProps(hosts, f); String key = hosts.getProperty(hostname); if ( (key != null) && (key.trim().length() > 0) ) { @@ -78,11 +77,6 @@ public class HostsTxtNamingService extends NamingService { } } catch (Exception ioe) { _log.error("Error loading hosts file " + hostsfile, ioe); - } finally { - if (fis != null) try { - fis.close(); - } catch (IOException ioe) { // nop - } } // not found, continue to the next file } diff --git a/history.txt b/history.txt index 44c54334ef..ee62e64f22 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,13 @@ -$Id: history.txt,v 1.63 2004/11/05 05:53:41 jrandom Exp $ +$Id: history.txt,v 1.64 2004/11/06 02:59:54 jrandom Exp $ + +2004-11-06 jrandom + * Expose a drop down on the /configclients.jsp to enter the outbound + tunnel depth. + * Improved *hosts.txt loading + * Explicitly override the JVM's timezone settings to use GMT so that + any client applications which use timezones won't leak sensitive + data (thanks gott!) + * Bundle sam.jar in the update (thanks duck!) 2004-11-06 jrandom * Fix for a long standing synchronization bug in the SDK that in rare diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java index 3cd980d5fc..868e37c03a 100644 --- a/router/java/src/net/i2p/router/Router.java +++ b/router/java/src/net/i2p/router/Router.java @@ -80,6 +80,9 @@ public class Router { System.setProperty("networkaddress.cache.ttl", "0"); // (no need for keepalive) System.setProperty("http.keepAlive", "false"); + System.setProperty("user.timezone", "GMT"); + // just in case, lets make it explicit... + TimeZone.setDefault(TimeZone.getTimeZone("GMT")); } public Router() { this(null, null); } diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index ec84241a05..f2db5752a5 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.69 $ $Date: 2004/11/05 05:53:40 $"; + public final static String ID = "$Revision: 1.70 $ $Date: 2004/11/06 02:59:54 $"; public final static String VERSION = "0.4.1.3"; - public final static long BUILD = 10; + public final static long BUILD = 11; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION); System.out.println("Router ID: " + RouterVersion.ID);