merge of 'c2d95c40c32ee34dcd02be699ef6ebf6f36ce971'

and 'd6b0769149a1fa18328e86f05dd4bf97d8a3ef4d'
This commit is contained in:
z3d
2009-07-17 16:41:48 +00:00
13 changed files with 981 additions and 916 deletions

View File

@ -1,291 +1,296 @@
<%@page contentType="text/html" import="net.i2p.i2ptunnel.web.IndexBean"%><?xml version="1.0" encoding="UTF-8"?> <%@page contentType="text/html" import="net.i2p.i2ptunnel.web.IndexBean"%><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<jsp:useBean class="net.i2p.i2ptunnel.web.IndexBean" id="indexBean" scope="request" /> <jsp:useBean class="net.i2p.i2ptunnel.web.IndexBean" id="indexBean" scope="request" />
<jsp:setProperty name="indexBean" property="*" /> <jsp:setProperty name="indexBean" property="*" />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<title>I2PTunnel Webmanager - List</title> <title>I2PTunnel Webmanager - List</title>
<meta htt <meta htt
p-equiv="Content-Type" content="text/html; charset=UTF-8" /> p-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<% if (indexBean.allowCSS()) { <% if (indexBean.allowCSS()) {
%><link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" /> %><link href="/themes/console/images/favicon.ico" type="image/x-icon" rel="shortcut icon" />
<link href="<%=indexBean.getTheme()%>default.css" rel="stylesheet" type="text/css" /> <link href="<%=indexBean.getTheme()%>default.css" rel="stylesheet" type="text/css" />
<link href="<%=indexBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" /> <link href="<%=indexBean.getTheme()%>i2ptunnel.css" rel="stylesheet" type="text/css" />
<% } <% }
%> %>
</head> </head>
<body id="tunnelListPage"> <body id="tunnelListPage">
<div id="pageHeader"> <div id="pageHeader">
</div> </div>
<div id="statusMessagePanel" class="panel"> <div id="statusMessagePanel" class="panel">
<div class="header"> <div class="header">
<h4>Status Messages</h4> <h4>Status Messages</h4>
</div> </div>
<div class="separator"> <div class="separator">
<hr /> <hr />
</div> </div>
<textarea id="statusMessages" rows="3" cols="60" readonly="readonly"><jsp:getProperty name="indexBean" property="messages" /></textarea> <textarea id="statusMessages" rows="4" cols="60" readonly="readonly"><jsp:getProperty name="indexBean" property="messages" /></textarea>
<div class="separator"> <div class="separator">
<hr /> <hr />
</div> </div>
<div class="footer"> <div class="footer">
<div class="toolbox"> <div class="toolbox">
<a class="control" href="index.jsp">Refresh</a> <a class="control" href="index.jsp">Refresh</a>
</div> </div>
</div> </div>
</div> </div>
<div id="localClientTunnelList" class="panel"> <div id="globalOperationsPanel" class="panel">
<div class="header"> <div class="header"></div>
<h4>Local Client Tunnels</h4> <div class="footer">
</div> <div class="toolbox">
<a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Stop%20all">Stop All</a> <a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Start%20all">Start All</a> <a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Restart%20all">Restart All</a> <a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Reload%20configuration">Reload Config</a>
<div class="separator"> </div>
<hr /> </div>
</div> </div>
<div class="nameHeaderField rowItem">
<label>Name:</label>
</div> <div id="localServerTunnelList" class="panel">
<div class="portHeaderField rowItem"> <div class="header">
<label>Port:</label>
</div> <h4>I2P Server Tunnels</h4>
<div class="typeHeaderField rowItem"> </div>
<label>Type:</label>
</div>
<div class="interfaceHeaderField rowItem"> <div class="separator"> </div>
<label>Interface:</label>
</div> <div class="nameHeaderField rowItem">
<div class="statusHeaderField rowItem"> <label>Name:</label>
<label>Status:</label> </div>
</div> <div class="previewHeaderField rowItem">
<label>Points at:</label>
<div class="separator"> </div>
<hr /> <div class="targetHeaderField rowItem">
</div> <label>Preview:</label>
<% </div>
for (int curClient = 0; curClient < indexBean.getTunnelCount(); curClient++) { <div class="statusHeaderField rowItem">
if (!indexBean.isClient(curClient)) continue; <label>Status:</label>
%> </div>
<div class="nameField rowItem">
<label>Name:</label> <%
<span class="text"><a href="edit.jsp?tunnel=<%=curClient%>" title="Edit Tunnel Settings for <%=indexBean.getTunnelName(curClient)%>"><%=indexBean.getTunnelName(curClient)%> (Edit)</a></span> for (int curServer = 0; curServer < indexBean.getTunnelCount(); curServer++) {
</div> if (indexBean.isClient(curServer)) continue;
<div class="portField rowItem">
<label>Port:</label> %>
<span class="text"><%=indexBean.getClientPort(curClient)%></span> <div class="nameField rowItem">
</div> <label>Name:</label>
<div class="typeField rowItem"> <span class="text"><a href="edit.jsp?tunnel=<%=curServer%>" title="Edit Server Tunnel Settings for <%=indexBean.getTunnelName(curServer)%>"><%=indexBean.getTunnelName(curServer)%></a></span>
<label>Type:</label> </div>
<span class="text"><%=indexBean.getTunnelType(curClient)%></span> <div class="previewField rowItem">
</div> <label>Points at:</label>
<div class="interfaceField rowItem"> <span class="text">
<label>Interface:</label> <%
<span class="text"><%=indexBean.getClientInterface(curClient)%></span> if ("httpserver".equals(indexBean.getInternalType(curServer))) {
</div> %>
<div class="statusField rowItem"> <a href="http://<%=indexBean.getServerTarget(curServer)%>/" title="Test HTTP server, bypassing I2P"><%=indexBean.getServerTarget(curServer)%></a>
<label>Status:</label> <%
<% } else {
switch (indexBean.getTunnelStatus(curClient)) { %><%=indexBean.getServerTarget(curServer)%>
case IndexBean.STARTING: <%
%><div class="statusStarting text">Starting...</div> }
<a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a> %></span>
<% </div>
break; <div class="targetField rowItem">
case IndexBean.STANDBY: <%
%><div class="statusStarting text">Standby</div> if ("httpserver".equals(indexBean.getInternalType(curServer)) && indexBean.getTunnelStatus(curServer) == IndexBean.RUNNING) {
<a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a> %><label>Preview:</label>
<% <a class="control" title="Test HTTP server through I2P" href="http://<%=indexBean.getDestHashBase32(curServer)%>.b32.i2p">Preview</a>
break; <%
case IndexBean.RUNNING: } else if (indexBean.getTunnelStatus(curServer) == IndexBean.RUNNING) {
%><div class="statusRunning text">Running</div> %><span class="text">Base32 Address:<br><%=indexBean.getDestHashBase32(curServer)%>.b32.i2p</span>
<a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a> <%
<% } else {
break; %><span class="comment">No Preview</span>
case IndexBean.NOT_RUNNING: <%
%><div class="statusNotRunning text">Stopped</div> }
<a class="control" title="Start this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=start&amp;tunnel=<%=curClient%>">Start</a> %></div>
<% <div class="statusField rowItem">
break; <label>Status:</label>
} <%
%></div> switch (indexBean.getTunnelStatus(curServer)) {
case IndexBean.STARTING:
<% if (!"sockstunnel".equals(indexBean.getInternalType(curClient))) { %> %><div class="separator"></div>
<div class="destinationField rowItem"> <div class="statusStarting text">Starting...</div>
<label> <a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curServer%>">Stop</a>
<% if ("httpclient".equals(indexBean.getInternalType(curClient)) || "connectclient".equals(indexBean.getInternalType(curClient))) { %> <%
Outproxy: break;
<% } else { %> case IndexBean.RUNNING:
Destination: %><div class="statusRunning text">Running</div>
<% } %> <a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curServer%>">Stop</a>
</label> <%
<input class="freetext" size="40" readonly="readonly" value="<%=indexBean.getClientDestination(curClient)%>" /> break;
</div> case IndexBean.NOT_RUNNING:
<% } %> %><div class="statusNotRunning text">Stopped</div>
<a class="control" title="Start this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=start&amp;tunnel=<%=curServer%>">Start</a>
<div class="descriptionField rowItem"> <%
<label>Description:</label> break;
<div class="text"><%=indexBean.getTunnelDescription(curClient)%></div> }
</div> %></div>
<div class="subdivider"> <div class="descriptionField rowItem">
<hr /> <label>Description:</label>
</div> <div class="text"><%=indexBean.getTunnelDescription(curServer)%></div>
<% </div>
}
%> <div class="subdivider">
<div class="separator"> <hr />
<hr /> </div>
</div> <%
}
<div class="footer"> %>
<form id="addNewClientTunnelForm" action="edit.jsp"> <div class="separator">
<div class="toolbox"> <hr />
<label>Add new client tunnel:</label> </div>
<select name="type">
<option value="client">Standard</option> <div class="footer">
<option value="httpclient">HTTP</option> <form id="addNewServerTunnelForm" action="edit.jsp">
<option value="ircclient">IRC</option> <div class="toolbox">
<option value="sockstunnel">SOCKS 4/4a/5</option>
<option value="connectclient">CONNECT</option> <label>New server tunnel:</label>
<option value="streamrclient">Streamr</option> <select name="type">
</select> <option value="server">Standard</option>
<input class="control" type="submit" value="Create" /> <option value="httpserver">HTTP</option>
</div> <option value="ircserver">IRC</option>
</form> <option value="streamrserver">Streamr</option>
</div> </select>
</div> <input class="control" type="submit" value="Create" />
</div>
<div id="localServerTunnelList" class="panel"> </form>
<div class="header"> </div>
<h4>Local Server Tunnels</h4> </div>
</div>
<div class="separator"> <div id="localClientTunnelList" class="panel">
<hr /> <div class="header">
</div>
<h4>I2P Client Tunnels</h4>
<div class="nameHeaderField rowItem"> </div>
<label>Name:</label>
</div>
<div class="previewHeaderField rowItem"> <div class="separator"> </div>
<label>Points at:</label>
</div> <div class="nameHeaderField rowItem">
<div class="targetHeaderField rowItem"> <label>Name:</label>
<label>Preview:</label> </div>
</div> <div class="portHeaderField rowItem">
<div class="statusHeaderField rowItem"> <label>Port:</label>
<label>Status:</label> </div>
</div> <div class="typeHeaderField rowItem">
<label>Type:</label>
<% </div>
for (int curServer = 0; curServer < indexBean.getTunnelCount(); curServer++) { <div class="interfaceHeaderField rowItem">
if (indexBean.isClient(curServer)) continue; <label>Interface:</label>
</div>
%> <div class="statusHeaderField rowItem">
<div class="nameField rowItem"> <label>Status:</label>
<label>Name:</label> </div>
<span class="text"><a href="edit.jsp?tunnel=<%=curServer%>" title="Edit Server Tunnel Settings for <%=indexBean.getTunnelName(curServer)%>"><%=indexBean.getTunnelName(curServer)%> (Edit)</a></span>
</div> <div class="separator">
<div class="previewField rowItem"> </div>
<label>Points at:</label> <%
<span class="text"> for (int curClient = 0; curClient < indexBean.getTunnelCount(); curClient++) {
<% if (!indexBean.isClient(curClient)) continue;
if ("httpserver".equals(indexBean.getInternalType(curServer))) { %>
%> <div class="nameField rowItem">
<a href="http://<%=indexBean.getServerTarget(curServer)%>/" title="Test HTTP server, bypassing I2P"><%=indexBean.getServerTarget(curServer)%></a> <label>Name:</label>
<% <span class="text"><a href="edit.jsp?tunnel=<%=curClient%>" title="Edit Tunnel Settings for <%=indexBean.getTunnelName(curClient)%>"><%=indexBean.getTunnelName(curClient)%></a></span>
} else { </div>
%><%=indexBean.getServerTarget(curServer)%> <div class="portField rowItem">
<% <label>Port:</label>
} <span class="text"><%=indexBean.getClientPort(curClient)%></span>
%></span> </div>
</div> <div class="typeField rowItem">
<div class="targetField rowItem"> <label>Type:</label>
<% <span class="text"><%=indexBean.getTunnelType(curClient)%></span>
if ("httpserver".equals(indexBean.getInternalType(curServer)) && indexBean.getTunnelStatus(curServer) == IndexBean.RUNNING) { </div>
%><label>Preview:</label> <div class="interfaceField rowItem">
<a class="control" title="Test HTTP server through I2P" href="http://<%=indexBean.getDestHashBase32(curServer)%>.b32.i2p">Preview</a> <label>Interface:</label>
<% <span class="text"><%=indexBean.getClientInterface(curClient)%></span>
} else if (indexBean.getTunnelStatus(curServer) == IndexBean.RUNNING) { </div>
%><span class="text">Base32 Address:<br><%=indexBean.getDestHashBase32(curServer)%>.b32.i2p</span> <div class="statusField rowItem">
<% <label>Status:</label>
} else { <%
%><span class="comment">No Preview</span> switch (indexBean.getTunnelStatus(curClient)) {
<% case IndexBean.STARTING:
} %><div class="statusStarting text">Starting...</div> <div class="separator></div>
%></div> <a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a>
<div class="statusField rowItem"> <%
<label>Status:</label> break;
<% case IndexBean.STANDBY:
switch (indexBean.getTunnelStatus(curServer)) { %><div class="statusStarting text">Standby</div>
case IndexBean.STARTING: <a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a>
%><div class="statusStarting text">Starting...</div> <%
<a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curServer%>">Stop</a> break;
<% case IndexBean.RUNNING:
break; %><div class="statusRunning text">Running</div>
case IndexBean.RUNNING: <a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curClient%>">Stop</a>
%><div class="statusRunning text">Running</div> <%
<a class="control" title="Stop this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=stop&amp;tunnel=<%=curServer%>">Stop</a> break;
<% case IndexBean.NOT_RUNNING:
break; %><div class="statusNotRunning text">Stopped</div>
case IndexBean.NOT_RUNNING: <a class="control" title="Start this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=start&amp;tunnel=<%=curClient%>">Start</a>
%><div class="statusNotRunning text">Stopped</div> <%
<a class="control" title="Start this Tunnel" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=start&amp;tunnel=<%=curServer%>">Start</a> break;
<% }
break; %></div>
}
%></div> <% if (!"sockstunnel".equals(indexBean.getInternalType(curClient))) { %>
<div class="destinationField rowItem">
<div class="descriptionField rowItem"> <label>
<label>Description:</label> <% if ("httpclient".equals(indexBean.getInternalType(curClient)) || "connectclient".equals(indexBean.getInternalType(curClient))) { %>
<div class="text"><%=indexBean.getTunnelDescription(curServer)%></div> Outproxy:
</div> <% } else { %>
Destination:
<div class="subdivider"> <% } %>
<hr /> </label>
</div> <input class="freetext" size="40" readonly="readonly" value="<%=indexBean.getClientDestination(curClient)%>" />
<% </div>
} <% } %>
%>
<div class="separator"> <div class="descriptionField rowItem">
<hr /> <label>Description:</label>
</div> <div class="text"><%=indexBean.getTunnelDescription(curClient)%></div>
</div>
<div class="footer">
<form id="addNewServerTunnelForm" action="edit.jsp"> <div class="subdivider">
<div class="toolbox"> <hr />
<label>Add new server tunnel:</label> </div>
<select name="type"> <%
<option value="server">Standard</option> }
<option value="httpserver">HTTP</option> %>
<option value="ircserver">IRC</option> <div class="separator">
<option value="streamrserver">Streamr</option> <hr />
</select> </div>
<input class="control" type="submit" value="Create" />
</div> <div class="footer">
</form> <form id="addNewClientTunnelForm" action="edit.jsp">
</div> <div class="toolbox">
</div>
<label>New client tunnel:</label>
<div id="globalOperationsPanel" class="panel"> <select name="type">
<div class="header"></div> <option value="client">Standard</option>
<div class="footer"> <option value="httpclient">HTTP</option>
<div class="toolbox"> <option value="ircclient">IRC</option>
<a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Stop%20all">Stop All</a><a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Start%20all">Start All</a><a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Restart%20all">Restart All</a><a class="control" href="index.jsp?nonce=<%=indexBean.getNextNonce()%>&amp;action=Reload%20configuration">Reload Config</a> <option value="sockstunnel">SOCKS 4/4a/5</option>
</div> <option value="connectclient">CONNECT</option>
</div> <option value="streamrclient">Streamr</option>
</div> </select>
<input class="control" type="submit" value="Create" />
<div id="pageFooter"> </div>
</div> </form>
</body> </div>
</html> </div>
<div id="pageFooter">
</div>
</div>
</body>
</html>

