propagate from branch 'i2p.i2p.zzz.test' (head 2baf6dba31abb4ce4b51c8eba75b9338ee7c4998)

to branch 'i2p.i2p' (head ef05271bc6288f9ea7a52c966c8a238c9f4bdfe3)
This commit is contained in:
zzz
2009-10-23 13:40:11 +00:00
47 changed files with 2092 additions and 926 deletions

View File

@ -28,7 +28,7 @@
<h3>Bandwidth limiter</h3><p>
<b>I2P will work best if you configure your rates to match the speed of your internet connection.</b>
</p>
<div class="wideload"><table><tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps In
<div class="wideload"><p><table><tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps In
</td><td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)</td>
<!-- let's keep this simple...
bursting up to
@ -48,16 +48,16 @@
</tr><tr>
<td><jsp:getProperty name="nethelper" property="sharePercentageBox" /> Share</td>
<td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)
</td></tr></table></div></p>
</td></tr></table></p></div></p>
<% int share = nethelper.getShareBandwidth();
if (share < 12) {
out.print("<b>NOTE</b>: You have configured I2P to share only " + share + "KBps. ");
out.print("<p><b>NOTE</b>: You have configured I2P to share only " + share + "KBps. ");
out.print("I2P requires at least 12KBps to enable sharing. ");
out.print("Please enable sharing (participating in tunnels) by configuring more bandwidth. ");
out.print("It improves your anonymity by creating cover traffic, and helps the network.<br>");
out.print("It improves your anonymity by creating cover traffic, and helps the network.</p>");
} else {
out.print("You have configured I2P to share<b> " + share + "KBps</b>. ");
out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<hr>");
out.print("<p>You have configured I2P to share<b> " + share + "KBps</b>. ");
out.print("The higher the share bandwidth the more you improve your anonymity and help the network.</p><hr>");
}
%>
<div class="formaction">
@ -160,7 +160,7 @@
<p>
UPnP is used to communicate with Internet Gateway Devices (IGDs) to detect the external IP address
and forward ports.
UPnP support is beta, and may not work for any number of reasons:
UPnP support is beta, and may not work for any number of reasons:
<ul>
<li class="tidylist">No UPnP-compatible device present
<li class="tidylist">UPnP disabled on the device
@ -168,9 +168,9 @@
<li class="tidylist">Bugs in the device's UPnP implementation
<li class="tidylist">Multiple firewall/routers in the internet connection path
<li class="tidylist">UPnP device change, reset, or address change
</ul><br>
</ul></p><p>
Reviewing the <a href="peers.jsp#upnp">UPnP status</a> may help.
UPnP may be enabled or disabled above, but a change requires a router restart to take effect.
UPnP may be enabled or disabled above, but a change requires a router restart to take effect.</p>
<p>Hostnames entered above will be published in the network database.
They are <b>not private</b>.
Also, <b>do not enter a private IP address</b> like 127.0.0.1 or 192.168.1.1.
@ -233,7 +233,7 @@
<li class="tidylist"><b>ERR - Client Manager I2CP Error - check logs</b> -
This is usually due to a port 7654 conflict. Check the logs to verify. Do you have another I2P instance running?
Stop the conflicting program and restart I2P.
</ul><hr>
</ul></p><hr>
<!--
<b>Dynamic Router Keys: </b>
<input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br>

View File

