diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
index 18cf7da4f..5ed8e26af 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
@@ -139,23 +139,63 @@ public class EditBean extends IndexBean {
}
}
- public int getTunnelCount(int tunnel, int defaultCount) {
+ public int getTunnelQuantity(int tunnel, int defaultQuantity) {
TunnelController tun = getController(tunnel);
if (tun != null) {
Properties opts = getOptions(tun);
if (opts != null) {
String len = opts.getProperty("inbound.quantity");
- if (len == null) return defaultCount;
+ if (len == null) return defaultQuantity;
try {
return Integer.parseInt(len);
} catch (NumberFormatException nfe) {
- return defaultCount;
+ return defaultQuantity;
}
} else {
- return defaultCount;
+ return defaultQuantity;
}
} else {
- return defaultCount;
+ return defaultQuantity;
+ }
+ }
+
+ public int getTunnelBackupQuantity(int tunnel, int defaultBackupQuantity) {
+ TunnelController tun = getController(tunnel);
+ if (tun != null) {
+ Properties opts = getOptions(tun);
+ if (opts != null) {
+ String len = opts.getProperty("inbound.backupQuantity");
+ if (len == null) return defaultBackupQuantity;
+ try {
+ return Integer.parseInt(len);
+ } catch (NumberFormatException nfe) {
+ return defaultBackupQuantity;
+ }
+ } else {
+ return defaultBackupQuantity;
+ }
+ } else {
+ return defaultBackupQuantity;
+ }
+ }
+
+ public int getTunnelVariance(int tunnel, int defaultVariance) {
+ TunnelController tun = getController(tunnel);
+ if (tun != null) {
+ Properties opts = getOptions(tun);
+ if (opts != null) {
+ String len = opts.getProperty("inbound.lengthVariance");
+ if (len == null) return defaultVariance;
+ try {
+ return Integer.parseInt(len);
+ } catch (NumberFormatException nfe) {
+ return defaultVariance;
+ }
+ } else {
+ return defaultVariance;
+ }
+ } else {
+ return defaultVariance;
}
}
@@ -187,6 +227,10 @@ public class EditBean extends IndexBean {
String val = opts.getProperty(key);
if ("inbound.length".equals(key)) continue;
if ("outbound.length".equals(key)) continue;
+ if ("inbound.lengthVariance".equals(key)) continue;
+ if ("outbound.lengthVariance".equals(key)) continue;
+ if ("inbound.backupQuantity".equals(key)) continue;
+ if ("outbound.backupQuantity".equals(key)) continue;
if ("inbound.quantity".equals(key)) continue;
if ("outbound.quantity".equals(key)) continue;
if ("inbound.nickname".equals(key)) continue;
@@ -224,4 +268,4 @@ public class EditBean extends IndexBean {
}
return props;
}
-}
+}
\ No newline at end of file
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index 92b319544..43e85bf49 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -38,7 +38,9 @@ public class IndexBean {
private String _i2cpHost;
private String _i2cpPort;
private String _tunnelDepth;
- private String _tunnelCount;
+ private String _tunnelQuantity;
+ private String _tunnelVariance;
+ private String _tunnelBackupQuantity;
private boolean _connectDelay;
private String _customOptions;
private String _proxyList;
@@ -64,6 +66,10 @@ public class IndexBean {
static final String PROP_NONCE = IndexBean.class.getName() + ".nonce";
static final String CLIENT_NICKNAME = "shared clients";
+ public static final String PROP_THEME_NAME = "routerconsole.theme";
+ public static final String PROP_CSS_DISABLED = "routerconsole.css.disabled";
+ public static final String PROP_JS_DISABLED = "routerconsole.javascript.disabled";
+
public IndexBean() {
_context = I2PAppContext.getGlobalContext();
_log = _context.logManager().getLog(IndexBean.class);
@@ -121,13 +127,13 @@ public class IndexBean {
return "";
if ( (_prevNonce != _curNonce) && (!validPassphrase(_passphrase)) )
return "Invalid nonce, are you being spoofed?";
- if ("Stop all tunnels".equals(_action))
+ if ("Stop all".equals(_action))
return stopAll();
- else if ("Start all tunnels".equals(_action))
+ else if ("Start all".equals(_action))
return startAll();
else if ("Restart all".equals(_action))
return restartAll();
- else if ("Reload config".equals(_action))
+ else if ("Reload configuration".equals(_action))
return reloadConfig();
else if ("stop".equals(_action))
return stop();
@@ -213,14 +219,22 @@ public class IndexBean {
"client".equals(c.getType())
) && "true".equalsIgnoreCase(c.getSharedClient())) {
Properties cOpt = c.getConfig("");
- if (_tunnelCount != null) {
- cOpt.setProperty("option.inbound.quantity", _tunnelCount);
- cOpt.setProperty("option.outbound.quantity", _tunnelCount);
+ if (_tunnelQuantity != null) {
+ cOpt.setProperty("option.inbound.quantity", _tunnelQuantity);
+ cOpt.setProperty("option.outbound.quantity", _tunnelQuantity);
}
if (_tunnelDepth != null) {
cOpt.setProperty("option.inbound.length", _tunnelDepth);
cOpt.setProperty("option.outbound.length", _tunnelDepth);
}
+ if (_tunnelVariance != null) {
+ cOpt.setProperty("option.inbound.lengthVariance", _tunnelVariance);
+ cOpt.setProperty("option.outbound.lengthVariance", _tunnelVariance);
+ }
+ if (_tunnelBackupQuantity != null) {
+ cOpt.setProperty("option.inbound.backupQuantity", _tunnelBackupQuantity);
+ cOpt.setProperty("option.outbound.backupQuantity", _tunnelBackupQuantity);
+ }
cOpt.setProperty("option.inbound.nickname", CLIENT_NICKNAME);
cOpt.setProperty("option.outbound.nickname", CLIENT_NICKNAME);
@@ -275,6 +289,24 @@ public class IndexBean {
// The remaining methods are simple bean props for the jsp to query
////
+ public String getTheme() {
+ String theme = _context.getProperty(PROP_THEME_NAME);
+ if (theme != null)
+ return "/themes/console/" + theme + "/";
+ else
+ return "/themes/console/";
+ }
+
+ public boolean allowCSS() {
+ String css = _context.getProperty(PROP_CSS_DISABLED);
+ return (css == null);
+ }
+
+ public boolean allowJS() {
+ String js = _context.getProperty(PROP_JS_DISABLED);
+ return (js == null);
+ }
+
public int getTunnelCount() {
if (_group == null) return 0;
return _group.getControllers().size();
@@ -313,10 +345,10 @@ public class IndexBean {
}
public String getTypeName(String internalType) {
- if ("client".equals(internalType)) return "Client proxy";
- else if ("httpclient".equals(internalType)) return "HTTP proxy";
- else if ("ircclient".equals(internalType)) return "IRC proxy";
- else if ("server".equals(internalType)) return "Server";
+ if ("client".equals(internalType)) return "Standard client";
+ else if ("httpclient".equals(internalType)) return "HTTP client";
+ else if ("ircclient".equals(internalType)) return "IRC client";
+ else if ("server".equals(internalType)) return "Standard server";
else if ("httpserver".equals(internalType)) return "HTTP server";
else return internalType;
}
@@ -424,8 +456,16 @@ public class IndexBean {
_tunnelDepth = (tunnelDepth != null ? tunnelDepth.trim() : null);
}
/** how many parallel inbound tunnels to use */
- public void setTunnelCount(String tunnelCount) {
- _tunnelCount = (tunnelCount != null ? tunnelCount.trim() : null);
+ public void setTunnelQuantity(String tunnelQuantity) {
+ _tunnelQuantity = (tunnelQuantity != null ? tunnelQuantity.trim() : null);
+ }
+ /** how much randomisation to apply to the depth of tunnels */
+ public void setTunnelVariance(String tunnelVariance) {
+ _tunnelVariance = (tunnelVariance != null ? tunnelVariance.trim() : null);
+ }
+ /** how many tunnels to hold in reserve to guard against failures */
+ public void setTunnelBackupQuantity(String tunnelBackupQuantity) {
+ _tunnelBackupQuantity = (tunnelBackupQuantity != null ? tunnelBackupQuantity.trim() : null);
}
/** what I2P session overrides should be used */
public void setCustomOptions(String customOptions) {
@@ -582,6 +622,7 @@ public class IndexBean {
} else {
return null;
}
+
return config;
}
@@ -611,6 +652,10 @@ public class IndexBean {
if ("outbound.length".equals(key)) continue;
if ("inbound.quantity".equals(key)) continue;
if ("outbound.quantity".equals(key)) continue;
+ if ("inbound.lengthVariance".equals(key)) continue;
+ if ("outbound.lengthVariance".equals(key)) continue;
+ if ("inbound.backupQuantity".equals(key)) continue;
+ if ("outbound.backupQuantity".equals(key)) continue;
if ("inbound.nickname".equals(key)) continue;
if ("outbound.nickname".equals(key)) continue;
if ("i2p.streaming.connectDelay".equals(key)) continue;
@@ -621,14 +666,22 @@ public class IndexBean {
config.setProperty("startOnLoad", _startOnLoad + "");
- if (_tunnelCount != null) {
- config.setProperty("option.inbound.quantity", _tunnelCount);
- config.setProperty("option.outbound.quantity", _tunnelCount);
+ if (_tunnelQuantity != null) {
+ config.setProperty("option.inbound.quantity", _tunnelQuantity);
+ config.setProperty("option.outbound.quantity", _tunnelQuantity);
}
if (_tunnelDepth != null) {
config.setProperty("option.inbound.length", _tunnelDepth);
config.setProperty("option.outbound.length", _tunnelDepth);
}
+ if (_tunnelVariance != null) {
+ config.setProperty("option.inbound.lengthVariance", _tunnelVariance);
+ config.setProperty("option.outbound.lengthVariance", _tunnelVariance);
+ }
+ if (_tunnelBackupQuantity != null) {
+ config.setProperty("option.inbound.backupQuantity", _tunnelBackupQuantity);
+ config.setProperty("option.outbound.backupQuantity", _tunnelBackupQuantity);
+ }
if (_connectDelay)
config.setProperty("option.i2p.streaming.connectDelay", "1000");
else
@@ -673,4 +726,4 @@ public class IndexBean {
buf.append((String)msgs.get(i)).append("\n");
}
}
-}
+}
\ No newline at end of file
diff --git a/apps/i2ptunnel/jsp/edit.jsp b/apps/i2ptunnel/jsp/edit.jsp
index d9c6bc407..931629fb1 100644
--- a/apps/i2ptunnel/jsp/edit.jsp
+++ b/apps/i2ptunnel/jsp/edit.jsp
@@ -1,26 +1,25 @@
-<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean" %>
-
-<% String tun = request.getParameter("tunnel");
- if (tun != null) {
- try {
- int curTunnel = Integer.parseInt(tun);
- if (EditBean.staticIsClient(curTunnel)) {
- %> <%
- } else {
- %> <%
- }
- } catch (NumberFormatException nfe) {
- %>Invalid tunnel parameter<%
- }
- } else {
- String type = request.getParameter("type");
- int curTunnel = -1;
- if ("client".equals(type) || "httpclient".equals(type) || "ircclient".equals(type)) {
- %> <%
- } else if ("server".equals(type) || "httpserver".equals(type)) {
- %> <%
+<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean" %><%
+String tun = request.getParameter("tunnel");
+ if (tun != null) {
+ try {
+ int curTunnel = Integer.parseInt(tun);
+ if (EditBean.staticIsClient(curTunnel)) {
+ %> <%
} else {
- %>Invalid tunnel type<%
+ %> <%
}
+ } catch (NumberFormatException nfe) {
+ %>Invalid tunnel parameter<%
}
+} else {
+ String type = request.getParameter("type");
+ int curTunnel = -1;
+ if ("client".equals(type) || "httpclient".equals(type) || "ircclient".equals(type)) {
+ %> <%
+ } else if ("server".equals(type) || "httpserver".equals(type)) {
+ %> <%
+ } else {
+ %>Invalid tunnel type<%
+ }
+}
%>
\ No newline at end of file
diff --git a/apps/i2ptunnel/jsp/editClient.jsp b/apps/i2ptunnel/jsp/editClient.jsp
index 5fdef6906..c9378d630 100644
--- a/apps/i2ptunnel/jsp/editClient.jsp
+++ b/apps/i2ptunnel/jsp/editClient.jsp
@@ -1,4 +1,5 @@
-<%@page contentType="text/html" %>
+<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean"%>
+
<% String tun = request.getParameter("tunnel");
int curTunnel = -1;
@@ -10,284 +11,277 @@
}
}
%>
-
+
-I2PTunnel Webmanager
+ I2PTunnel Webmanager - Edit
+
+
+
+ <% if (editBean.allowCSS()) {
+ %>
+
+
+ <% }
+ %>
-
-
-
-
+
+
+
+
+
+
+
+
+ Tunnel Options:
+
+
+
+ Dept h:
+
+
+ <% int tunnelDepth = editBean.getTunnelDepth(curTunnel, 2);
+ %>>0 hop tunnel (low anonymity, low latency)
+ >1 hop tunnel (medium anonymity, medium latency)
+ >2 hop tunnel (high anonymity, high latency)
+ <% if (tunnelDepth > 2) {
+ %> <%=tunnelDepth%> hop tunnel
+ <% }
+ %>
+
+
+
+ V ariance:
+
+
+ <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, -1);
+ %>>0 hop variance (no randomisation, consistant performance)
+ >+/- 0-1 hop variance (standard randomisation, standard performance)
+ >+/- 0-2 hop variance (high randomisation, variable performance)
+ >+ 0-1 hop variance (medium additive randomisation, subtractive performance)
+ >+ 0-2 hop variance (high additive randomisation, subtractive performance)
+ <% if (tunnelVariance > 2 || tunnelVariance < -2) {
+ %> <%= (tunnelVariance > 2 ? "+ " : "+/- ") %>0-<%=tunnelVariance%> hop variance
+ <% }
+ %>
+
+
+
+ C ount:
+
+
+ <% int tunnelQuantity = editBean.getTunnelQuantity(curTunnel, 2);
+ %>>1 inbound tunnel (low bandwidth usage, less reliability)
+ >2 inbound tunnels (standard bandwidth usage, standard reliability)
+ >3 inbound tunnels (higher bandwidth usage, higher reliability)
+ <% if (tunnelQuantity > 3) {
+ %> <%=tunnelQuantity%> inbound tunnels
+ <% }
+ %>
+
+
+
+ B ackup Count:
+
+
+ <% int tunnelBackupQuantity = editBean.getTunnelBackupQuantity(curTunnel, 0);
+ %>>0 backup tunnels (0 redundancy, no added resource usage)
+ >1 backup tunnel (low redundancy, low resource usage)
+ >2 backup tunnels (medium redundancy, medium resource usage)
+ >3 backup tunnels (high redundancy, high resource usage)
+ <% if (tunnelBackupQuantity > 3) {
+ %> <%=tunnelBackupQuantity%> backup tunnels
+ <% }
+ %>
+
+
+
+
+
+
+
+ I2CP Options:
+
+
+
+ Ho st:
+
+
+
+
+
+ Por t:
+
+
+
+
+
+
+
+
+
+
+ Cu stom options:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/i2ptunnel/jsp/editServer.jsp b/apps/i2ptunnel/jsp/editServer.jsp
index 60959dd5f..943357f61 100644
--- a/apps/i2ptunnel/jsp/editServer.jsp
+++ b/apps/i2ptunnel/jsp/editServer.jsp
@@ -1,4 +1,5 @@
-<%@page contentType="text/html" %>
+<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean"%>
+
<% String tun = request.getParameter("tunnel");
int curTunnel = -1;
@@ -10,224 +11,249 @@
}
}
%>
-
+
-I2PTunnel Webmanager
+ I2PTunnel Webmanager - Edit
+
+
+
+ <% if (editBean.allowCSS()) {
+ %>
+
+
+ <% }
+ %>
-
-
- " />
-
-
-
-
-
-
-
-
-<% if (curTunnel >= 0) { %>
-Edit server settings
-<% } else { %>
-New server settings
-<% } %>
-
-
-
-Name:
-
-
-
-
-
-
-Type:
-<%
-if (curTunnel >= 0) {
- %><%=editBean.getTunnelType(curTunnel)%>
-
-<%
-} else {
- %><%=editBean.getTypeName(request.getParameter("type"))%>
- " />
-<%
-}
-%>
-
-
-Description:
-
-
-
-
-
-
-Start automatically?:
-
-
-<% if (editBean.startAutomatically(curTunnel)) { %>
-
-<% } else { %>
-
-<% } %>
-(Check the Box for 'YES')
-
-
-
- Target:
-
-
-Host:
-Port:
-
-
-<% String curType = editBean.getInternalType(curTunnel);
- if ( (curType == null) || (curType.trim().length() <= 0) )
- curType = request.getParameter("type");
- if ("httpserver".equals(curType)) { %>
-
-Website name:
-
-
-<% } %>
-
-Private key file:
-
-
-
-
-Profile:
-
-
-
-<% if (editBean.isInteractive(curTunnel)) { %>
-interactive connection
-bulk connection (downloads/websites/BT)
-<% } else { %>
-interactive connection
-bulk connection (downloads/websites/BT)
-<% } %>
-
-
-
-
-Local destination: (if known)
-
-
-
-
-
-Advanced networking options
-
-
-
-
-
-Tunnel depth:
-
-
-<% int tunnelDepth = editBean.getTunnelDepth(curTunnel, 2);
- switch (tunnelDepth) {
- case 0: %>
-0 hop tunnel (low anonymity, low latency)
-1 hop tunnel (medium anonymity, medium latency)
-2 hop tunnel (high anonymity, high latency)
-<% break;
- case 1: %>
-0 hop tunnel (low anonymity, low latency)
-1 hop tunnel (medium anonymity, medium latency)
-2 hop tunnel (high anonymity, high latency)
-<% break;
- case 2: %>
-0 hop tunnel (low anonymity, low latency)
-1 hop tunnel (medium anonymity, medium latency)
-2 hop tunnel (high anonymity, high latency)
-<% break;
- default: %>
-0 hop tunnel (low anonymity, low latency)
-1 hop tunnel (medium anonymity, medium latency)
-2 hop tunnel (high anonymity, high latency)
-<%=tunnelDepth%> hop tunnel
-<% } %>
-
-
-
-
-Tunnel count:
-
-
-
-<% int tunnelCount = editBean.getTunnelCount(curTunnel, 2);
- switch (tunnelCount) {
- case 1: %>
-1 inbound tunnel (low bandwidth usage, less reliability)
-2 inbound tunnels (standard bandwidth usage, standard reliability)
-3 inbound tunnels (higher bandwidth usage, higher reliability)
-<% break;
- case 2: %>
-1 inbound tunnel (low bandwidth usage, less reliability)
-2 inbound tunnels (standard bandwidth usage, standard reliability)
-3 inbound tunnels (higher bandwidth usage, higher reliability)
-<% break;
- case 3: %>
-1 inbound tunnel (low bandwidth usage, less reliability)
-2 inbound tunnels (standard bandwidth usage, standard reliability)
-3 inbound tunnels (higher bandwidth usage, higher reliability)
-<% break;
- default: %>
-1 inbound tunnel (low bandwidth usage, less reliability)
-2 inbound tunnels (standard bandwidth usage, standard reliability)
-3 inbound tunnels (higher bandwidth usage, higher reliability)
-<%=tunnelDepth%> inbound tunnels
-<% } %>
-
-
-
-I2CP host:
-
-
-
-
-
-
-I2CP port:
-
-
-
-
-
-
-Custom options:
-
-
-
-
-
-
-
-
-
-
-
-
-Save:
-
-
-
-
-
-
-Delete?
-
-
-
-confirm delete:
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ N ame:
+
+
+
+
+ Type:
+ <%=tunnelTypeName%>
+
+
+
+ De scription:
+
+
+
+
+
+ A uto Start:
+
+ class="tickbox" />
+
+
+
+
+
+
+
+
+ Target:
+
+
+
+ H ost:
+
+
+
+
+
+ P ort:
+
+
+
+
+
+
+
+
+ <% if ("httpserver".equals(tunnelType)) {
+ %>
+
+ W ebsite name:
+
+
+
+ <% }
+ %>
+
+ Private k ey file:
+
+
+
+
+
+ Prof ile:
+
+
+ <% boolean interactiveProfile = editBean.isInteractive(curTunnel);
+ %>value="interactive">interactive connection
+ value="bulk">bulk connection (downloads/websites/BT)
+
+
+
+
+ L ocal destination:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tunnel Options:
+
+
+
+ Dept h:
+
+
+ <% int tunnelDepth = editBean.getTunnelDepth(curTunnel, 2);
+ %>>0 hop tunnel (low anonymity, low latency)
+ >1 hop tunnel (medium anonymity, medium latency)
+ >2 hop tunnel (high anonymity, high latency)
+ <% if (tunnelDepth > 2) {
+ %> <%=tunnelDepth%> hop tunnel
+ <% }
+ %>
+
+
+
+ V ariance:
+
+
+ <% int tunnelVariance = editBean.getTunnelVariance(curTunnel, -1);
+ %>>0 hop variance (no randomisation, consistant performance)
+ >+/- 0-1 hop variance (standard randomisation, standard performance)
+ >+/- 0-2 hop variance (high randomisation, variable performance)
+ >+ 0-1 hop variance (medium additive randomisation, subtractive performance)
+ >+ 0-2 hop variance (high additive randomisation, subtractive performance)
+ <% if (tunnelVariance > 2 || tunnelVariance < -2) {
+ %> <%= (tunnelVariance > 2 ? "+ " : "+/- ") %>0-<%=tunnelVariance%> hop variance
+ <% }
+ %>
+
+
+
+ C ount:
+
+
+ <% int tunnelQuantity = editBean.getTunnelQuantity(curTunnel, 2);
+ %>>1 inbound tunnel (low bandwidth usage, less reliability)
+ >2 inbound tunnels (standard bandwidth usage, standard reliability)
+ >3 inbound tunnels (higher bandwidth usage, higher reliability)
+ <% if (tunnelQuantity > 3) {
+ %> <%=tunnelQuantity%> inbound tunnels
+ <% }
+ %>
+
+
+
+ B ackup Count:
+
+
+ <% int tunnelBackupQuantity = editBean.getTunnelBackupQuantity(curTunnel, 0);
+ %>>0 backup tunnels (0 redundancy, no added resource usage)
+ >1 backup tunnel (low redundancy, low resource usage)
+ >2 backup tunnels (medium redundancy, medium resource usage)
+ >3 backup tunnels (high redundancy, high resource usage)
+ <% if (tunnelBackupQuantity > 3) {
+ %> <%=tunnelBackupQuantity%> backup tunnels
+ <% }
+ %>
+
+
+
+
+
+
+
+ I2CP Options:
+
+
+
+ Ho st:
+
+
+
+
+
+ Por t:
+
+
+
+
+
+
+
+
+
+
+ Cu stom options:
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/apps/i2ptunnel/jsp/index.jsp b/apps/i2ptunnel/jsp/index.jsp
index b66c18d50..50c71aec7 100644
--- a/apps/i2ptunnel/jsp/index.jsp
+++ b/apps/i2ptunnel/jsp/index.jsp
@@ -1,185 +1,258 @@
-<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.IndexBean" %>
-
+<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.IndexBean"%>
+
-
-
+
-I2PTunnel Webmanager
+ I2PTunnel Webmanager - List
+
+
+
+
+ <% if (indexBean.allowCSS()) {
+ %>
+
+
+ <% }
+ %>
-
-
-
-
-
-
-
-New Messages:
-refresh
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-Your Server Tunnels:
-
-
-
-
-Name:
-
-
-Points at:
-
-
-Status:
-
-
+
-<% for (int curServer = 0; curServer < indexBean.getTunnelCount(); curServer++) {
- if (indexBean.isClient(curServer)) continue; %>
+
+
+
-
-
-<%=indexBean.getTunnelName(curServer)%>
-
-<%=indexBean.getServerTarget(curServer)%>
-<%
- switch (indexBean.getTunnelStatus(curServer)) {
- case IndexBean.RUNNING:
-%>Running
-[STOP] <%
- if ("httpserver".equals(indexBean.getInternalType(curServer))) {
-%> (preview )<%
- }
- break;
- case IndexBean.NOT_RUNNING:
-%>Not Running
-[START] <%
- break;
- case IndexBean.STARTING:
-%>
-Starting...
-[STOP] <%
- break;
- }
-%>
-
-
-Description:
- <%=indexBean.getTunnelDescription(curServer)%>
-<% } %>
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%
+ for (int curClient = 0; curClient < indexBean.getTunnelCount(); curClient++) {
+ if (!indexBean.isClient(curClient)) continue;
+ %>
+
+
+ Port:
+ <%=indexBean.getClientPort(curClient)%>
+
+
+ Type:
+ <%=indexBean.getTunnelType(curClient)%>
+
+
+ Interface:
+ <%=indexBean.getClientInterface(curClient)%>
+
+
+
Status:
+ <%
+ switch (indexBean.getTunnelStatus(curClient)) {
+ case IndexBean.STARTING:
+ %>
Starting...
+
Stop
+ <%
+ break;
+ case IndexBean.RUNNING:
+ %>
Running
+
Stop
+ <%
+ break;
+ case IndexBean.NOT_RUNNING:
+ %>
Stopped
+
Start
+ <%
+ break;
+ }
+ %>
+
+
+ Destination:
+
+
+
+
+
Description:
+
<%=indexBean.getTunnelDescription(curClient)%>
+
+
+
+
+
+ <%
+ }
+ %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%
+ for (int curServer = 0; curServer < indexBean.getTunnelCount(); curServer++) {
+ if (indexBean.isClient(curServer)) continue;
+
+ %>
+
+
+ Points at:
+ <%=indexBean.getServerTarget(curServer)%>
+
+
+ <%
+ if ("httpserver".equals(indexBean.getInternalType(curServer)) && indexBean.getTunnelStatus(curServer) == IndexBean.RUNNING) {
+ %>
Preview:
+
Preview
+ <%
+ } else {
+ %>
+ <%
+ }
+ %>
+
+
Status:
+ <%
+ switch (indexBean.getTunnelStatus(curServer)) {
+ case IndexBean.STARTING:
+ %>
Starting...
+
Stop
+ <%
+ break;
+ case IndexBean.RUNNING:
+ %>
Running
+
Stop
+ <%
+ break;
+ case IndexBean.NOT_RUNNING:
+ %>
Stopped
+
Start
+ <%
+ break;
+ }
+ %>
+
+
+
Description:
+
<%=indexBean.getTunnelDescription(curServer)%>
+
+
+
+
+
+ <%
+ }
+ %>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/history.txt b/history.txt
index 3fbe1489e..083e6e331 100644
--- a/history.txt
+++ b/history.txt
@@ -1,4 +1,25 @@
-$Id: history.txt,v 1.317 2005/11/10 22:46:36 jrandom Exp $
+$Id: history.txt,v 1.318 2005/11/11 06:29:16 jrandom Exp $
+
+2005-11-11 cervantes
+ * Initial pass of the routerconsole revamp, starting with I2PTunnel and
+ being progressively rolled out to other sections at later dates.
+ Featuring abstracted W3C strict XHTML1.0 markup, with CSS providing
+ layout and styling.
+ * Implemented console themes. Users can create their own themes by
+ creating css files in: {i2pdir}/docs/themes/console/{themename}/
+ and activating it using the routerconsole.theme={themename} advanced
+ config property. Look at the example incomplete "defCon1" theme.
+ Note: This is very much a work in progress. Folks might want to hold-off
+ creating their own skins until the markup has solidified.
+ * Added "routerconsole.javascript.disabled=true" to disable console
+ client-side scripting and "routerconsole.css.disabled=true" to remove
+ css styling (only rolled out in the i2ptunnel interface currently)
+ * Fixed long standing bug with i2ptunnel client and server edit screens
+ where tunnel count and depth properties would fail to save. Added
+ backup quantity and variance configuration options.
+ * Added basic accessibility support (key shortcuts, linear markup, alt and
+ title information and form labels).
+ * So far only tested on IE6, Firefox 1.0.6, Opera 8 and lynx.
2005-11-11 jrandom
* Default Syndie to single user mode, and automatically log into a default
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index fba01c6d2..7a1196067 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.285 $ $Date: 2005/11/06 17:25:18 $";
+ public final static String ID = "$Revision: 1.286 $ $Date: 2005/11/10 22:46:36 $";
public final static String VERSION = "0.6.1.4";
- public final static long BUILD = 6;
+ public final static long BUILD = 7;
public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
System.out.println("Router ID: " + RouterVersion.ID);