View File

@ -1,41 +1,44 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config advanced</title> <title>I2P Router Console - config advanced</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h1>I2P Advanced Configuration</h1> <h1>I2P Advanced Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure">
<form action="configadvanced.jsp" method="POST"> <form action="configadvanced.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.noncePrev", prev); if (prev != null) System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce", new java.util.Random().nextLong()+""); %> 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="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" /> <input type="hidden" name="action" value="blah" />
<textarea rows="32" cols="100" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br /> <textarea rows="32" cols="100" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br /><hr>
<p> <p align="right">
<input type="submit" name="shouldsave" value="Apply" /> <input type="reset" value="Cancel" /> <input type="submit" name="shouldsave" value="Apply" />
</p><p> <input type="reset" value="Cancel" />
NOTE: Some changes may require a restart to take effect. </p>
</p> <p>
</form> NOTE: Some changes may require a restart to take effect.
</div> </p>
</body> </form>
</html> </div>
</div>
</body>
</html>

View File

@ -1,69 +1,69 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config clients</title> <title>I2P Router Console - config clients</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
<style type='text/css'> <style type='text/css'>
button span.hide{ button span.hide{
display:none; display:none;
} }
</style> </style>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigClientsHelper" id="clientshelper" scope="request" />
<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<h1>I2P Client Configuration</h1> <h1>I2P Client Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigClientsHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="formhandler" property="action" value="<%=request.getParameter("action")%>" /> <jsp:setProperty name="formhandler" property="action" value="<%=request.getParameter("action")%>" />
<jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter("nonce")%>" /> <jsp:setProperty name="formhandler" property="nonce" value="<%=request.getParameter("nonce")%>" />
<jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" /> <jsp:setProperty name="formhandler" property="settings" value="<%=request.getParameterMap()%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure">
<form action="configclients.jsp" method="POST"> <form action="configclients.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigClientsHandler.noncePrev", prev); 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()+""); %> 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")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce")%>" />
<h3>Client Configuration</h3> <h3>Client Configuration</h3>
<p> <p>
The Java clients listed below are started by the router and run in the same JVM. The Java clients listed below are started by the router and run in the same JVM.
</p><p> </p><p>
<jsp:getProperty name="clientshelper" property="form1" /> <jsp:getProperty name="clientshelper" property="form1" />
</p><p> </p><p>
<i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i> <i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i>
</p> <hr /><p> </p> <hr /><p>
<input type="submit" name="action" value="Save Client Configuration" /> <input type="submit" name="action" value="Save Client Configuration" />
</p> </p>
<hr /> <hr />
<h3>WebApp Configuration</h3> <h3>WebApp Configuration</h3>
<p> <p>
The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. 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 are usually web applications accessible through the router console.
They may be complete applications (e.g. i2psnark), They may be complete applications (e.g. i2psnark),
front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel),
or have no web interface at all (e.g. addressbook). or have no web interface at all (e.g. addressbook).
</p><p> </p><p>
A web app may also be disabled by removing the .war file from the webapps directory; A web app may also be disabled by removing the .war file from the webapps directory;
however the .war file and web app will reappear when you update your router to a newer version, however the .war file and web app will reappear when you update your router to a newer version,
so disabling the web app here is the preferred method. so disabling the web app here is the preferred method.
</p><p> </p><p>
<jsp:getProperty name="clientshelper" property="form2" /> <jsp:getProperty name="clientshelper" property="form2" />
</p><p> </p><p><hr>
<input type="submit" name="action" value="Save WebApp Configuration" /> <input type="submit" name="action" value="Save WebApp Configuration" />
</p><p> </p><hr><p>
<i>All changes require restart to take effect. To change other webapp options, edit the webapps.config file.</i> <i>All changes require restart to take effect. To change other webapp options, edit the webapps.config file.</i>
</p> </p>
</form> </form>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

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

View File

@ -1,54 +1,68 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config logging</title> <title>I2P Router Console - config logging</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
</head><body> </head><body>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<h1>I2P Logging Configuration</h1> <h1>I2P Logging Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure">
<form action="configlogging.jsp" method="POST"> <form action="configlogging.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigLoggingHandler.noncePrev", prev); if (prev != null) System.setProperty("net.i2p.router.web.ConfigLoggingHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigLoggingHandler.nonce", new java.util.Random().nextLong()+""); %> 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="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" /> <input type="hidden" name="action" value="blah" />
<table border="0" cellspacing="5"> <table border="0" cellspacing="5">
<tr><td valign="top"><b>Logging filename:</b> <tr>
<td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" /><br /> <td valign="top"><b>Logging filename:</b>
<i>(the symbol '@' will be replaced during log rotation)</i> <td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" />
<tr><td valign="top"><b>Log record format:</b> <br /> <i>(the symbol '@' will be replaced during log rotation)</i>
<td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" /><br /> <tr>
<i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority, 'm' = message)</i> <td valign="top"><b>Log record format:</b>
<tr><td valign="top"><b>Log date format:</b> <td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" />
<td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" /><br /> <br /> <i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority,
<i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss' = second, 'SSS' = millisecond)</i> 'm' = message)</i>
<tr><td valign="top"><b>Max log file size:</b> <tr>
<td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" /><br /> <td valign="top"><b>Log date format:</b>
<tr><td valign="top"><b>Default log level:</b> <td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" />
<td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /> <br /> <i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss'
<br /><i>(DEBUG and INFO are not recommended defaults, as they will drastically slow down your router)</i> = second, 'SSS' = millisecond)</i>
<tr><td valign="top"><b>Log level overrides:</b> <tr>
<td><jsp:getProperty name="logginghelper" property="logLevelTable" /> <td valign="top"><b>Max log file size:</b>
<tr><td><td> <td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" />
<input type="submit" name="shouldsave" value="Save changes" /> <br />
<input type="reset" value="Cancel" /> <tr>
</table> <td valign="top"><b>Default log level:</b>
</form> <td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /> <br /> <i>(DEBUG and INFO are not recommended defaults,
</div> as they will drastically slow down your router)</i>
<tr>
</body> <td valign="top"><b>Log level overrides:</b>
</html> <td><jsp:getProperty name="logginghelper" property="logLevelTable" />
<tr>
<td colspan="2" valign="top"><hr>
<tr>
<td>
<td> <div align="right">
<input type="submit" name="shouldsave" value="Save changes" />
<input type="reset" value="Cancel" />
</div>
</table>
</form>
</div>
</div>
</body>
</html>

View File

@ -1,84 +1,87 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config peers</title> <title>I2P Router Console - config peers</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<h1>I2P Peer Configuration</h1> <h1>I2P Peer Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigPeerHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigPeerHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<jsp:useBean class="net.i2p.router.web.ConfigPeerHelper" id="peerhelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigPeerHelper" id="peerhelper" scope="request" />
<jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<% String peer = ""; <% String peer = "";
if (request.getParameter("peer") != null) if (request.getParameter("peer") != null)
peer = request.getParameter("peer"); peer = request.getParameter("peer");
%> %>
<div class="configure">
<form action="configpeer.jsp" method="POST"> <form action="configpeer.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigPeerHandler.noncePrev", prev); 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()+""); %> 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")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigPeerHandler.nonce")%>" />
<hr /> <hr />
<p> <p>
<a name="sh"> </a> <a name="sh"> </a>
<a name="unsh"> </a> <a name="unsh"> </a>
<a name="bonus"> </a> <a name="bonus"> </a>
<h2>Manual Peer Controls</h2> <h2>Manual Peer Controls</h2>
Router Hash: Router Hash:
<input type="text" size="55" name="peer" value="<%=peer%>" /> <input type="text" size="55" name="peer" value="<%=peer%>" />
<h3>Manually Shitlist / Unshitlist a Router</h3> <h3>Manually Shitlist / Unshitlist a Router</h3>
Shitlisting will prevent the participation of this peer in tunnels you create. Shitlisting will prevent the participation of this peer in tunnels you create.
<p> <hr />
<input type="submit" name="action" value="Shitlist peer until restart" /> <p>
<input type="submit" name="action" value="Unshitlist peer" /> <input type="submit" name="action" value="Shitlist peer until restart" />
<% if (! "".equals(peer)) { %> <input type="submit" name="action" value="Unshitlist peer" />
<font color="blue">&lt;---- click to verify action</font> <% if (! "".equals(peer)) { %>
<% } %> <font color="blue">&lt;---- click to verify action</font>
</p> <% } %>
</p>
<h3>Adjust Profile Bonuses</h3>
Bonuses may be positive or negative, and affect the peer's inclusion in Fast and High Capacity tiers. <h3>Adjust Profile Bonuses</h3>
Fast peers are used for client tunnels, and High Capacity peers are used for some exploratory tunnels. Bonuses may be positive or negative, and affect the peer's inclusion in Fast
Current bonuses are displayed on the <a href="profiles.jsp">profiles page</a>. and High Capacity tiers. Fast peers are used for client tunnels, and High
<p> Capacity peers are used for some exploratory tunnels. Current bonuses are
<% long speed = 0; long capacity = 0; displayed on the <a href="profiles.jsp">profiles page</a>.
if (! "".equals(peer)) { <hr />
// get existing bonus values? <p>
} <% long speed = 0; long capacity = 0;
%> if (! "".equals(peer)) {
Speed: // get existing bonus values?
<input type="text" size="8" name="speed" value="<%=speed%>" /> }
Capacity: %>
<input type="text" size="8" name="capacity" value="<%=capacity%>" /> Speed:
<input type="submit" name="action" value="Adjust peer bonuses" /> <input type="text" size="8" name="speed" value="<%=speed%>" />
</p> Capacity:
</form> <input type="text" size="8" name="capacity" value="<%=capacity%>" />
<input type="submit" name="action" value="Adjust peer bonuses" />
<hr /> </p>
<a name="shitlist"> </a> </form>
<jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <hr />
<jsp:getProperty name="profilesHelper" property="shitlistSummary" /> <a name="shitlist"> </a>
<hr /> <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
<jsp:getProperty name="peerhelper" property="blocklistSummary" /> <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="profilesHelper" property="shitlistSummary" />
<hr />
</div> <jsp:getProperty name="peerhelper" property="blocklistSummary" />
</body>
</html> </div>
</div>
</body>
</html>

View File

@ -1,87 +1,87 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config service</title> <title>I2P Router Console - config service</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<h1>I2P Service Configuration</h1> <h1>I2P Service Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigServiceHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigServiceHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure">
<form action="configservice.jsp" method="POST"> <form action="configservice.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigServiceHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigServiceHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigServiceHandler.noncePrev", prev); 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()+""); %> 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")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigServiceHandler.nonce")%>" />
<h4>Shutdown the router</h4> <h4>Shutdown the router</h4>
<p>Graceful shutdown lets the router satisfy the agreements it has already made <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 before shutting down, but may take a few minutes. If you need to kill the
router immediately, that option is available as well.</p> router immediately, that option is available as well.</p>
<input type="submit" name="action" value="Shutdown gracefully" /> <input type="submit" name="action" value="Shutdown gracefully" />
<input type="submit" name="action" value="Shutdown immediately" /> <input type="submit" name="action" value="Shutdown immediately" />
<input type="submit" name="action" value="Cancel graceful shutdown" /> <input type="submit" name="action" value="Cancel graceful shutdown" />
<hr> <hr>
<% if (System.getProperty("wrapper.version") != null) { %> <% if (System.getProperty("wrapper.version") != null) { %>
<p>If you want the router to restart itself after shutting down, you can choose one of <p>If you want the router to restart itself after shutting down, you can choose one of
the following. This is useful in some situations - for example, if you changed the following. This is useful in some situations - for example, if you changed
some settings that client applications only read at startup, such as the routerconsole password some settings that client applications only read at startup, such as the routerconsole password
or the interface it listens on. A graceful restart will take a few minutes (but your peers or the interface it listens on. A graceful restart will take a few minutes (but your peers
will appreciate your patience), while a hard restart does so immediately. After tearing down will appreciate your patience), while a hard restart does so immediately. After tearing down
the router, it will wait 1 minute before starting back up again.</p> the router, it will wait 1 minute before starting back up again.</p>
<input type="submit" name="action" value="Graceful restart" /> <input type="submit" name="action" value="Graceful restart" />
<input type="submit" name="action" value="Hard restart" /> <input type="submit" name="action" value="Hard restart" />
<% } %> <% } %>
<hr> <hr>
<% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %> <% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %>
<h4>Systray integration</h4> <h4>Systray integration</h4>
<p>On the windows platform, there is a small application to sit in the system <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 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). will be able to integrate their own functionality into the system tray as well).
If you are on windows, you can either enable or disable that icon here.</p> If you are on windows, you can either enable or disable that icon here.</p>
<input type="submit" name="action" value="Show systray icon" /> <input type="submit" name="action" value="Show systray icon" />
<input type="submit" name="action" value="Hide systray icon" /> <input type="submit" name="action" value="Hide systray icon" />
<hr> <hr>
<h4>Run on startup</h4> <h4>Run on startup</h4>
<p>You can control whether I2P is run on startup or not by selecting one of the <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 following options - I2P will install (or remove) a service accordingly. You can
also run the <code>install_i2p_service_winnt.bat</code> (or also run the <code>install_i2p_service_winnt.bat</code> (or
<code>uninstall_i2p_service_winnt.bat</code>) from the command line, if you prefer.</p> <code>uninstall_i2p_service_winnt.bat</code>) from the command line, if you prefer.</p>
<input type="submit" name="action" value="Run I2P on startup" /> <input type="submit" name="action" value="Run I2P on startup" />
<input type="submit" name="action" value="Don't run I2P on startup" /><br /> <input type="submit" name="action" value="Don't run I2P on startup" /><br />
<p><b>Note:</b> If you are running I2P as service right now, removing it will shut <p><b>Note:</b> If you are running I2P as service right now, removing it will shut
down your router immediately. You may want to consider shutting down gracefully, as down your router immediately. You may want to consider shutting down gracefully, as
above, then running uninstall_i2p_service_winnt.bat.</p><hr> above, then running uninstall_i2p_service_winnt.bat.</p><hr>
<% } %> <% } %>
<% if (System.getProperty("wrapper.version") != null) { %> <% if (System.getProperty("wrapper.version") != null) { %>
<h4>Debugging</h4> <h4>Debugging</h4>
<p>At times, it may be helpful to debug I2P by getting a thread dump. To do so, <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 please select the following option and review the thread dumped to
<a href="logs.jsp#servicelogs">wrapper.log</a>.</p> <a href="logs.jsp#servicelogs">wrapper.log</a>.</p>
<input type="submit" name="action" value="Dump threads" /> <input type="submit" name="action" value="Dump threads" />
<% } %><hr> <% } %><hr>
<h4>Launch browser on router startup?</h4> <h4>Launch browser on router startup?</h4>
<p>I2P's main configuration interface is this web console, so for your convenience <p>I2P's main configuration interface is this web console, so for your convenience
I2P can launch a web browser pointing at 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 <a href="http://127.0.0.1:7657/index.jsp">http://127.0.0.1:7657/index.jsp</a> whenever
the router starts up.</p> the router starts up.</p>
<input type="submit" name="action" value="View console on startup" /> <input type="submit" name="action" value="View console on startup" />
<input type="submit" name="action" value="Do not view console on startup" /> <input type="submit" name="action" value="Do not view console on startup" />
</form><hr> </form><hr>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -1,112 +1,111 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config stats</title> <title>I2P Router Console - config stats</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
<script type="text/javascript"> <script type="text/javascript">
function init() function init()
{ {
checkAll = false; checkAll = false;
} }
function toggleAll(category) function toggleAll(category)
{ {
var inputs = document.getElementsByTagName("input"); var inputs = document.getElementsByTagName("input");
for(index = 0; index < inputs.length; index++) for(index = 0; index < inputs.length; index++)
{ {
if(inputs[index].id == category) if(inputs[index].id == category)
{ {
if(inputs[index].checked == 0) if(inputs[index].checked == 0)
{ {
inputs[index].checked = 1; inputs[index].checked = 1;
} }
else if(inputs[index].checked == 1) else if(inputs[index].checked == 1)
{ {
inputs[index].checked = 0; inputs[index].checked = 0;
} }
} }
if(category == '*') if(category == '*')
{ {
if (checkAll == false) if (checkAll == false)
{ {
inputs[index].checked = 1; inputs[index].checked = 1;
} }
else if (checkAll == true) else if (checkAll == true)
{ {
inputs[index].checked = 0; inputs[index].checked = 0;
} }
} }
} }
if(category == '*') if(category == '*')
{ {
if (checkAll == false) if (checkAll == false)
{ {
checkAll = true; checkAll = true;
} }
else if (checkAll == true) else if (checkAll == true)
{ {
checkAll = false; checkAll = false;
} }
} }
} }
</script> </script>
</head><body onLoad="init();"> </head><body onLoad="init();">
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<h1>I2P Stats Configuration</h1> <h1>I2P Stats Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigStatsHelper" id="statshelper" scope="request" />
<jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<div class="configure">
<form id="statsForm" name="statsForm" action="configstats.jsp" method="POST"> <form id="statsForm" name="statsForm" action="configstats.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigStatsHandler.noncePrev", prev); if (prev != null) System.setProperty("net.i2p.router.web.ConfigStatsHandler.noncePrev", prev);
System.setProperty("net.i2p.router.web.ConfigStatsHandler.nonce", new java.util.Random().nextLong()+""); %> System.setProperty("net.i2p.router.web.ConfigStatsHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="action" value="foo" /> <input type="hidden" name="action" value="foo" />
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" />
Enable full stats? Enable full stats?
<input type="checkbox" name="isFull" value="true" <% <input type="checkbox" name="isFull" value="true" <%
if (statshelper.getIsFull()) { %>checked="true" <% } %>/> if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
(change requires restart to take effect)<br /> (change requires restart to take effect)<br />
Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br /> Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br />
Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br /> Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<br />
<table> <table>
<% while (statshelper.hasMoreStats()) { <% while (statshelper.hasMoreStats()) {
while (statshelper.groupRequired()) { %> while (statshelper.groupRequired()) { %>
<tr><td valign="top" align="left" colspan="3"> <tr><td valign="top" align="left" colspan="3">
<b><%=statshelper.getCurrentGroupName()%></b> <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()%>')">toggle all</a>)
</td></tr><tr><td>Log</td><td>Graph</td><td></td></tr><% </td></tr><tr><td>Log</td><td>Graph</td><td></td></tr><%
} // end iterating over required groups for the current stat %> } // end iterating over required groups for the current stat %>
<tr><td valign="top" align="left"> <tr><td valign="top" align="left">
<a name="<%=statshelper.getCurrentStatName()%>"></a> <a name="<%=statshelper.getCurrentStatName()%>"></a>
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <% <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td> if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td>
<td valign="top" align="left"> <td valign="top" align="left">
<% if (statshelper.getCurrentCanBeGraphed()) { %> <% if (statshelper.getCurrentCanBeGraphed()) { %>
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <% <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
if (statshelper.getCurrentIsGraphed()) { %>checked="true" <% } %>/><% } %></td> if (statshelper.getCurrentIsGraphed()) { %>checked="true" <% } %>/><% } %></td>
<td valign="top" align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br /> <td valign="top" align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br />
<%=statshelper.getCurrentStatDescription()%></td></tr><% <%=statshelper.getCurrentStatDescription()%></td></tr><%
} // end iterating over all stats %> } // end iterating over all stats %>
<tr><td colspan="3"><hr /></td></tr> <tr><td colspan="3"><hr /></td></tr>
<tr><td><input type="checkbox" name="explicitFilter" /></td> <tr><td><input type="checkbox" name="explicitFilter" /></td>
<td colspan="2">Advanced filter: <td colspan="2">Advanced filter:
<input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr> <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr>
<tr><td colspan="3"><hr /></td></tr> <tr><td colspan="3"><hr /></td></tr>
<tr><td><input type="submit" name="shouldsave" value="Save changes" /> </td> <tr><td><input type="submit" name="shouldsave" value="Save changes" /> </td>
<td><input type="reset" value="Cancel" /></td></tr> <td><input type="reset" value="Cancel" /></td><td></td></tr></form>
</form> </table>
</table> </div>
</div> </div>
</body>
</body> </html>
</html>

View File

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

View File

@ -1,59 +1,81 @@
<%@page contentType="text/html"%> <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%> <%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head> <html><head>
<title>I2P Router Console - config update</title> <title>I2P Router Console - config update</title>
<%@include file="css.jsp" %> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>
<%@include file="summary.jsp" %> <%@include file="summary.jsp" %>
<h1>I2P Update Configuration</h1> <h1>I2P Update Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
<jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<div class="messages">
<br /><i><jsp:getProperty name="updatehelper" property="newsStatus" /></i><br />&nbsp;<br /> <i><jsp:getProperty name="updatehelper" property="newsStatus" /></i></div>
<form action="configupdate.jsp" method="POST"> <div class="configure">
<% String prev = System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce"); <form action="configupdate.jsp" method="POST">
if (prev != null) System.setProperty("net.i2p.router.web.ConfigUpdateHandler.noncePrev", prev); <% String prev = System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce");
System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %> if (prev != null) System.setProperty("net.i2p.router.web.ConfigUpdateHandler.noncePrev", prev);
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" /> System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %>
<table border="0" cellspacing="5"><tr><td colspan="2"></tr><tr><td><b>News:</b></td><td> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
<% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <table border="0" cellspacing="5">
<i>Update In Progress</i><br /> <tr>
<% } else { %> <td colspan="2"></tr>
<input type="submit" name="action" value="Check for update now" /> <tr>
<% } %></tr> <td><b>News:</b></td>
<tr><td colspan="2"><hr /></td></tr> <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 update now" />
<tr><td><b>News URL:</b></td> <% } %></tr>
<td><input type="text" size="60" name="newsURL" value="<jsp:getProperty name="updatehelper" property="newsURL" />"></td></tr> <tr>
<tr><td><b>Refresh frequency:</b> <td colspan="2"><hr /></td>
<td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" /> </tr>
<tr><td><b>Update policy:</b> <tr>
<td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" /> <td><b>News URL:</b></td>
<tr><td><b>Update through the eepProxy?</b> <td><input type="text" size="60" name="newsURL" value="<jsp:getProperty name="updatehelper" property="newsURL" />"></td>
<td><jsp:getProperty name="updatehelper" property="updateThroughProxy" /> </tr>
<tr><td><b>eepProxy host:</b> <tr>
<td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" /> <td><b>Refresh frequency:</b>
<tr><td><b>eepProxy port:</b> <td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" />
<td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" /> <tr>
<tr><td><b>Update URLs:</b> <td><b>Update policy:</b>
<td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea> <td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" />
<tr><td><b>Trusted keys:</b> <tr>
<td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea> <td><b>Update through the eepProxy?</b>
<tr><tr><td colspan="2"><hr /><tr> <td><jsp:getProperty name="updatehelper" property="updateThroughProxy" />
<tr><td><td><input type="submit" name="action" value="Save" /> <input type="reset" value="Cancel" /> <tr>
</table> <td><b>eepProxy host:</b>
</form> <td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" />
</div> <tr>
</body> <td><b>eepProxy port:</b>
</html> <td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" />
<tr>
<td><b>Update URLs:</b>
<td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea>
<tr>
<td><b>Trusted keys:</b>
<td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea>
<tr>
<tr>
<td colspan="2"><hr />
<tr>
<tr>
<td>
<td><div align="right">
<input type="submit" name="action" value="Save" />
<input type="reset" value="Cancel" />
</div>
</table>
</form>
</div>
</div>
</body>
</html>

View File

@ -166,6 +166,7 @@ div.configure {
-khtml-border-radius: 4px; -khtml-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
border: 1px solid #99f; border: 1px solid #99f;
background: url(images/darkbluebg.png);
} }
div.messages { div.messages {
@ -340,10 +341,15 @@ h2 a:hover {
} }
h3 { h3 {
border-bottom: 1px; border: 1px solid #99f;
border-bottom-style: solid; border-left: 5px solid #99f;
border-bottom-color: #99f; padding: 3px 5px 3px 5px;
padding: 5px 0; margin: 20px 0 15px 0;
border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
-khtml-border-radius: 0 4px 4px 0;
background: #004;
background: url(images/darkbluebg.png);
} }
h4 { h4 {

View File

@ -29,7 +29,7 @@ label {
height: 28px; height: 28px;
font-weight: normal; font-weight: normal;
text-align: right; text-align: right;
font-size: 7pt; font-size: 8pt;
font-style: italic; font-style: italic;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
@ -122,8 +122,11 @@ hr {
.separator, .subdivider { .separator, .subdivider {
clear: both; clear: both;
height: 1px; height: 1px;
margin: 3px 0px 3px 0px; margin: 1px 0px 1px 0px;
border-bottom: 1px solid #225; border-bottom: 1px solid #225;
/*
display: none;
*/
} }
.subdivider { .subdivider {
@ -150,7 +153,7 @@ hr {
} }
.control { .control {
margin: 4px 0 0 0 !important; margin: 4px 0 0 4px !important;
padding: 2px; padding: 2px;
overflow: hidden; overflow: hidden;
/* /*
@ -171,7 +174,7 @@ hr {
} }
.control:active { .control:active {
border: 2px inset; border: 1px inset;
background-color: #003; background-color: #003;
color: #ff6600; color: #ff6600;
} }

View File

@ -83,10 +83,14 @@
height: 100px; height: 100px;
padding: 0 0 0 4px; padding: 0 0 0 4px;
margin: 1px 0 4px 0; margin: 1px 0 4px 0;
background-color: #000088; background-color: #005;
color: #fff; color: #fff;
font-family: "Lucida Console", "Andale Mono", "Courier New", Courier, mono; font-family: "Lucida Console", "DejaVu Sans Mono", "Andale Mono", "Courier New", Courier, mono;
border: 1px inset #002; border: 2px inset #002;
font-size: 10pt !important;
font-weight: bold;
text-align: justify !important;
background: url(images/darkbluetile.png);
} }
#tunnelListPage .footer .control { #tunnelListPage .footer .control {