@ -2,8 +2,9 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config advanced</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config advanced")%>
</head><body>
<%@include file="summary.jsp" %>
@ -11,7 +12,7 @@
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h1>I2P Advanced Configuration</h1>
<h1><%=cssHelper._("I2P Advanced Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -28,10 +29,10 @@
System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" />
<h3>Advanced I2P Configuration</h3>
<h3><%=cssHelper._("Advanced I2P Configuration")%></h3>
<textarea rows="32" cols="60" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br><hr>
<div class="formaction">
<input type="submit" name="shouldsave" value="Apply" />
<input type="reset" value="Cancel" /><br>
<b>NOTE:</b> Some changes may require a restart to take effect.
<b><%=cssHelper._("NOTE")%>:</b> <%=cssHelper._("Some changes may require a restart to take effect.")%>
</div></form></div></div></div></body></html>

View File

@ -2,8 +2,9 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config clients</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config clients")%>
<style type='text/css'>
button span.hide{
display:none;
@ -14,7 +15,7 @@ button span.hide{
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h1>I2P Client Configuration</h1>
<h1><%=cssHelper._("I2P Client Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -29,8 +30,8 @@ button span.hide{
if (prev != null) System.setProperty("net.i2p.router.web.ConfigClientsHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigClientsHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce")%>" />
<h3>Client Configuration</h3><p>
The Java clients listed below are started by the router and run in the same JVM.
<h3><%=cssHelper._("Client Configuration")%></h3><p>
<%=cssHelper._("The Java clients listed below are started by the router and run in the same JVM.")%>
</p><div class="wideload">
<p><jsp:getProperty name="clientshelper" property="form1" />
</p><p><i>To change other client options, edit the file
@ -38,7 +39,7 @@ button span.hide{
All changes require restart to take effect.</i>
</p><hr><div class="formaction">
<input type="submit" name="action" value="Save Client Configuration" />
</div></div><h3>WebApp Configuration</h3><p>
</div></div><h3><%=cssHelper._("WebApp Configuration")%></h3><p>
The Java web applications listed below are started by the webConsole client and run in the same JVM as the router.
They are usually web applications accessible through the router console.
They may be complete applications (e.g. i2psnark),
@ -51,7 +52,7 @@ All changes require restart to take effect.</i>
</p><div class="wideload"><p>
<jsp:getProperty name="clientshelper" property="form2" />
</p><p>
<i>All changes require restart to take effect.</i>
<i><%=cssHelper._("All changes require restart to take effect.")%></i>
</p><hr><div class="formaction">
<input type="submit" name="action" value="Save WebApp Configuration" />
</div></div></form></div></div></body></html>

View File

@ -2,12 +2,13 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config keyring</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config keyring")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Keyring Configuration</h1>
<h1><%=cssHelper._("I2P Keyring Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -17,32 +18,30 @@
<jsp:getProperty name="formhandler" property="allMessages" />
<jsp:useBean class="net.i2p.router.web.ConfigKeyringHelper" id="keyringhelper" scope="request" />
<jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<div class="configure"><p><h3>Keyring</h3>
The router keyring is used to decrypt encrypted leaseSets.
The keyring may contain keys for local or remote encrypted destinations.
<div class="configure"><h2><%=cssHelper._("Keyring")%></h2><p>
<%=cssHelper._("The router keyring is used to decrypt encrypted leaseSets.")%>
<%=cssHelper._("The keyring may contain keys for local or remote encrypted destinations.")%></p>
<div class="wideload"><p>
<jsp:getProperty name="keyringhelper" property="summary" />
</p></div>
<br>
<form action="configkeyring.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigKeyringHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigKeyringHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce")%>" />
<h3>Manual Keyring Addition</h3>
Enter keys for encrypted remote destinations here.
<h3><%=cssHelper._("Manual Keyring Addition")%></h3><p>
<%=cssHelper._("Enter keys for encrypted remote destinations here.")%>
Keys for local destinations must be entered on the <a href="i2ptunnel/index.jsp">I2PTunnel page</a>.
<p>
</p>
<div class="wideload">
<table><tr>
<td class="mediumtags" align="right">Dest. name, hash, or full key:</td>
<p><table><tr>
<td class="mediumtags" align="right"><%=cssHelper._("Dest. name, hash, or full key")%>:</td>
<td><textarea name="peer" cols="44" rows="1" style="height: 3em;" wrap="off"></textarea></td>
</tr><tr>
<td class="mediumtags" align="right">Encryption Key:</td>
<td class="mediumtags" align="right"><%=cssHelper._("Encryption Key")%>:</td>
<td><input type="text" size="55" name="key" /></td>
</tr><tr>
<td align="right" colspan="2"><input type="submit" name="action" value="Add key" />
<input type="submit" name="action" value="Delete key" /> <input type="reset" value="Cancel" /></td>
</tr></table></div></form></div></div></body></html>
</tr></table></p></div></form></div></div></body></html>

View File

@ -3,14 +3,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>I2P Router Console - config logging</title>
<%@include file="css.jsp" %>
<%=cssHelper.title("config logging")%>
</head><body>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<%@include file="summary.jsp" %>
<h1>I2P Logging Configuration</h1>
<h1><%=cssHelper._("I2P Logging Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -25,26 +25,26 @@
System.setProperty("net.i2p.router.web.ConfigLoggingHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" />
<h3>Configure I2P Logging Options</h3>
<h3><%=cssHelper._("Configure I2P Logging Options")%></h3>
<div class="wideload">
<table border="0" cellspacing="5">
<tr><td class="mediumtags" align="right"><b>Logging filename:</b></td>
<tr><td class="mediumtags" align="right"><b><%=cssHelper._("Logging filename")%>:</b></td>
<td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" />
<br><i>(the symbol '@' will be replaced during log rotation)</i></td>
</tr><tr><td class="mediumtags" align="right"><b>Log record format:</b></td>
<br><i><%=cssHelper._("(the symbol '@' will be replaced during log rotation)")%></i></td>
</tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log record format")%>:</b></td>
<td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" />
<br> <i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority,
'm' = message)</i></td>
</tr><tr><td class="mediumtags" align="right"><b>Log date format:</b></td>
</tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log date format")%>:</b></td>
<td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" />
<br> <i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss'
= second, 'SSS' = millisecond)</i></td>
</tr><tr><td class="mediumtags" align="right"><b>Max log file size:</b></td>
</tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Max log file size")%>:</b></td>
<td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" /><br></td>
</tr><tr><td class="mediumtags" align="right"><b>Default log level:</b></td>
</tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Default log level")%>:</b></td>
<td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /><br><i>(DEBUG and INFO are not recommended defaults,
as they will drastically slow down your router)</i></td>
</tr><tr><td class="mediumtags" align="right"><b>Log level overrides:</b></td>
</tr><tr><td class="mediumtags" align="right"><b><%=cssHelper._("Log level overrides")%>:</b></td>
<td><jsp:getProperty name="logginghelper" property="logLevelTable" /></td>
</tr><tr><td colspan="2"><hr></td>
</tr><tr class="tablefooter"><td colspan="2"> <div class="formaction">

View File

@ -2,12 +2,13 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config peers</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config peers")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Peer Configuration</h1>
<h1><%=cssHelper._("I2P Peer Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -31,16 +32,14 @@
if (prev != null) System.setProperty("net.i2p.router.web.ConfigPeerHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigPeerHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce")%>" />
<p>
<a name="sh"> </a>
<a name="unsh"> </a>
<a name="bonus"> </a>
<h2>Manual Peer Controls</h2>
<div class="mediumtags">Router Hash:
<input type="text" size="55" name="peer" value="<%=peer%>" /></div>
<h3>Manually Ban / Unban a Peer</h3>
Banning will prevent the participation of this peer in tunnels you create.
<hr>
<h2><%=cssHelper._("Manual Peer Controls")%></h2>
<div class="mediumtags"><p><%=cssHelper._("Router Hash")%>:
<input type="text" size="55" name="peer" value="<%=peer%>" /></p></div>
<h3><%=cssHelper._("Manually Ban / Unban a Peer")%></h3>
<p><%=cssHelper._("Banning will prevent the participation of this peer in tunnels you create.")%></p>
<div class="formaction">
<input type="submit" name="action" value="Ban peer until restart" />
<input type="submit" name="action" value="Unban peer" />
@ -49,32 +48,28 @@
<% } %>
</div>
<h3>Adjust Profile Bonuses</h3>
Bonuses may be positive or negative, and affect the peer's inclusion in Fast
<h3><%=cssHelper._("Adjust Profile Bonuses")%></h3>
<p>Bonuses may be positive or negative, and affect the peer's inclusion in Fast
and High Capacity tiers. Fast peers are used for client tunnels, and High
Capacity peers are used for some exploratory tunnels. Current bonuses are
displayed on the <a href="profiles.jsp">profiles page</a>.
<p>
displayed on the <a href="profiles.jsp">profiles page</a>.</p>
<% long speed = 0; long capacity = 0;
if (! "".equals(peer)) {
// get existing bonus values?
}
%>
<hr>
<div class="mediumtags">Speed:
<div class="mediumtags"><p><%=cssHelper._("Speed")%>:
<input type="text" size="8" name="speed" value="<%=speed%>" />
Capacity:
<%=cssHelper._("Capacity")%>:
<input type="text" size="8" name="capacity" value="<%=capacity%>" />
<input type="submit" name="action" value="Adjust peer bonuses" /></div>
</p>
<input type="submit" name="action" value="Adjust peer bonuses" /></p></div>
</form>
<a name="shitlist"> </a>
<jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="profilesHelper" property="writer" value="<%=out%>" />
<jsp:getProperty name="profilesHelper" property="shitlistSummary" />
<hr>
<div class="wideload">
<jsp:getProperty name="peerhelper" property="blocklistSummary" />
</div></div></div></body></html>
</div><hr></div></div></body></html>

View File

@ -2,12 +2,13 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config service</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config service")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Service Configuration</h1>
<h1><%=cssHelper._("I2P Service Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -21,7 +22,7 @@
if (prev != null) System.setProperty("net.i2p.router.web.ConfigServiceHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigServiceHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigServiceHandler.nonce")%>" />
<h3>Shutdown the router</h3>
<h3><%=cssHelper._("Shutdown the router")%></h3>
<p>Graceful shutdown lets the router satisfy the agreements it has already made
before shutting down, but may take a few minutes. If you need to kill the
router immediately, that option is available as well.</p>
@ -43,7 +44,7 @@
<% } %></div>
<% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %>
<h3>Systray integration</h3>
<h3><%=cssHelper._("Systray integration")%></h3>
<p>On the windows platform, there is a small application to sit in the system
tray, allowing you to view the router's status (later on, I2P client applications
will be able to integrate their own functionality into the system tray as well).
@ -51,7 +52,7 @@
<hr><div class="formaction">
<input type="submit" name="action" value="Show systray icon" />
<input type="submit" name="action" value="Hide systray icon" />
</div><h3>Run on startup</h3>
</div><h3><%=cssHelper._("Run on startup")%></h3>
<p>You can control whether I2P is run on startup or not by selecting one of the
following options - I2P will install (or remove) a service accordingly. You can
also run the <code>install_i2p_service_winnt.bat</code> (or
@ -65,7 +66,7 @@
<% } %>
<% if (System.getProperty("wrapper.version") != null) { %>
<h3>Debugging</h3>
<h3><%=cssHelper._("Debugging")%></h3>
<p>At times, it may be helpful to debug I2P by getting a thread dump. To do so,
please select the following option and review the thread dumped to
<a href="logs.jsp#servicelogs">wrapper.log</a>.</p>
@ -73,7 +74,7 @@
<input type="submit" name="action" value="Dump threads" />
<% } %></div>
<h3>Launch browser on router startup?</h3>
<h3><%=cssHelper._("Launch browser on router startup?")%></h3>
<p>I2P's main configuration interface is this web console, so for your convenience
I2P can launch a web browser pointing at
<a href="http://127.0.0.1:7657/index.jsp">http://127.0.0.1:7657/index.jsp</a> whenever

View File

@ -2,8 +2,9 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config stats</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config stats")%>
<script type="text/javascript">
function init()
{
@ -52,7 +53,7 @@ function toggleAll(category)
</script>
</head><body onLoad="init();">
<%@include file="summary.jsp" %>
<h1>I2P Stats Configuration</h1>
<h1><%=cssHelper._("I2P Stats Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -70,25 +71,25 @@ function toggleAll(category)
System.setProperty("net.i2p.router.web.ConfigStatsHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="action" value="foo" />
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" />
<h3>Configure I2P Stat Collection</h3>
Enable full stats?
<h3><%=cssHelper._("Configure I2P Stat Collection")%></h3>
<p><%=cssHelper._("Enable full stats?")%>
<input type="checkbox" class="optbox" name="isFull" value="true" <%
if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
(change requires restart to take effect)<br>
Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br>
Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br>
(<%=cssHelper._("change requires restart to take effect")%>)<br>
<%=cssHelper._("Stat file")%>: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br>
<%=cssHelper._("Filter")%>: (<a href="javascript: void(null);" onclick="toggleAll('*')"><%=cssHelper._("toggle all")%></a>)<br></p>
<div class="wideload">
<table>
<p><table>
<% while (statshelper.hasMoreStats()) {
while (statshelper.groupRequired()) { %>
<tr class="tablefooter">
<td align="left" colspan="3">
<b><%=statshelper.getCurrentGroupName()%></b>
(<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>)
(<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')"><%=cssHelper._("toggle all")%></a>)
</td></tr>
<tr class="tablefooter">
<td align="center"><b>Log</b></td>
<td align="center"><b>Graph</b></td>
<td align="center"><b><%=cssHelper._("Log")%></b></td>
<td align="center"><b><%=cssHelper._("Graph")%></b></td>
<td></td></tr>
<%
} // end iterating over required groups for the current stat %>
@ -105,7 +106,7 @@ function toggleAll(category)
} // end iterating over all stats %>
<tr><td colspan="3"></td></tr>
<tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" /></td>
<td colspan="2">Advanced filter:
<td colspan="2"><%=cssHelper._("Advanced filter")%>:
<input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr>
<tr class="tablefooter"><td colspan="3" align="right"><input type="submit" name="shouldsave" value="Save changes" /><input type="reset" value="Cancel" /></td></tr>
</table></div></form></div></div></body></html>
</table></p></div></form></div></div></body></html>

View File

@ -2,15 +2,16 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - config tunnels</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("config tunnels")%>
</head><body>
<%@include file="summary.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h1>I2P Tunnel Configuration</h1>
<h1><%=cssHelper._("I2P Tunnel Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" />
@ -20,23 +21,23 @@
<jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter("nonce")%>" />
<jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" />
<jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure"><p><i>
<div class="configure"><p>
NOTE: The default settings work for most people.
There is a fundamental tradeoff between anonymity and performance.
Tunnels longer than 3 hops (for example 2 hops + 0-2 hops, 3 hops + 0-1 hops, 3 hops + 0-2 hops),
or a high quantity + backup quantity, may severely reduce performance or reliability.
High CPU and/or high outbound bandwidth usage may result.
Change these settings with care, and adjust them if you have problems.
</i></p><div class="wideload">
<form action="configtunnels.jsp" method="POST">
<div class="wideload">
<form action="configtunnels.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" />
<jsp:getProperty name="tunnelshelper" property="form" />
<i>Note - Exploratory tunnel setting changes are stored in the router.config file.</i><br>
<i>Client tunnel changes are temporary and are not saved.</i><br>
<i>To make permanent client tunnel changes see the </i><a href="i2ptunnel/index.jsp">i2ptunnel page</a>.<br>
Note: Exploratory tunnel setting changes are stored in the router.config file.
Client tunnel changes are temporary and are not saved.
To make permanent client tunnel changes see the <a href="i2ptunnel/index.jsp">i2ptunnel page</a>.
<hr><div class="formaction"><input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" /></div>
</form></div></div></div></body></html>
</form></p></div></div></div></body></html>

View File

@ -8,7 +8,7 @@
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Update Configuration</h1>
<h1><%=cssHelper._("I2P Update Configuration")%></h1>
<div class="main" id="main">
<%@include file="confignav.jsp" %>
@ -26,32 +26,32 @@
if (prev != null) System.setProperty("net.i2p.router.web.ConfigUpdateHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
<h3>Check for I2P and news updates</h3>
<h3><%=cssHelper._("Check for I2P and news updates")%></h3>
<div class="wideload"><table border="0" cellspacing="5">
<tr><td colspan="2"></tr>
<tr><td class= "mediumtags" align="right"><b>News &amp; I2P Updates:</b></td>
<td> <% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <i>Update In Progress</i><br> <% } else { %> <input type="submit" name="action" value="Check for updates" />
<tr><td class= "mediumtags" align="right"><b><%=cssHelper._("News &amp; I2P Updates")%>:</b></td>
<td> <% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <i><%=cssHelper._("Update In Progress")%></i><br> <% } else { %> <input type="submit" name="action" value="Check for updates" />
<% } %></td></tr>
<tr><td colspan="2"><br></td></tr>
<tr><td class= "mediumtags" align="right"><b>News URL:</b></td>
<tr><td class= "mediumtags" align="right"><b><%=cssHelper._("News URL")%>:</b></td>
<td><input type="text" size="60" name="newsURL" value="<jsp:getProperty name="updatehelper" property="newsURL" />"></td>
</tr><tr><td class= "mediumtags" align="right"><b>Refresh frequency:</b>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Refresh frequency")%>:</b>
<td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" /></td><tr>
<td class= "mediumtags" align="right"><b><%=formhandler._("Update policy")%>:</b></td>
<td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" /></td>
<tr><td class= "mediumtags" align="right"><b>Update through the eepProxy?</b></td>
<tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update through the eepProxy?")%></b></td>
<td><jsp:getProperty name="updatehelper" property="updateThroughProxy" /></td>
</tr><tr><td class= "mediumtags" align="right"><b>eepProxy host:</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("eepProxy host")%>:</b></td>
<td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" /></td>
</tr><tr><td class= "mediumtags" align="right"><b>eepProxy port:</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("eepProxy port")%>:</b></td>
<td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" /></td>
</tr><tr><td class= "mediumtags" align="right"><b>Update URLs:</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update URLs")%>:</b></td>
<td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea></td>
</tr><tr><td class= "mediumtags" align="right"><b>Trusted keys:</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Trusted keys")%>:</b></td>
<td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea></td>
</tr><tr><td class= "mediumtags" align="right"><b>Update with unsigned development builds?</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Update with unsigned development builds?")%></b></td>
<td><jsp:getProperty name="updatehelper" property="updateUnsigned" /></td>
</tr><tr><td class= "mediumtags" align="right"><b>Unsigned Build URL:</b></td>
</tr><tr><td class= "mediumtags" align="right"><b><%=cssHelper._("Unsigned Build URL")%>:</b></td>
<td><input type="text" size="60" name="zipURL" value="<jsp:getProperty name="updatehelper" property="zipURL" />"></td>
</tr><tr class="tablefooter"><td colspan="2">
<div class="formaction">

View File

@ -12,8 +12,9 @@
}
// If it can't find the iframe or viewtheme.jsp I wonder if the whole thing blows up...
%>
<html><head><title>I2P Router Console - Page Not Found</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("Page Not Found")%>
</head><body>
<%
if (System.getProperty("router.consoleNonce") == null) {
@ -23,6 +24,6 @@ if (System.getProperty("router.consoleNonce") == null) {
<%@include file="summary.jsp" %>
<h1><%=ERROR_CODE%> <%=ERROR_MESSAGE%></h1>
<div class="sorry" id="warning">
Sorry! You appear to be requesting a non-existent Router Console page or resource.<hr>
Error 404: <%=ERROR_URI%> not found.
<%=cssHelper._("Sorry! You appear to be requesting a non-existent Router Console page or resource.")%><hr>
<%=cssHelper._("Error 404")%>: <%=ERROR_URI%> <%=cssHelper._("not found")%>.
</div></body></html>

View File

@ -2,12 +2,13 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - graphs</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("graphs")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Performance Graphs</h1>
<h1><%=cssHelper._("I2P Performance Graphs")%></h1>
<div class="main" id="main">
<div class="graphspanel">
<div class="widepanel">

View File

@ -7,22 +7,22 @@
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Router Help & Support</h1>
<div class="main" id="main"><div align="justify">
<div class="main" id="main"><p>
If you'd like to help improve or translate the documentation, or
help with other aspects of the project, please see the documentation for
<a href="http://www.i2p2.i2p/getinvolved.html">volunteers.</a>
<br><br>Further assistance is available here:<br></div>
</p><p>Further assistance is available here:
<ul class="links">
<li class="tidylist"><a href="http://www.i2p2.i2p/faq.html">FAQ on www.i2p2.i2p</a>
<li class="tidylist"><a href="http://www.i2p2.i2p/faq_de.html">Deutsch FAQ</a>.</ul><br>
You may also try the <a href="http://forum.i2p/">I2P forum</a>
or IRC.<br>
<li class="tidylist"><a href="http://www.i2p2.i2p/faq_de.html">Deutsch FAQ</a>.</ul>
</p><p>You may also try the <a href="http://forum.i2p/">I2P forum</a>
or IRC.</p>
<h2>Summary Bar Information</h2><div align="justify">
<h2>Summary Bar Information</h2><p>
Many of the stats on the summary bar may be
<a href="configstats.jsp">configured</a> to be
<a href="graphs.jsp">graphed</a> for further analysis.
</div><h3>General</h3><ul>
</p><h3>General</h3><ul>
<li class="tidylist"><b>Ident:</b>
The first four characters (24 bits) of your 44-character (256-bit) Base64 router hash.
The full hash is shown on your <a href="netdb.jsp?r=.">router info page</a>.
@ -75,7 +75,7 @@ The local applications connecting through your router.
These may be clients started through <a href="i2ptunnel/index.jsp">I2PTunnel</a>
or external programs connecting through SAM, BOB, or directly to I2CP.
</div><h3>Tunnels in/out</h3><div align="justify">
The actual tunnels are shown on the <a href="tunnels.jsp">the tunnels page</a>.</div><br><ul>
The actual tunnels are shown on the <a href="tunnels.jsp">the tunnels page</a>.</div><ul>
<li class="tidylist"><div align="justify"><b>Exploratory:</b>
Tunnels built by your router and used for communication with the floodfill peers,
building new tunnels, and testing existing tunnels.</div>
@ -91,7 +91,7 @@ You may also limit the total number by setting <tt>router.maxParticipatingTunnel
the <a href="configadvanced.jsp">advanced configuration page</a>. <a href="configstats.jsp#tunnel.participatingTunnels">[Enable graphing]</a>.</ul>
<h3>Congestion</h3><div align="justify">
Some basic indications of router overload:</div><br><ul>
Some basic indications of router overload:</div><ul>
<li class="tidylist"><b>Job lag:</b>
How long jobs are waiting before execution. The job queue is listed on the <a href="jobs.jsp">jobs page</a>.
Unfortunately, there are several other job queues in the router that may be congested,
@ -129,9 +129,8 @@ or reject all requests for a number of reasons, to control
the bandwidth and CPU demands and maintain capacity for
local clients.</ul>
<h2>Legal stuff</h2><div align="justify">
The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
a few notable exceptions:</div><br><ul>
<h2>Legal stuff</h2><p>The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
a few notable exceptions:</p><ul>
<li class="tidylist">ElGamal and DSA code, under the BSD license, written by TheCrypto</li>
<li class="tidylist">SHA256 and HMAC-SHA256, under the MIT license, written by the Legion of the Bouncycastle</li>
<li class="tidylist">AES code, under the Cryptix (MIT) license, written by the Cryptix team</li>

View File

@ -4,7 +4,7 @@
<html><head>
<%@include file="css.jsp" %>
<title>I2P Router Console - home</title>
<%=cssHelper.title("home")%>
</head><body>
<%
if (System.getProperty("router.consoleNonce") == null) {
@ -12,7 +12,7 @@ if (System.getProperty("router.consoleNonce") == null) {
}
%>
<%@include file="summary.jsp" %><h1>I2P Router Console</h1>
<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Router Console")%></h1>
<div class="news" id="news">
<jsp:useBean class="net.i2p.router.web.ContentHelper" id="newshelper" scope="request" />
<% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml"); %>

View File

@ -2,13 +2,14 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - job queue</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("job queue")%>
</head><body>
<%@include file="summary.jsp" %><h1>I2P Router Job Queue</h1>
<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Router Job Queue")%></h1>
<div class="main" id="main">
<jsp:useBean class="net.i2p.router.web.JobQueueHelper" id="jobQueueHelper" scope="request" />
<jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="jobQueueHelper" property="writer" value="<%=out%>" />
<jsp:getProperty name="jobQueueHelper" property="jobQueueSummary" />
</div></body></html>
<hr></div></body></html>

View File

@ -2,27 +2,28 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - logs</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("logs")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Router Logs</h1>
<h1><%=cssHelper._("I2P Router Logs")%></h1>
<div class="main" id="main">
<div class="joblog"><h3>Version:</h3><a name="version"> </a>
Please include this information in bug reports.
<div class="joblog"><h3><%=cssHelper._("I2P Version & Running Environment")%></h3><a name="version"> </a>
<i><%=cssHelper._("Please include this information in bug reports")%>:</i>
<p>
I2P <jsp:getProperty name="helper" property="version" /><br>
<%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%><br>
<%=System.getProperty("os.name")%> <%=System.getProperty("os.arch")%> <%=System.getProperty("os.version")%><br>
CPU <%=net.i2p.util.NativeBigInteger.cpuModel()%> (<%=net.i2p.util.NativeBigInteger.cpuType()%>)<br>
jbigi <%=net.i2p.util.NativeBigInteger.loadStatus()%><br>
Encoding <%=System.getProperty("file.encoding")%><br></p><br>
<b>I2P version:</b> <jsp:getProperty name="helper" property="version" /><br>
<b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%><br>
<b>Platform:</b> <%=System.getProperty("os.name")%> <%=System.getProperty("os.arch")%> <%=System.getProperty("os.version")%><br>
<b>Processor:</b> <%=net.i2p.util.NativeBigInteger.cpuModel()%> (<%=net.i2p.util.NativeBigInteger.cpuType()%>)<br>
<b>Jbigi:</b> <%=net.i2p.util.NativeBigInteger.loadStatus()%><br>
<b>Encoding:</b> <%=System.getProperty("file.encoding")%></p>
<jsp:useBean class="net.i2p.router.web.LogsHelper" id="logsHelper" scope="request" />
<jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h3>Critical logs:</h3><a name="criticallogs"> </a>
<jsp:getProperty name="logsHelper" property="criticalLogs" /><br>
<h3>Router logs (<a href="configlogging.jsp">configure</a>):</h3>
<jsp:getProperty name="logsHelper" property="logs" /><br>
<h3>Service (Wrapper) logs:</h3><a name="servicelogs"> </a>
<h3>Critical Logs</h3><a name="criticallogs"> </a>
<jsp:getProperty name="logsHelper" property="criticalLogs" />
<h3>Router Logs [<a href="configlogging.jsp">configure</a>]</h3>
<jsp:getProperty name="logsHelper" property="logs" />
<h3>Service (Wrapper) Logs</h3><a name="servicelogs"> </a>
<jsp:getProperty name="logsHelper" property="serviceLogs" />
</div></div></body></html>
</div><hr></div></body></html>

View File

@ -3,11 +3,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>I2P Router Console - network database summary</title>
<%@include file="css.jsp" %>
<%=cssHelper.title("network database summary")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Network Database Summary</h1>
<h1><%=cssHelper._("I2P Network Database Summary")%></h1>
<div class="main" id="main">
<div class="wideload">
<jsp:useBean class="net.i2p.router.web.NetDbHelper" id="netdbHelper" scope="request" />

View File

@ -2,14 +2,15 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - statistics</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("statistics")%>
</head><body>
<%@include file="summary.jsp" %>
<jsp:useBean class="net.i2p.router.web.OldConsoleHelper" id="oldhelper" scope="request" />
<jsp:setProperty name="oldhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="oldhelper" property="writer" value="<%=out%>" />
<h1>I2P Router Statistics</h1>
<h1><%=cssHelper._("I2P Router Statistics")%></h1>
<div class="main" id="main">
<jsp:getProperty name="oldhelper" property="stats" />
</div></body></html>
<hr></div></body></html>

View File

@ -2,11 +2,12 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - peer connections</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("peer connections")%>
</head><body>
<%@include file="summary.jsp" %>
<h1>I2P Network Peers</h1>
<h1><%=cssHelper._("I2P Network Peers")%></h1>
<div class="main" id="main">
<jsp:useBean class="net.i2p.router.web.PeerHelper" id="peerHelper" scope="request" />
<jsp:setProperty name="peerHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />

View File

@ -2,16 +2,16 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - peer profiles</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("peer profiles")%>
</head><body><%@include file="summary.jsp" %>
<h1>I2P Network Peer Profiles</h1>
<h1><%=cssHelper._("I2P Network Peer Profiles")%></h1>
<div class="main" id="main"><div class="wideload">
<jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="profilesHelper" property="writer" value="<%=out%>" />
<jsp:getProperty name="profilesHelper" property="profileSummary" />
<br>
<a name="shitlist"> </a>
<jsp:getProperty name="profilesHelper" property="shitlistSummary" />
</div></div></body></html>
<hr></div></div></body></html>

View File

@ -22,10 +22,10 @@
} else {
// since we don't have an iframe this will reload the base page, and
// the new delay will be passed to the iframe above
out.print("<form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
out.print("<div class=\"refresh\"><form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
out.print("<b>Refresh (s):</b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
out.print("<button type=\"submit\">Enable</button>\n");
out.print("</form></div>\n");
out.print("</form></div></div>\n");
}
%>
</div>

View File

@ -53,14 +53,14 @@
<%
// d and shutdownSoon defined above
if (!shutdownSoon) {
out.print("<hr><form action=\"summaryframe.jsp\" method=\"GET\">\n");
out.print("<hr><div class=\"refresh\"><form action=\"summaryframe.jsp\" method=\"GET\">\n");
if ("0".equals(d)) {
out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" align=\"right\" />\n");
out.print("<button type=\"submit\">Enable</button>\n");
out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
out.print("<button type=\"submit\">Enable</button></div>\n");
} else {
// this will load in the iframe but subsequent pages will not have the iframe
out.print("<input type=\"hidden\" name=\"refresh\" value=\"0\" />\n");
out.print("<button type=\"submit\">Disable " + d + "s Refresh</button>\n");
out.print("<button type=\"submit\">Disable " + d + "s Refresh</button></div>\n");
}
out.print("</form><hr>\n");
}

View File

@ -2,10 +2,11 @@
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>I2P Router Console - tunnel summary</title>
<html><head>
<%@include file="css.jsp" %>
<%=cssHelper.title("tunnel summary")%>
</head><body>
<%@include file="summary.jsp" %><h1>I2P Tunnel Summary</h1>
<%@include file="summary.jsp" %><h1><%=cssHelper._("I2P Tunnel Summary")%></h1>
<div class="main" id="main">
<jsp:useBean class="net.i2p.router.web.TunnelHelper" id="tunnelHelper" scope="request" />
<jsp:setProperty name="tunnelHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />