HTML bugfixes in routerconsole pages.
This commit is contained in:
@ -17,6 +17,7 @@ public class ConfigAdvancedHandler extends FormHandler {
|
||||
private boolean _shouldSave;
|
||||
private String _config;
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_shouldSave) {
|
||||
saveChanges();
|
||||
|
@ -4,7 +4,6 @@ import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ConfigAdvancedHelper extends HelperBase {
|
||||
public ConfigAdvancedHelper() {}
|
||||
|
@ -20,13 +20,14 @@ import org.mortbay.jetty.Server;
|
||||
* Saves changes to clients.config or webapps.config
|
||||
*/
|
||||
public class ConfigClientsHandler extends FormHandler {
|
||||
private Log _log;
|
||||
private Log configClient_log;
|
||||
private Map _settings;
|
||||
|
||||
public ConfigClientsHandler() {
|
||||
_log = ContextHelper.getContext(null).logManager().getLog(ConfigClientsHandler.class);
|
||||
configClient_log = ContextHelper.getContext(null).logManager().getLog(ConfigClientsHandler.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_action.startsWith("Save Client")) {
|
||||
saveClientChanges();
|
||||
@ -80,7 +81,7 @@ public class ConfigClientsHandler extends FormHandler {
|
||||
return;
|
||||
}
|
||||
ClientAppConfig ca = (ClientAppConfig) clients.get(i);
|
||||
LoadClientAppsJob.runClient(ca.className, ca.clientName, LoadClientAppsJob.parseArgs(ca.args), _log);
|
||||
LoadClientAppsJob.runClient(ca.className, ca.clientName, LoadClientAppsJob.parseArgs(ca.args), configClient_log);
|
||||
addFormNotice("Client " + ca.clientName + " started.");
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,6 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.startup.ClientAppConfig;
|
||||
|
||||
public class ConfigClientsHelper extends HelperBase {
|
||||
|
@ -1,6 +1,5 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataFormatException;
|
||||
import net.i2p.data.Hash;
|
||||
import net.i2p.data.SessionKey;
|
||||
@ -13,6 +12,7 @@ public class ConfigKeyringHandler extends FormHandler {
|
||||
private String _peer;
|
||||
private String _key;
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if ("Add key".equals(_action)) {
|
||||
if (_peer == null || _key == null) {
|
||||
|
@ -4,7 +4,6 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ConfigKeyringHelper extends HelperBase {
|
||||
public ConfigKeyringHelper() {}
|
||||
|
@ -18,6 +18,7 @@ public class ConfigLoggingHandler extends FormHandler {
|
||||
private String _dateFormat;
|
||||
private String _fileSize;
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_shouldSave) {
|
||||
saveChanges();
|
||||
|
@ -4,7 +4,6 @@ import java.util.Iterator;
|
||||
import java.util.Properties;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ConfigLoggingHelper extends HelperBase {
|
||||
public ConfigLoggingHelper() {}
|
||||
@ -43,7 +42,7 @@ public class ConfigLoggingHelper extends HelperBase {
|
||||
String level = limits.getProperty(prefix);
|
||||
buf.append(prefix).append('=').append(level).append('\n');
|
||||
}
|
||||
buf.append("</textarea><br />\n");
|
||||
buf.append("</textarea><br>\n");
|
||||
buf.append("<i>Add additional logging statements above. Example: net.i2p.router.tunnel=WARN</i><br>");
|
||||
buf.append("<i>Or put entries in the logger.config file. Example: logger.record.net.i2p.router.tunnel=WARN</i><br>");
|
||||
buf.append("<i>Valid levels are DEBUG, INFO, WARN, ERROR, CRIT</i>\n");
|
||||
|
@ -1,12 +1,10 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import net.i2p.data.RouterInfo;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.transport.FIFOBandwidthRefiller;
|
||||
import net.i2p.router.transport.TransportManager;
|
||||
import net.i2p.router.transport.udp.UDPTransport;
|
||||
import net.i2p.router.web.ConfigServiceHandler.UpdateWrapperManagerAndRekeyTask;
|
||||
import net.i2p.time.Timestamper;
|
||||
|
||||
/**
|
||||
* Handler to deal with form submissions from the main config form and act
|
||||
@ -44,6 +42,7 @@ public class ConfigNetHandler extends FormHandler {
|
||||
private static final boolean _ratesOnly = false; // always false - delete me
|
||||
private static final String PROP_HIDDEN = Router.PROP_HIDDEN_HIDDEN; // see Router for other choice
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_saveRequested || ( (_action != null) && ("Save changes".equals(_action)) )) {
|
||||
saveChanges();
|
||||
|
@ -4,7 +4,6 @@ import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.RouterAddress;
|
||||
import net.i2p.router.CommSystemFacade;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.transport.Addresses;
|
||||
import net.i2p.router.transport.TransportManager;
|
||||
import net.i2p.router.transport.udp.UDPAddress;
|
||||
|
@ -1,12 +1,8 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.Hash;
|
||||
import net.i2p.data.Base64;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.peermanager.PeerProfile;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -16,6 +12,7 @@ public class ConfigPeerHandler extends FormHandler {
|
||||
private String _speed;
|
||||
private String _capacity;
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if ("Save Configuration".equals(_action)) {
|
||||
_context.router().saveConfig();
|
||||
|
@ -4,7 +4,6 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ConfigPeerHelper extends HelperBase {
|
||||
public ConfigPeerHelper() {}
|
||||
|
@ -51,14 +51,14 @@ public class ConfigRestartBean {
|
||||
if (timeRemaining <= 0) {
|
||||
return "<b>Shutdown imminent</b>";
|
||||
} else {
|
||||
return "<b>Shutdown in " + DataHelper.formatDuration(timeRemaining) + "</b><br />"
|
||||
return "<b>Shutdown in " + DataHelper.formatDuration(timeRemaining) + "</b><br>"
|
||||
+ buttons(urlBase, systemNonce, "shutdownImmediate,Shutdown immediately,cancelShutdown,Cancel shutdown");
|
||||
}
|
||||
} else if (restarting) {
|
||||
if (timeRemaining <= 0) {
|
||||
return "<b>Restart imminent</b>";
|
||||
} else {
|
||||
return "<b>Restart in " + DataHelper.formatDuration(timeRemaining) + "</b><br />"
|
||||
return "<b>Restart in " + DataHelper.formatDuration(timeRemaining) + "</b><br>"
|
||||
+ buttons(urlBase, systemNonce, "restartImmediate,Restart immediately,cancelShutdown,Cancel restart");
|
||||
}
|
||||
} else {
|
||||
|
@ -1,13 +1,10 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import net.i2p.apps.systray.SysTray;
|
||||
import net.i2p.apps.systray.UrlLauncher;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.startup.ClientAppConfig;
|
||||
|
||||
@ -49,6 +46,7 @@ public class ConfigServiceHandler extends FormHandler {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_action == null) return;
|
||||
|
||||
|
@ -28,6 +28,7 @@ public class ConfigStatsHandler extends FormHandler {
|
||||
_isFull = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
saveChanges();
|
||||
}
|
||||
|
@ -8,7 +8,6 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.stat.FrequencyStat;
|
||||
import net.i2p.stat.Rate;
|
||||
import net.i2p.stat.RateStat;
|
||||
@ -38,6 +37,7 @@ public class ConfigStatsHelper extends HelperBase {
|
||||
* @param contextId begging few characters of the routerHash, or null to pick
|
||||
* the first one we come across.
|
||||
*/
|
||||
@Override
|
||||
public void setContextId(String contextId) {
|
||||
try {
|
||||
_context = ContextHelper.getContext(contextId);
|
||||
|
@ -14,7 +14,7 @@ import net.i2p.util.Log;
|
||||
*
|
||||
*/
|
||||
public class ConfigTunnelsHandler extends FormHandler {
|
||||
private Log _log;
|
||||
private Log configTunnel_log;
|
||||
private Map _settings;
|
||||
private boolean _shouldSave;
|
||||
|
||||
@ -22,6 +22,7 @@ public class ConfigTunnelsHandler extends FormHandler {
|
||||
_shouldSave = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_shouldSave) {
|
||||
saveChanges();
|
||||
@ -43,11 +44,11 @@ public class ConfigTunnelsHandler extends FormHandler {
|
||||
*
|
||||
*/
|
||||
private void saveChanges() {
|
||||
_log = _context.logManager().getLog(ConfigTunnelsHandler.class);
|
||||
configTunnel_log = _context.logManager().getLog(ConfigTunnelsHandler.class);
|
||||
boolean saveRequired = false;
|
||||
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Saving changes, with props = " + _settings + ".");
|
||||
if (configTunnel_log.shouldLog(Log.DEBUG))
|
||||
configTunnel_log.debug("Saving changes, with props = " + _settings + ".");
|
||||
|
||||
int updated = 0;
|
||||
int index = 0;
|
||||
@ -110,16 +111,16 @@ public class ConfigTunnelsHandler extends FormHandler {
|
||||
}
|
||||
|
||||
if ("exploratory".equals(poolName)) {
|
||||
if (_log.shouldLog(Log.DEBUG)) {
|
||||
_log.debug("Inbound exploratory settings: " + in);
|
||||
_log.debug("Outbound exploratory settings: " + out);
|
||||
if (configTunnel_log.shouldLog(Log.DEBUG)) {
|
||||
configTunnel_log.debug("Inbound exploratory settings: " + in);
|
||||
configTunnel_log.debug("Outbound exploratory settings: " + out);
|
||||
}
|
||||
_context.tunnelManager().setInboundSettings(in);
|
||||
_context.tunnelManager().setOutboundSettings(out);
|
||||
} else {
|
||||
if (_log.shouldLog(Log.DEBUG)) {
|
||||
_log.debug("Inbound settings for " + client.toBase64() + ": " + in);
|
||||
_log.debug("Outbound settings for " + client.toBase64() + ": " + out);
|
||||
if (configTunnel_log.shouldLog(Log.DEBUG)) {
|
||||
configTunnel_log.debug("Inbound settings for " + client.toBase64() + ": " + in);
|
||||
configTunnel_log.debug("Outbound settings for " + client.toBase64() + ": " + out);
|
||||
}
|
||||
_context.tunnelManager().setInboundSettings(client, in);
|
||||
_context.tunnelManager().setOutboundSettings(client, out);
|
||||
|
@ -5,7 +5,6 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
|
||||
import net.i2p.data.Destination;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.TunnelPoolSettings;
|
||||
|
||||
public class ConfigTunnelsHelper extends HelperBase {
|
||||
@ -177,7 +176,7 @@ buf.append("<tr><th></th><th><img src=\"/themes/console/images/inbound.png\" alt
|
||||
buf.append(prop).append("=").append(val).append(" ");
|
||||
}
|
||||
buf.append("\"/></td></tr>\n");
|
||||
// buf.append("<tr><td colspan=\"3\"><hr /></td></tr>\n");
|
||||
// buf.append("<tr><td colspan=\"3\"><br></td></tr>\n");
|
||||
}
|
||||
|
||||
private void renderOptions(StringBuilder buf, int min, int max, int now, String prefix, String name) {
|
||||
|
@ -5,6 +5,7 @@ public class ConfigUIHandler extends FormHandler {
|
||||
private boolean _shouldSave;
|
||||
private String _config;
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if (_shouldSave)
|
||||
saveChanges();
|
||||
|
@ -12,7 +12,7 @@ public class ConfigUIHelper extends HelperBase {
|
||||
buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" ");
|
||||
if (theme.equals(current))
|
||||
buf.append("checked=\"true\" ");
|
||||
buf.append("value=\"").append(theme).append("\"/>").append(theme).append("<br />\n");
|
||||
buf.append("value=\"").append(theme).append("\"/>").append(theme).append("<br>\n");
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ public class ConfigUpdateHandler extends FormHandler {
|
||||
public static final String PROP_TRUSTED_KEYS = "router.trustedUpdateKeys";
|
||||
|
||||
|
||||
@Override
|
||||
protected void processForm() {
|
||||
if ("Check for update now".equals(_action)) {
|
||||
NewsFetcher fetcher = NewsFetcher.getInstance(I2PAppContext.getGlobalContext());
|
||||
|
@ -3,7 +3,6 @@ package net.i2p.router.web;
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.crypto.TrustedUpdate;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ConfigUpdateHelper extends HelperBase {
|
||||
public ConfigUpdateHelper() {}
|
||||
|
@ -1,14 +1,12 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.stat.Rate;
|
||||
|
||||
public class GraphHelper extends HelperBase {
|
||||
@ -105,17 +103,17 @@ public class GraphHelper extends HelperBase {
|
||||
}
|
||||
public String getForm() {
|
||||
try {
|
||||
_out.write("<hr /><h3>Configure Graph Display</h3>");
|
||||
_out.write("<br><h3>Configure Graph Display</h3>");
|
||||
_out.write("<p />[<a href=\"configstats.jsp\">Select Stats to Graph</a>]<p />");
|
||||
_out.write("<form action=\"graphs.jsp\" method=\"GET\">");
|
||||
_out.write("Periods: <input size=\"3\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\" /><br />\n");
|
||||
_out.write("Periods: <input size=\"3\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\" /><br>\n");
|
||||
_out.write("Plot averages: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + " /> ");
|
||||
_out.write("or plot events: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br />\n");
|
||||
_out.write("or plot events: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br>\n");
|
||||
_out.write("Image sizes: width: <input size=\"4\" type=\"text\" name=\"width\" value=\"" + _width
|
||||
+ "\" /> pixels, height: <input size=\"4\" type=\"text\" name=\"height\" value=\"" + _height
|
||||
+ "\" /><br />\n");
|
||||
_out.write("Refresh delay: <select name=\"refreshDelay\"><option value=\"60\">1 minute</option><option value=\"120\">2 minutes</option><option value=\"300\">5 minutes</option><option value=\"600\">10 minutes</option><option value=\"1800\">30 minutes</option><option value=\"3600\">1 hour</option><option value=\"-1\">Never</option></select><br />\n");
|
||||
_out.write("<hr /><div class=\"formaction\"><input type=\"submit\" value=\"Redraw\" /></div></div>");
|
||||
+ "\" /><br>\n");
|
||||
_out.write("Refresh delay: <select name=\"refreshDelay\"><option value=\"60\">1 minute</option><option value=\"120\">2 minutes</option><option value=\"300\">5 minutes</option><option value=\"600\">10 minutes</option><option value=\"1800\">30 minutes</option><option value=\"3600\">1 hour</option><option value=\"-1\">Never</option></select><br>\n");
|
||||
_out.write("<br><div class=\"formaction\"><input type=\"submit\" value=\"Redraw\" /></div></div>");
|
||||
} catch (IOException ioe) {
|
||||
ioe.printStackTrace();
|
||||
}
|
||||
|
@ -3,9 +3,7 @@ package net.i2p.router.web;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class JobQueueHelper extends HelperBase {
|
||||
public JobQueueHelper() {}
|
||||
|
@ -10,7 +10,7 @@ public class LogsHelper extends HelperBase {
|
||||
|
||||
public String getLogs() {
|
||||
String str = formatMessages(_context.logManager().getBuffer().getMostRecentMessages());
|
||||
return "Location: <code>" + _context.logManager().currentFile() + "</code><br /><br />" + str;
|
||||
return "Location: <code>" + _context.logManager().currentFile() + "</code><br><br>" + str;
|
||||
}
|
||||
|
||||
public String getCriticalLogs() {
|
||||
|
@ -4,7 +4,6 @@ import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class NavHelper extends HelperBase {
|
||||
private static Map _apps = new HashMap();
|
||||
|
@ -3,9 +3,7 @@ package net.i2p.router.web;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class NetDbHelper extends HelperBase {
|
||||
private String _routerPrefix;
|
||||
|
@ -3,9 +3,7 @@ package net.i2p.router.web;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class OldConsoleHelper extends HelperBase {
|
||||
public OldConsoleHelper() {}
|
||||
|
@ -1,9 +1,7 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class PeerHelper extends HelperBase {
|
||||
private int _sortFlags;
|
||||
|
@ -4,7 +4,6 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class ProfilesHelper extends HelperBase {
|
||||
public ProfilesHelper() {}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.io.Writer;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -80,7 +80,7 @@ public class StatsGenerator {
|
||||
buf.append(stat);
|
||||
buf.append("\">");
|
||||
buf.append(stat);
|
||||
buf.append("</a></b><br />");
|
||||
buf.append("</a></b><br>");
|
||||
if (_context.statManager().isFrequency(stat))
|
||||
renderFrequency(stat, buf);
|
||||
else
|
||||
@ -88,7 +88,7 @@ public class StatsGenerator {
|
||||
out.write(buf.toString());
|
||||
buf.setLength(0);
|
||||
}
|
||||
out.write("</ul><hr />");
|
||||
out.write("</ul><br>");
|
||||
}
|
||||
out.flush();
|
||||
}
|
||||
@ -97,7 +97,7 @@ public class StatsGenerator {
|
||||
FrequencyStat freq = _context.statManager().getFrequency(name);
|
||||
buf.append("<i>");
|
||||
buf.append(freq.getDescription());
|
||||
buf.append("</i><br />");
|
||||
buf.append("</i><br>");
|
||||
long uptime = _context.router().getUptime();
|
||||
long periods[] = freq.getPeriods();
|
||||
Arrays.sort(periods);
|
||||
@ -124,9 +124,9 @@ public class StatsGenerator {
|
||||
buf.append(" using the lifetime of ");
|
||||
buf.append(curFreq.getEventCount());
|
||||
buf.append(" events)");
|
||||
buf.append("<br />");
|
||||
buf.append("<br>");
|
||||
}
|
||||
buf.append("<br />");
|
||||
buf.append("<br>");
|
||||
}
|
||||
|
||||
private void renderRate(String name, StringBuilder buf) {
|
||||
@ -135,10 +135,10 @@ public class StatsGenerator {
|
||||
if (! "".equals(d)) {
|
||||
buf.append("<i>");
|
||||
buf.append(d);
|
||||
buf.append("</i><br />");
|
||||
buf.append("</i><br>");
|
||||
}
|
||||
if (rate.getLifetimeEventCount() <= 0) {
|
||||
buf.append("No lifetime events<br /> <br />");
|
||||
buf.append("No lifetime events<br> <br>");
|
||||
return;
|
||||
}
|
||||
long now = _context.clock().now();
|
||||
@ -217,9 +217,9 @@ public class StatsGenerator {
|
||||
buf.append(num(rate.getLifetimeAverageValue()));
|
||||
buf.append(" over ");
|
||||
buf.append(rate.getLifetimeEventCount());
|
||||
buf.append(" events<br /></li>");
|
||||
buf.append(" events<br></li>");
|
||||
buf.append("</ul>");
|
||||
buf.append("<br />");
|
||||
buf.append("<br>");
|
||||
}
|
||||
|
||||
private static void renderPeriod(StringBuilder buf, long period, String name) {
|
||||
|
@ -1,15 +1,12 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.text.Collator;
|
||||
import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.Destination;
|
||||
@ -18,7 +15,6 @@ import net.i2p.data.LeaseSet;
|
||||
import net.i2p.data.RouterAddress;
|
||||
import net.i2p.router.CommSystemFacade;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterVersion;
|
||||
import net.i2p.router.TunnelPoolSettings;
|
||||
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
|
||||
@ -349,18 +345,18 @@ public class SummaryHelper extends HelperBase {
|
||||
String name = getName(client);
|
||||
Hash h = client.calculateHash();
|
||||
|
||||
buf.append("<tr><td align=\"right\"><b><img src=\"/themes/console/images/");
|
||||
buf.append("<tr><td align=\"right\"><img src=\"/themes/console/images/");
|
||||
if (_context.clientManager().shouldPublishLeaseSet(h))
|
||||
buf.append("server.png\" alt=\"Server\" title=\"Server\" />");
|
||||
else
|
||||
buf.append("client.png\" alt=\"Client\" title=\"Client\" />");
|
||||
buf.append("</td><td align=\"left\"><a href=\"tunnels.jsp#").append(h.toBase64().substring(0,4));
|
||||
buf.append("</td><td align=\"left\"><b><a href=\"tunnels.jsp#").append(h.toBase64().substring(0,4));
|
||||
buf.append("\" target=\"_top\" title=\"Show tunnels\">");
|
||||
if (name.length() < 16)
|
||||
buf.append(name);
|
||||
else
|
||||
buf.append(name.substring(0,15)).append("…");
|
||||
buf.append("</a></td>\n");
|
||||
buf.append("</a></b></td>\n");
|
||||
LeaseSet ls = _context.netDb().lookupLeaseSetLocally(h);
|
||||
if (ls != null) {
|
||||
long timeToExpire = ls.getEarliestLeaseDate() - _context.clock().now();
|
||||
|
@ -132,9 +132,11 @@ class SummaryListener implements RateSummaryListener {
|
||||
RrdDb getData() { return _db; }
|
||||
long now() { return _context.clock().now(); }
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return ((obj instanceof SummaryListener) && ((SummaryListener)obj)._rate.equals(_rate));
|
||||
}
|
||||
@Override
|
||||
public int hashCode() { return _rate.hashCode(); }
|
||||
}
|
||||
|
||||
|
@ -3,9 +3,7 @@ package net.i2p.router.web;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class TunnelHelper extends HelperBase {
|
||||
public TunnelHelper() {}
|
||||
|
@ -2,7 +2,6 @@ package net.i2p.router.web;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.util.EepGet;
|
||||
@ -99,11 +98,11 @@ public class UnsignedUpdateHandler extends UpdateHandler {
|
||||
_context.router().saveConfig();
|
||||
if ("install".equals(policy)) {
|
||||
_log.log(Log.CRIT, "Update was downloaded, restarting to install it");
|
||||
_status = "<b>Update downloaded</b><br />Restarting";
|
||||
_status = "<b>Update downloaded</b><br>Restarting";
|
||||
restart();
|
||||
} else {
|
||||
_log.log(Log.CRIT, "Update was downloaded, will be installed at next restart");
|
||||
_status = "<b>Update downloaded</b><br />";
|
||||
_status = "<b>Update downloaded</b><br>";
|
||||
if (System.getProperty("wrapper.version") != null)
|
||||
_status += "Click Restart to install";
|
||||
else
|
||||
|
@ -167,7 +167,7 @@ public class UpdateHandler {
|
||||
synchronized (_pct) {
|
||||
buf.append(_pct.format(pct));
|
||||
}
|
||||
buf.append(":<br />\n" + (currentWrite + alreadyTransferred));
|
||||
buf.append(":<br>\n" + (currentWrite + alreadyTransferred));
|
||||
buf.append(" transferred");
|
||||
_status = buf.toString();
|
||||
}
|
||||
@ -192,11 +192,11 @@ public class UpdateHandler {
|
||||
_context.router().saveConfig();
|
||||
if ("install".equals(policy)) {
|
||||
_log.log(Log.CRIT, "Update was VERIFIED, restarting to install it");
|
||||
_status = "<b>Update verified</b><br />Restarting";
|
||||
_status = "<b>Update verified</b><br>Restarting";
|
||||
restart();
|
||||
} else {
|
||||
_log.log(Log.CRIT, "Update was VERIFIED, will be installed at next restart");
|
||||
_status = "<b>Update downloaded</b><br />";
|
||||
_status = "<b>Update downloaded</b><br>";
|
||||
if (System.getProperty("wrapper.version") != null)
|
||||
_status += "Click Restart to install";
|
||||
else
|
||||
|
@ -13,7 +13,7 @@
|
||||
<h1>I2P Network Configuration</h1>
|
||||
<div class="main" id="main">
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigNetHandler" id="formhandler" scope="request" />
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
@ -25,45 +25,42 @@
|
||||
System.setProperty("net.i2p.router.web.ConfigNetHandler.nonce", new java.util.Random().nextLong()+""); %>
|
||||
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigNetHandler.nonce")%>" />
|
||||
<input type="hidden" name="action" value="blah" />
|
||||
<h3>Bandwidth limiter</h3>
|
||||
<p>
|
||||
<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>
|
||||
<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 <td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)<br />
|
||||
<!-- let's keep this simple...
|
||||
bursting up to
|
||||
<input name="inboundburstrate" type="text" size="5" value="<jsp:getProperty name="nethelper" property="inboundBurstRate" />" /> KBps for
|
||||
<jsp:getProperty name="nethelper" property="inboundBurstFactorBox" /><br />
|
||||
-->
|
||||
<tr><td><input style="text-align: right; width: 5em;" name="outboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="outboundRate" />" /> KBps
|
||||
Out <td>(<jsp:getProperty name="nethelper" property="outboundRateBits" />)<br />
|
||||
<!-- let's keep this simple...
|
||||
bursting up to
|
||||
<input name="outboundburstrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="outboundBurstRate" />" /> KBps for
|
||||
<jsp:getProperty name="nethelper" property="outboundBurstFactorBox" /><br />
|
||||
<i>KBps = kilobytes per second = 1024 bytes per second = 8192 bits per second.<br />
|
||||
A negative rate sets the default.</i><br />
|
||||
-->
|
||||
<tr><td><jsp:getProperty name="nethelper" property="sharePercentageBox" />
|
||||
Share <td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)<br />
|
||||
</table></div>
|
||||
</p><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
|
||||
</td><td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)</td>
|
||||
<!-- let's keep this simple...
|
||||
bursting up to
|
||||
<input name="inboundburstrate" type="text" size="5" value="<jsp:getProperty name="nethelper" property="inboundBurstRate" />" /> KBps for
|
||||
<jsp:getProperty name="nethelper" property="inboundBurstFactorBox" /><br>
|
||||
-->
|
||||
</tr><tr>
|
||||
<td><input style="text-align: right; width: 5em;" name="outboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="outboundRate" />" /> KBps Out
|
||||
</td><td>(<jsp:getProperty name="nethelper" property="outboundRateBits" />)</td>
|
||||
<!-- let's keep this simple...
|
||||
bursting up to
|
||||
<input name="outboundburstrate" type="text" size="2" value="<jsp:getProperty name="nethelper" property="outboundBurstRate" />" /> KBps for
|
||||
<jsp:getProperty name="nethelper" property="outboundBurstFactorBox" /><br>
|
||||
<i>KBps = kilobytes per second = 1024 bytes per second = 8192 bits per second.<br>
|
||||
A negative rate sets the default.</i><br>
|
||||
-->
|
||||
</tr><tr>
|
||||
<td><jsp:getProperty name="nethelper" property="sharePercentageBox" /> Share</td>
|
||||
<td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)
|
||||
</td></tr></table></div></p><p>
|
||||
<% int share = nethelper.getShareBandwidth();
|
||||
if (share < 12) {
|
||||
out.print("<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.<br>");
|
||||
} 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("The higher the share bandwidth the more you improve your anonymity and help the network.<br>");
|
||||
}
|
||||
%>
|
||||
</p><div class="formaction">
|
||||
</p><div class="formaction">
|
||||
<input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /></div>
|
||||
<!--
|
||||
<b>Enable load testing: </b>
|
||||
@ -71,28 +68,25 @@
|
||||
<p>If enabled, your router will periodically anonymously probe some of your peers
|
||||
to see what sort of throughput they can handle. This improves your router's ability
|
||||
to pick faster peers, but can cost substantial bandwidth. Relevant data from the
|
||||
load testing is fed into the profiles as well as the
|
||||
load testing is fed into the profiles as well as the
|
||||
<a href="oldstats.jsp#test.rtt">test.rtt</a> and related stats.</p>
|
||||
<hr />
|
||||
<br>
|
||||
-->
|
||||
<h3>IP and Transport Configuration</h3>
|
||||
<p>
|
||||
<h3>IP and Transport Configuration</h3><p>
|
||||
<b>The default settings will work for most people. There is <a href="#chelp">help below</a>.</b>
|
||||
</p><p>
|
||||
<b>UPnP Configuration:</b><br />
|
||||
</p><p><b>UPnP Configuration:</b><br>
|
||||
<input type="checkbox" class="optbox" name="upnp" value="true" <jsp:getProperty name="nethelper" property="upnpChecked" /> />
|
||||
Enable UPnP to open firewall ports - <a href="peers.jsp#upnp">UPnP status</a>
|
||||
</p><p>
|
||||
<b>IP Configuration:</b><br />
|
||||
Externally reachable hostname or IP address:<br />
|
||||
</p><p><b>IP Configuration:</b><br>
|
||||
Externally reachable hostname or IP address:<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="local,upnp,ssu" <%=nethelper.getUdpAutoIPChecked(3) %> />
|
||||
Use all auto-detect methods<br />
|
||||
Use all auto-detect methods<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="local,ssu" <%=nethelper.getUdpAutoIPChecked(4) %> />
|
||||
Disable UPnP IP address detection<br />
|
||||
Disable UPnP IP address detection<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="upnp,ssu" <%=nethelper.getUdpAutoIPChecked(5) %> />
|
||||
Ignore local interface IP address<br />
|
||||
Ignore local interface IP address<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="ssu" <%=nethelper.getUdpAutoIPChecked(0) %> />
|
||||
Use SSU IP address detection only<br />
|
||||
Use SSU IP address detection only<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="fixed" <%=nethelper.getUdpAutoIPChecked(1) %> />
|
||||
Specify hostname or IP:
|
||||
<input name ="udpHost1" type="text" size="16" value="<jsp:getProperty name="nethelper" property="udphostname" />" />
|
||||
@ -109,52 +103,47 @@
|
||||
out.print("</select>\n");
|
||||
}
|
||||
%>
|
||||
<br />
|
||||
<br>
|
||||
<input type="radio" class="optbox" name="udpAutoIP" value="hidden" <%=nethelper.getUdpAutoIPChecked(2) %> />
|
||||
Hidden mode - do not publish IP <i>(prevents participating traffic)</i><br />
|
||||
</p><p>
|
||||
<b>UDP Configuration:</b><br />
|
||||
Hidden mode - do not publish IP <i>(prevents participating traffic)</i><br>
|
||||
</p><p><b>UDP Configuration:</b><br>
|
||||
UDP port:
|
||||
<input name ="udpPort" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="configuredUdpPort" />" /><br />
|
||||
<input name ="udpPort" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="configuredUdpPort" />" /><br>
|
||||
<!-- let's keep this simple...
|
||||
<input type="checkbox" class="optbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> />
|
||||
Require SSU introductions
|
||||
<i>(Enable if you cannot open your firewall)</i>
|
||||
</p><p>
|
||||
Current External UDP address: <i><jsp:getProperty name="nethelper" property="udpAddress" /></i><br />
|
||||
Current External UDP address: <i><jsp:getProperty name="nethelper" property="udpAddress" /></i><br>
|
||||
-->
|
||||
</p><p>
|
||||
<b>TCP Configuration:</b><br />
|
||||
Externally reachable hostname or IP address:<br />
|
||||
<b>TCP Configuration:</b><br>
|
||||
Externally reachable hostname or IP address:<br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoIP" value="true" <%=nethelper.getTcpAutoIPChecked(2) %> />
|
||||
Use auto-detected IP address
|
||||
<i>(currently <jsp:getProperty name="nethelper" property="udpIP" />)</i>
|
||||
if we are not firewalled<br />
|
||||
if we are not firewalled<br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoIP" value="always" <%=nethelper.getTcpAutoIPChecked(3) %> />
|
||||
Always use auto-detected IP address (Not firewalled)<br />
|
||||
Always use auto-detected IP address (Not firewalled)<br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(1) %> />
|
||||
Specify hostname or IP:
|
||||
<input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" /><br />
|
||||
<input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" /><br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(0) %> />
|
||||
Disable inbound (Firewalled)<br />
|
||||
Disable inbound (Firewalled)<br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoIP" value="disabled" <%=nethelper.getTcpAutoIPChecked(4) %> />
|
||||
Completely disable <i>(select only if behind a firewall that throttles or blocks outbound TCP)</i><br />
|
||||
Completely disable <i>(select only if behind a firewall that throttles or blocks outbound TCP)</i><br>
|
||||
</p><p>
|
||||
Externally reachable TCP port:<br />
|
||||
Externally reachable TCP port:<br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> />
|
||||
Use the same port configured for UDP
|
||||
<i>(currently <jsp:getProperty name="nethelper" property="udpPort" />)</i><br />
|
||||
<i>(currently <jsp:getProperty name="nethelper" property="udpPort" />)</i><br>
|
||||
<input type="radio" class="optbox" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> />
|
||||
Specify Port:
|
||||
<input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br />
|
||||
</p><p><b>Note: Changing these settings will restart your router.</b>
|
||||
</p><hr><div class="formaction">
|
||||
<input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br>
|
||||
</p><p><b>Note: Changing these settings will restart your router.</b></p>
|
||||
<hr><div class="formaction">
|
||||
<input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" />
|
||||
</div>
|
||||
</div>
|
||||
<h3><a name="chelp">Configuration Help:</a></h3>
|
||||
<div align="justify">
|
||||
<p>
|
||||
</div><h3><a name="chelp">Configuration Help:</a></h3><div align="justify"><p>
|
||||
While I2P will work fine behind most firewalls, your speeds and network integration will generally improve
|
||||
if the I2P port (generally 8887) is forwarded for both UDP and TCP.
|
||||
</p><p>
|
||||
@ -166,30 +155,30 @@
|
||||
</p>
|
||||
<!-- let's keep this simple...
|
||||
<input type="submit" name="recheckReachability" value="Check network reachability..." />
|
||||
</p>
|
||||
-->
|
||||
</p><p>
|
||||
<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:
|
||||
<ul>
|
||||
<ul>
|
||||
<li class="tidylist">No UPnP-compatible device present
|
||||
<li class="tidylist">UPnP disabled on the device
|
||||
<li class="tidylist">Software firewall interference with UPnP
|
||||
<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><br>
|
||||
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.
|
||||
</p><p>Hostnames entered above will be published in the network database.
|
||||
</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.
|
||||
If you specify the wrong IP address or
|
||||
hostname, or do not properly configure your NAT or firewall, your network performance will degrade
|
||||
substantially. When in doubt, leave the settings at the defaults.</p>
|
||||
</p>
|
||||
<h3><a name="help">Reachability Help:</a></h3>
|
||||
<p>
|
||||
substantially. When in doubt, leave the settings at the defaults.
|
||||
</p>
|
||||
<h3><a name="help">Reachability Help:</a></h3><p>
|
||||
While I2P will work fine behind most firewalls, your speeds and network integration will generally improve
|
||||
if the I2P port (generally 8887) to both UDP and TCP.
|
||||
If you think you have opened up your firewall and I2P still thinks you are firewalled, remember
|
||||
@ -244,19 +233,17 @@
|
||||
<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>
|
||||
</p>
|
||||
<hr />
|
||||
</ul></p><br>
|
||||
<!--
|
||||
<b>Dynamic Router Keys: </b>
|
||||
<input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br />
|
||||
<input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br>
|
||||
<p>
|
||||
This setting causes your router identity to be regenerated every time your IP address
|
||||
changes. If you have a dynamic IP this option can speed up your reintegration into
|
||||
the network (since people will have shitlisted your old router identity), and, for
|
||||
very weak adversaries, help frustrate trivial
|
||||
<a href="http://www.i2p.net/how_threatmodel#intersection">intersection
|
||||
attacks</a> against the NetDB. Your different router identities would only be
|
||||
attacks</a> against the NetDB. Your different router identities would only be
|
||||
'hidden' among other I2P users at your ISP, and further analysis would link
|
||||
the router identities further.</p>
|
||||
<p>Note that when I2P detects an IP address change, it will automatically
|
||||
@ -264,10 +251,6 @@
|
||||
update their profiles - any long lasting client connections will be disconnected,
|
||||
though such would likely already be the case anyway, since the IP address changed.
|
||||
</p>
|
||||
<hr />
|
||||
<br>
|
||||
-->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></form></div></div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config advanced</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -30,15 +29,9 @@
|
||||
<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>
|
||||
<textarea rows="32" cols="60" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br /><hr>
|
||||
<div class="formaction">
|
||||
<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 />
|
||||
<input type="reset" value="Cancel" /><br>
|
||||
<b>NOTE:</b> Some changes may require a restart to take effect.
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></form></div></div></div></body></html>
|
||||
|
@ -2,15 +2,13 @@
|
||||
<%@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><title>I2P Router Console - config clients</title>
|
||||
<%@include file="css.jsp" %>
|
||||
<style type='text/css'>
|
||||
button span.hide{
|
||||
display:none;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
</style></head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
|
||||
@ -19,31 +17,26 @@ button span.hide{
|
||||
<h1>I2P Client Configuration</h1>
|
||||
<div class="main" id="main">
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<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="action" value="<%=request.getParameter("action")%>" />
|
||||
<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">
|
||||
<form action="configclients.jsp" method="POST">
|
||||
<div class="configure"><form action="configclients.jsp" method="POST">
|
||||
<% String prev = System.getProperty("net.i2p.router.web.ConfigClientsHandler.nonce");
|
||||
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>
|
||||
<h3>Client Configuration</h3><p>
|
||||
The Java clients listed below are started by the router and run in the same JVM.
|
||||
</p><p> <div class="wideload">
|
||||
<jsp:getProperty name="clientshelper" property="form1" />
|
||||
</p><p>
|
||||
<i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i>
|
||||
</p> <hr /><div class="formaction">
|
||||
</p><div class="wideload">
|
||||
<p><jsp:getProperty name="clientshelper" property="form1" />
|
||||
</p><p><i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i>
|
||||
</p><br><div class="formaction">
|
||||
<input type="submit" name="action" value="Save Client Configuration" />
|
||||
</div></div>
|
||||
<h3>WebApp Configuration</h3>
|
||||
<p>
|
||||
</div></div><h3>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),
|
||||
@ -53,18 +46,11 @@ button span.hide{
|
||||
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,
|
||||
so disabling the web app here is the preferred method.
|
||||
</p><p><div class="wideload">
|
||||
</p>
|
||||
<div class="wideload"><p>
|
||||
<jsp:getProperty name="clientshelper" property="form2" />
|
||||
</p>
|
||||
<p>
|
||||
</p><p>
|
||||
<i>All changes require restart to take effect. To change other webapp options, edit the webapps.config file.</i>
|
||||
</p>
|
||||
<hr><div class="formaction">
|
||||
</p><hr><div class="formaction">
|
||||
<input type="submit" name="action" value="Save WebApp Configuration" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></form></div></div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config keyring</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -16,21 +15,16 @@
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<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>
|
||||
<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="wideload"><p>
|
||||
<div class="wideload"><p>
|
||||
<jsp:getProperty name="keyringhelper" property="summary" />
|
||||
</p></div>
|
||||
|
||||
<hr />
|
||||
<br>
|
||||
|
||||
<form action="configkeyring.jsp" method="POST">
|
||||
<% String prev = System.getProperty("net.i2p.router.web.ConfigKeyringHandler.nonce");
|
||||
@ -41,23 +35,14 @@
|
||||
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>
|
||||
<div class="wideload">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right">Dest. name, hash, or full key:</td>
|
||||
<td><textarea name="peer" cols="44" rows="1" style="height: 3em;" wrap="off"></textarea></td>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right">Session Key:</td>
|
||||
<td><input type="text" size="55" name="key" /></td>
|
||||
<tr>
|
||||
<td>
|
||||
<td align="right">
|
||||
<input type="submit" name="action" value="Add key" /></td>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<div class="wideload">
|
||||
<table><tr>
|
||||
<td class="mediumtags" align="right">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">Session Key:</td>
|
||||
<td><input type="text" size="55" name="key" /></td>
|
||||
</tr><tr>
|
||||
<td></td>
|
||||
<td align="right"><input type="submit" name="action" value="Add key" /></td>
|
||||
</tr></table></div></form></div></div></body></html>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:getProperty name="formhandler" property="allMessages" />
|
||||
<div class="configure">
|
||||
<div class="configure">
|
||||
<form action="configlogging.jsp" method="POST">
|
||||
<% String prev = System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce");
|
||||
if (prev != null) System.setProperty("net.i2p.router.web.ConfigLoggingHandler.noncePrev", prev);
|
||||
@ -28,43 +28,26 @@
|
||||
<h3>Configure I2P Logging Options</h3>
|
||||
<div class="wideload">
|
||||
<table border="0" cellspacing="5">
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Logging filename:</b>
|
||||
<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>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Log record format:</b>
|
||||
<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>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Log date format:</b>
|
||||
<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>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Max log file size:</b>
|
||||
<td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" />
|
||||
<br />
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Default log level:</b>
|
||||
<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>
|
||||
<tr>
|
||||
<td class="mediumtags" align="right"><b>Log level overrides:</b>
|
||||
<td><jsp:getProperty name="logginghelper" property="logLevelTable" />
|
||||
<tr>
|
||||
<td colspan="2"><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>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<tr><td class="mediumtags" align="right"><b>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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<td><jsp:getProperty name="logginghelper" property="logLevelTable" /></td>
|
||||
</tr><tr><td colspan="2"><hr></td>
|
||||
</tr><tr><td> <div align="right">
|
||||
<input type="submit" name="shouldsave" value="Save changes" />
|
||||
<input type="reset" value="Cancel" />
|
||||
</div></td></tr></table></div></form></div></div></body></html>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="confignav" id="confignav">
|
||||
<center>
|
||||
<% if (request.getRequestURI().indexOf("config.jsp") != -1) {
|
||||
<% if (request.getRequestURI().indexOf("config.jsp") != -1) {
|
||||
%>Network | <% } else { %><a href="config.jsp">Network</a> | <% }
|
||||
String userAgent = request.getHeader("User-Agent");
|
||||
if (userAgent == null || !userAgent.contains("MSIE")) {
|
||||
@ -25,5 +25,4 @@
|
||||
%>Stats | <% } else { %><a href="configstats.jsp">Stats</a> | <% }
|
||||
if (request.getRequestURI().indexOf("configadvanced.jsp") != -1) {
|
||||
%>Advanced<% } else { %><a href="configadvanced.jsp">Advanced</a><% } %>
|
||||
</center>
|
||||
</div>
|
||||
</center></div>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config peers</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -11,19 +10,19 @@
|
||||
<h1>I2P Peer Configuration</h1>
|
||||
<div class="main" id="main">
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigPeerHandler" id="formhandler" scope="request" />
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:getProperty name="formhandler" property="allMessages" />
|
||||
|
||||
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigPeerHelper" id="peerhelper" scope="request" />
|
||||
<jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
|
||||
<% String peer = "";
|
||||
if (request.getParameter("peer") != null)
|
||||
if (request.getParameter("peer") != null)
|
||||
peer = request.getParameter("peer");
|
||||
%>
|
||||
<div class="configure">
|
||||
@ -40,9 +39,9 @@
|
||||
<div class="mediumtags">Router Hash:
|
||||
<input type="text" size="55" name="peer" value="<%=peer%>" /></div>
|
||||
<h3>Manually Ban / Unban a Peer</h3>
|
||||
Shitlisting will prevent the participation of this peer in tunnels you create.
|
||||
<hr />
|
||||
<div class="formaction">
|
||||
Shitlisting will prevent the participation of this peer in tunnels you create.
|
||||
<hr>
|
||||
<div class="formaction">
|
||||
<input type="submit" name="action" value="Ban peer until restart" />
|
||||
<input type="submit" name="action" value="Unban peer" />
|
||||
<% if (! "".equals(peer)) { %>
|
||||
@ -51,17 +50,17 @@
|
||||
</div>
|
||||
|
||||
<h3>Adjust Profile Bonuses</h3>
|
||||
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>.
|
||||
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>
|
||||
<% long speed = 0; long capacity = 0;
|
||||
if (! "".equals(peer)) {
|
||||
// get existing bonus values?
|
||||
}
|
||||
%>
|
||||
<hr />
|
||||
%>
|
||||
<hr>
|
||||
<div class="mediumtags">Speed:
|
||||
<input type="text" size="8" name="speed" value="<%=speed%>" />
|
||||
Capacity:
|
||||
@ -73,12 +72,8 @@
|
||||
<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:getProperty name="profilesHelper" property="shitlistSummary" />
|
||||
<hr />
|
||||
<hr>
|
||||
<div class="wideload">
|
||||
<jsp:getProperty name="peerhelper" property="blocklistSummary" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config service</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -11,7 +10,7 @@
|
||||
<h1>I2P Service Configuration</h1>
|
||||
<div class="main" id="main">
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigServiceHandler" id="formhandler" scope="request" />
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
@ -23,7 +22,7 @@
|
||||
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>
|
||||
<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
|
||||
router immediately, that option is available as well.</p>
|
||||
<hr><div class="formaction">
|
||||
@ -32,7 +31,7 @@
|
||||
<input type="submit" name="action" value="Cancel graceful shutdown" />
|
||||
</div>
|
||||
<% 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
|
||||
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
|
||||
@ -45,46 +44,41 @@
|
||||
|
||||
<% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %>
|
||||
<h3>Systray integration</h3>
|
||||
<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
|
||||
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>
|
||||
<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>
|
||||
<p>You can control whether I2P is run on startup or not by selecting one of the
|
||||
</div><h3>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
|
||||
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>
|
||||
<hr><div class="formaction">
|
||||
<input type="submit" name="action" value="Run I2P on startup" />
|
||||
<input type="submit" name="action" value="Don't run I2P on startup" /></div>
|
||||
<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
|
||||
above, then running uninstall_i2p_service_winnt.bat.</p>
|
||||
<% } %>
|
||||
|
||||
<% if (System.getProperty("wrapper.version") != null) { %>
|
||||
<h3>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
|
||||
<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>
|
||||
<hr><div class="formaction">
|
||||
<input type="submit" name="action" value="Dump threads" />
|
||||
<% } %></div>
|
||||
|
||||
|
||||
<h3>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
|
||||
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
|
||||
the router starts up.</p>
|
||||
<hr><div class="formaction">
|
||||
<input type="submit" name="action" value="View console on startup" />
|
||||
<input type="submit" name="action" value="Do not view console on startup" />
|
||||
</form></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></form></div></div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config stats</title>
|
||||
<%@include file="css.jsp" %>
|
||||
<script type="text/javascript">
|
||||
function init()
|
||||
@ -73,39 +72,40 @@ function toggleAll(category)
|
||||
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigStatsHandler.nonce")%>" />
|
||||
<h3>Configure I2P Stat Collection</h3>
|
||||
Enable full stats?
|
||||
<input type="checkbox" class="optbox" name="isFull" value="true" <%
|
||||
<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>)<hr />
|
||||
(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>
|
||||
<div class="wideload">
|
||||
<table>
|
||||
<% while (statshelper.hasMoreStats()) {
|
||||
while (statshelper.groupRequired()) { %>
|
||||
<tr class="tablefooter"><td align="left" colspan="3">
|
||||
<tr class="tablefooter">
|
||||
<td align="left" colspan="3">
|
||||
<b><%=statshelper.getCurrentGroupName()%></b>
|
||||
(<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>)
|
||||
</td></tr><tr class="tablefooter"><td align="center"><b>Log</b></td><td align="center"><b>Graph</b></td><td></td></tr><%
|
||||
</td></tr>
|
||||
<tr class="tablefooter">
|
||||
<td align="center"><b>Log</b></td>
|
||||
<td align="center"><b>Graph</b></td>
|
||||
<td></td></tr>
|
||||
<%
|
||||
} // end iterating over required groups for the current stat %>
|
||||
<tr><td align="center">
|
||||
<a name="<%=statshelper.getCurrentStatName()%>"></a>
|
||||
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
|
||||
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
|
||||
if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td>
|
||||
<td align="center">
|
||||
<% if (statshelper.getCurrentCanBeGraphed()) { %>
|
||||
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
|
||||
<input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
|
||||
if (statshelper.getCurrentIsGraphed()) { %>checked="true" <% } %>/><% } %></td>
|
||||
<td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br />
|
||||
<td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br>
|
||||
<%=statshelper.getCurrentStatDescription()%></td></tr><%
|
||||
} // 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">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></form>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<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>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@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><title>I2P Router Console - config tunnels</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -21,16 +20,14 @@
|
||||
<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><i>
|
||||
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">
|
||||
</i></p><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);
|
||||
@ -38,13 +35,8 @@
|
||||
<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>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>
|
||||
<hr /><div class="formaction"><input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" /></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<br><div class="formaction"><input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" /></div>
|
||||
</form></div></div></div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - config UI</title>
|
||||
<html><head><title>I2P Router Console - config UI</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -16,13 +15,12 @@
|
||||
<div class="main" id="main">
|
||||
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigUIHandler" id="formhandler" scope="request" />
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:getProperty name="formhandler" property="allMessages" />
|
||||
<div class="configure">
|
||||
<h3>Router Console Theme</h3>
|
||||
<div class="configure"><h3>Router Console Theme</h3>
|
||||
<%
|
||||
// userAgent defined in confignav
|
||||
if (userAgent == null || !userAgent.contains("MSIE")) {
|
||||
@ -34,14 +32,11 @@
|
||||
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUIHandler.nonce")%>" />
|
||||
<input type="hidden" name="action" value="blah" />
|
||||
<jsp:getProperty name="uihelper" property="settings" />
|
||||
<hr><div class="formaction">
|
||||
<hr><div class="formaction">
|
||||
<input type="submit" name="shouldsave" value="Apply" /> <input type="reset" value="Cancel" />
|
||||
</form></div>
|
||||
</div></form></div>
|
||||
<% } else { %>
|
||||
Theme selection disabled for Internet Explorer, sorry.<hr>If you're not using IE, it's likely that
|
||||
Theme selection disabled for Internet Explorer, sorry.<hr>If you're not using IE, it's likely that
|
||||
your browser is pretending to be IE; please configure your browser (or proxy) to use a different User Agent string if you'd like to access the console themes.
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - config update</title>
|
||||
<html><head><title>I2P Router Console - config update</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -11,16 +10,15 @@
|
||||
<h1>I2P Update Configuration</h1>
|
||||
<div class="main" id="main">
|
||||
<%@include file="confignav.jsp" %>
|
||||
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" />
|
||||
<jsp:setProperty name="formhandler" property="*" />
|
||||
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:getProperty name="formhandler" property="allMessages" />
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
|
||||
<jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<div class="messages">
|
||||
<i><jsp:getProperty name="updatehelper" property="newsStatus" /></i></div>
|
||||
<i><jsp:getProperty name="updatehelper" property="newsStatus" /></i></div>
|
||||
<div class="configure">
|
||||
<form action="configupdate.jsp" method="POST">
|
||||
<% String prev = System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce");
|
||||
@ -29,56 +27,33 @@
|
||||
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
|
||||
<h3>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:</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 update now" />
|
||||
<% } %></tr>
|
||||
<tr>
|
||||
<td colspan="2"><hr /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>News URL:</b></td>
|
||||
<tr><td colspan="2"></tr>
|
||||
<tr><td class= "mediumtags" align="right"><b>News:</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 update now" />
|
||||
<% } %></td></tr>
|
||||
<tr><td colspan="2"><br></td></tr>
|
||||
<tr><td class= "mediumtags" align="right"><b>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>
|
||||
<td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Update policy:</b>
|
||||
<td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Update through the eepProxy?</b>
|
||||
<td><jsp:getProperty name="updatehelper" property="updateThroughProxy" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>eepProxy host:</b>
|
||||
<td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>eepProxy port:</b>
|
||||
<td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Update URLs:</b>
|
||||
<td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea>
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Trusted keys:</b>
|
||||
<td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea>
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Update with unsigned development builds?</b>
|
||||
<td><jsp:getProperty name="updatehelper" property="updateUnsigned" />
|
||||
<tr>
|
||||
<td class= "mediumtags" align="right"><b>Unsigned Build URL:</b></td>
|
||||
</tr><tr><td class= "mediumtags" align="right"><b>Refresh frequency:</b>
|
||||
<td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" /></td><tr>
|
||||
<td class= "mediumtags" align="right"><b>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>
|
||||
<td><jsp:getProperty name="updatehelper" property="updateThroughProxy" /></td>
|
||||
</tr><tr><td class= "mediumtags" align="right"><b>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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<td><jsp:getProperty name="updatehelper" property="updateUnsigned" /></td>
|
||||
</tr><tr><td class= "mediumtags" align="right"><b>Unsigned Build URL:</b></td>
|
||||
<td><input type="text" size="60" name="zipURL" value="<jsp:getProperty name="updatehelper" property="zipURL" />"></td>
|
||||
<tr>
|
||||
<td>
|
||||
<td><div class="formaction">
|
||||
<input type="submit" name="action" value="Save" />
|
||||
<input type="reset" value="Cancel" />
|
||||
</div>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</tr><tr><td>
|
||||
<div class="formaction">
|
||||
<input type="submit" name="action" value="Save" />
|
||||
<input type="reset" value="Cancel" />
|
||||
</div></td></tr></table></div></form></div></div></body></html>
|
||||
|
@ -8,14 +8,14 @@
|
||||
response.setHeader("Cache-Control","no-cache");
|
||||
response.setDateHeader("Expires", 0);
|
||||
// the above will b0rk if the servlet engine has already flushed
|
||||
// the response prior to including this file, so it should be
|
||||
// the response prior to including this file, so it should be
|
||||
// near the top
|
||||
|
||||
|
||||
if (request.getParameter("i2p.contextId") != null) {
|
||||
session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
|
||||
session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
|
||||
}
|
||||
%>
|
||||
<jsp:useBean class="net.i2p.router.web.CSSHelper" id="cssHelper" scope="request" />
|
||||
<jsp:setProperty name="cssHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<link href="<%=cssHelper.getTheme(request.getHeader("User-Agent"))%>console.css" rel="stylesheet" type="text/css" />
|
||||
<!--[if IE]><link href="/themes/console/classic/ieshim.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
<link href="<%=cssHelper.getTheme(request.getHeader("User-Agent"))%>console.css" rel="stylesheet" type="text/css" />
|
||||
<!--[if IE]><link href="/themes/console/classic/ieshim.css" rel="stylesheet" type="text/css" /><![endif]-->
|
@ -1,5 +1,5 @@
|
||||
<%@page contentType="text/plain"
|
||||
%><jsp:useBean id="helper" class="net.i2p.router.web.StatHelper"
|
||||
/><jsp:setProperty name="helper" property="peer" value="<%=request.getParameter("peer")%>"
|
||||
/><jsp:setProperty name="helper" property="writer" value="<%=out%>"
|
||||
<%@page contentType="text/plain"
|
||||
%><jsp:useBean id="helper" class="net.i2p.router.web.StatHelper"
|
||||
/><jsp:setProperty name="helper" property="peer" value="<%=request.getParameter("peer")%>"
|
||||
/><jsp:setProperty name="helper" property="writer" value="<%=out%>"
|
||||
/><jsp:getProperty name="helper" property="profile" />
|
@ -12,12 +12,10 @@
|
||||
}
|
||||
// If it can't find the iframe or viewtheme.jsp I wonder if the whole thing blows up...
|
||||
%>
|
||||
<html><head>
|
||||
<title>I2P Router Console</title>
|
||||
<html><head><title>I2P Router Console</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<%@include file="css.jsp" %>
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
</head><body>
|
||||
<link rel="shortcut icon" href="favicon.ico" /></head><body>
|
||||
<%
|
||||
if (System.getProperty("router.consoleNonce") == null) {
|
||||
System.setProperty("router.consoleNonce", new java.util.Random().nextLong() + "");
|
||||
@ -27,6 +25,4 @@ if (System.getProperty("router.consoleNonce") == null) {
|
||||
<h1><%=ERROR_CODE%> <%=ERROR_MESSAGE%></h1>
|
||||
<div class="warning" id="warning">
|
||||
The Router Console page <%=ERROR_URI%> was not found.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,8 +2,7 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - graphs</title>
|
||||
<html><head><title>I2P Router Console - graphs</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
@ -11,14 +10,11 @@
|
||||
<h1>I2P Performance Graphs</h1>
|
||||
<div class="main" id="main">
|
||||
<div class="graphspanel">
|
||||
<div class="widepanel">
|
||||
<div class="widepanel">
|
||||
<jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
|
||||
<jsp:setProperty name="graphHelper" property="*" />
|
||||
<jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:setProperty name="graphHelper" property="writer" value="<%=out%>" />
|
||||
<jsp:getProperty name="graphHelper" property="images" />
|
||||
<jsp:getProperty name="graphHelper" property="form" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></div></body></html>
|
@ -2,34 +2,27 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - help</title>
|
||||
<html><head><title>I2P Router Console - help</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Router Help & Support</h1>
|
||||
<div class="main" id="main"><div align="justify">
|
||||
If you'd like to help improve or translate the documentation, or
|
||||
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>
|
||||
<a href="http://www.i2p2.i2p/getinvolved.html">volunteers.</a>
|
||||
<br><br>Further assistance is available here:<br></div>
|
||||
<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>
|
||||
<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 />
|
||||
or IRC.<br>
|
||||
|
||||
<h2>Summary Bar Information</h2><div align="justify">
|
||||
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>
|
||||
</div><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>.
|
||||
@ -43,10 +36,7 @@ your computer's time.
|
||||
<li class="tidylist"><b>Reachability:</b>
|
||||
The router's view of whether it can be contacted by other routers.
|
||||
Further information is on the <a href="config.jsp#help">configuration page</a>.
|
||||
</ul>
|
||||
|
||||
<h3>Peers</h3>
|
||||
<ul>
|
||||
</ul><h3>Peers</h3><ul>
|
||||
<li class="tidylist"><b>Active:</b>
|
||||
The first number is the number of peers you've sent or received a message from in the last few minutes.
|
||||
This may range from 8-10 to several hundred, depending on your total bandwidth,
|
||||
@ -75,21 +65,17 @@ This number is not the total size of the network;
|
||||
it may vary widely depending on your total bandwidth,
|
||||
shared bandwidth, and locally-generated traffic.
|
||||
I2P does not require a router to know every other router.
|
||||
</ul>
|
||||
|
||||
<h3>Bandwidth in/out</h3><div align="justify">
|
||||
</ul><h3>Bandwidth in/out</h3><div align="justify">
|
||||
Should be self-explanatory. All values are in bytes per second, not bits per second.
|
||||
Change your bandwidth limits on the <a href="config.jsp#help">configuration page</a>.
|
||||
Bandwidth is <a href="graphs.jsp">graphed</a> by default.
|
||||
</div>
|
||||
Bandwidth is <a href="graphs.jsp">graphed</a> by default.</div>
|
||||
|
||||
<h3>Local destinations</h3><div align="justify">
|
||||
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>
|
||||
</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>
|
||||
<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>
|
||||
@ -102,12 +88,10 @@ shared bandwidth, and amount of locally-generated traffic.
|
||||
The recommended method for limiting participating tunnels is
|
||||
to change your share percentage on the <a href="config.jsp#help">configuration page</a>.
|
||||
You may also limit the total number by setting <tt>router.maxParticipatingTunnels=nnn</tt> on
|
||||
the <a href="configadvanced.jsp">advanced configuration page</a>. <a href="configstats.jsp#tunnel.participatingTunnels">[Enable graphing]</a>.
|
||||
</ul>
|
||||
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><br><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,
|
||||
@ -143,42 +127,41 @@ participating tunnel through your router.
|
||||
Your router may accept all requests, accept or reject a percentage of requests,
|
||||
or reject all requests for a number of reasons, to control
|
||||
the bandwidth and CPU demands and maintain capacity for
|
||||
local clients.
|
||||
</ul>
|
||||
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>
|
||||
The I2P router (router.jar) and SDK (i2p.jar) are almost entirely public domain, with
|
||||
a few notable exceptions:</div><br><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>
|
||||
<li class="tidylist">SNTP code, under the BSD license, written by Adam Buckley</li>
|
||||
<li class="tidylist">The rest is outright public domain, written by jrandom, mihi, hypercubus, oOo,
|
||||
<li class="tidylist">The rest is outright public domain, written by jrandom, mihi, hypercubus, oOo,
|
||||
ugha, duck, shendaras, and others.</li>
|
||||
</ul>
|
||||
|
||||
<p>On top of the I2P router are a series of client applications, each with their own set of
|
||||
licenses and dependencies. This webpage is being served as part of the I2P routerconsole
|
||||
client application, which is built off a trimmed down <a href="http://jetty.mortbay.com/jetty/index.html">Jetty</a>
|
||||
instance (trimmed down, as in, we do not include the demo apps or other add-ons, and we simplify configuration),
|
||||
allowing you to deploy standard JSP/Servlet web applications into your router. Jetty in turn makes use of
|
||||
instance (trimmed down, as in, we do not include the demo apps or other add-ons, and we simplify configuration),
|
||||
allowing you to deploy standard JSP/Servlet web applications into your router. Jetty in turn makes use of
|
||||
Apache's javax.servlet (javax.servlet.jar) implementation.
|
||||
This product includes software developed by the Apache Software Foundation
|
||||
This product includes software developed by the Apache Software Foundation
|
||||
(http://www.apache.org/). </p>
|
||||
|
||||
<p>Another application you can see on this webpage is <a href="http://www.i2p2.i2p/i2ptunnel">I2PTunnel</a>
|
||||
(your <a href="i2ptunnel/" target="_blank">web interface</a>) - a GPL'ed application written by mihi that
|
||||
lets you tunnel normal TCP/IP traffic over I2P (such as the eepproxy and the irc proxy). There is also a
|
||||
<a href="http://susi.i2p/">susimail</a> web based mail client <a href="susimail/susimail">available</a> on
|
||||
the console, which is a GPL'ed application written by susi23. The addressbook application, written by
|
||||
the console, which is a GPL'ed application written by susi23. The addressbook application, written by
|
||||
<a href="http://ragnarok.i2p/">Ragnarok</a> helps maintain your hosts.txt files (see ./addressbook/ for
|
||||
more information).</p>
|
||||
|
||||
<p>The router by default also includes human's public domain <a href="http://www.i2p2.i2p/sam">SAM</a> bridge,
|
||||
which other client applications (such the <a href="http://duck.i2p/i2p-bt/">bittorrent port</a>) can use.
|
||||
There is also an optimized library for doing large number calculations - jbigi - which in turn uses the
|
||||
LGPL licensed <a href="http://swox.com/gmp/">GMP</a> library, tuned for various PC architectures. Launchers for windows users are built with <a href="http://launch4j.sourceforge.net/">Launch4J</a>, and the installer is built with <a href="http://www.izforge.com/izpack/">IzPack</a>. For
|
||||
details on other applications available, as well as their licenses, please see the
|
||||
which other client applications (such the <a href="http://duck.i2p/i2p-bt/">bittorrent port</a>) can use.
|
||||
There is also an optimized library for doing large number calculations - jbigi - which in turn uses the
|
||||
LGPL licensed <a href="http://swox.com/gmp/">GMP</a> library, tuned for various PC architectures. Launchers for windows users are built with <a href="http://launch4j.sourceforge.net/">Launch4J</a>, and the installer is built with <a href="http://www.izforge.com/izpack/">IzPack</a>. For
|
||||
details on other applications available, as well as their licenses, please see the
|
||||
<a href="http://www.i2p2.i2p/licenses">license policy</a>. Source for the I2P code and most bundled
|
||||
client applications can be found on our <a href="http://www.i2p2.i2p/download">download page</a>.
|
||||
.</p>
|
||||
@ -190,10 +173,7 @@ client applications can be found on our <a href="http://www.i2p2.i2p/download">d
|
||||
<jsp:setProperty name="contenthelper" property="maxLines" value="256" />
|
||||
<jsp:setProperty name="contenthelper" property="startAtBeginning" value="true" />
|
||||
<jsp:getProperty name="contenthelper" property="textContent" />
|
||||
|
||||
<p>A more complete list of changes can be found
|
||||
|
||||
<p>A more complete list of changes can be found
|
||||
in the history.txt file in your i2p directory.
|
||||
</p><hr />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</p><br></div></body></html>
|
||||
|
@ -14,9 +14,7 @@ if (System.getProperty("router.consoleNonce") == null) {
|
||||
}
|
||||
%>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
|
||||
<h1>I2P Router Console</h1>
|
||||
<%@include file="summary.jsp" %><h1>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"); %>
|
||||
@ -26,17 +24,12 @@ if (System.getProperty("router.consoleNonce") == null) {
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
|
||||
<jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<hr /><i><jsp:getProperty name="updatehelper" property="newsStatus" /></i><br />
|
||||
</div>
|
||||
|
||||
<div class="main" id="main">
|
||||
<br><i><jsp:getProperty name="updatehelper" property="newsStatus" /></i><br>
|
||||
</div><div class="main" id="main">
|
||||
<jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />
|
||||
<% fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/readme.html"); %>
|
||||
<jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
|
||||
<jsp:setProperty name="contenthelper" property="maxLines" value="300" />
|
||||
<jsp:setProperty name="contenthelper" property="lang" value="<%=request.getParameter("lang")%>" />
|
||||
<jsp:getProperty name="contenthelper" property="content" />
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,19 +2,13 @@
|
||||
<%@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><title>I2P Router Console - job queue</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Router Job Queue</h1>
|
||||
<%@include file="summary.jsp" %><h1>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>
|
||||
</div></body></html>
|
||||
|
@ -2,36 +2,25 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - logs</title>
|
||||
<html><head><title>I2P Router Console - logs</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Router Logs</h1>
|
||||
<h1>I2P Router Logs</h1>
|
||||
<div class="main" id="main">
|
||||
<div class="joblog">
|
||||
<h3>Version:</h3><a name="version"> </a>
|
||||
<div class="joblog"><h3>Version:</h3><a name="version"> </a>
|
||||
Please include this information in bug reports.
|
||||
<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 />
|
||||
</p>
|
||||
<hr />
|
||||
<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></p><br>
|
||||
<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" />
|
||||
<hr />
|
||||
<jsp:getProperty name="logsHelper" property="criticalLogs" /><br>
|
||||
<h3>Router logs (<a href="configlogging.jsp">configure</a>):</h3>
|
||||
<jsp:getProperty name="logsHelper" property="logs" />
|
||||
<hr />
|
||||
<jsp:getProperty name="logsHelper" property="logs" /><br>
|
||||
<h3>Service (Wrapper) logs:</h3><a name="servicelogs"> </a>
|
||||
<jsp:getProperty name="logsHelper" property="serviceLogs" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></body></html>
|
||||
|
@ -6,7 +6,6 @@
|
||||
<title>I2P Router Console - network database summary</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Network Database Summary</h1>
|
||||
<div class="main" id="main">
|
||||
@ -18,7 +17,4 @@
|
||||
<jsp:setProperty name="netdbHelper" property="router" value="<%=request.getParameter("r")%>" />
|
||||
<jsp:setProperty name="netdbHelper" property="lease" value="<%=request.getParameter("l")%>" />
|
||||
<jsp:getProperty name="netdbHelper" property="netDbSummary" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></body></html>
|
||||
|
@ -2,20 +2,14 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - internals</title>
|
||||
<html><head><title>I2P Router Console - internals</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
|
||||
<jsp:useBean class="net.i2p.router.web.OldConsoleHelper" id="conhelper" scope="request" />
|
||||
<jsp:setProperty name="conhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<jsp:setProperty name="conhelper" property="writer" value="<%=out%>" />
|
||||
<h1>I2P Router » Old Console</h1>
|
||||
<div class="main" id="main">
|
||||
<jsp:getProperty name="conhelper" property="console" />
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,20 +2,14 @@
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html><head>
|
||||
<title>I2P Router Console - statistics</title>
|
||||
<html><head><title>I2P Router Console - statistics</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</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>
|
||||
<div class="main" id="main">
|
||||
<jsp:getProperty name="oldhelper" property="stats" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,13 +2,11 @@
|
||||
<%@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><title>I2P Router Console - peer connections</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Network Peers</h1>
|
||||
<h1>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")%>" />
|
||||
@ -16,7 +14,4 @@
|
||||
<jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
|
||||
<jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter("sort") != null ? request.getParameter("sort") : ""%>" />
|
||||
<jsp:getProperty name="peerHelper" property="peerSummary" />
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -2,21 +2,15 @@
|
||||
<%@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><title>I2P Router Console - peer profiles</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Network Peer Profiles</h1>
|
||||
</head><body><%@include file="summary.jsp" %>
|
||||
<h1>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:getProperty name="profilesHelper" property="profileSummary" />
|
||||
<hr />
|
||||
<br>
|
||||
<a name="shitlist"> </a>
|
||||
<jsp:getProperty name="profilesHelper" property="shitlistSummary" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</div></div></body></html>
|
||||
|
@ -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("<hr /><p><center><form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
|
||||
out.print("<br><p><center><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></center></p></div>\n");
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
</div></div>
|
||||
|
@ -49,16 +49,12 @@
|
||||
}
|
||||
}
|
||||
%>
|
||||
</head>
|
||||
|
||||
<body style="margin: 0;">
|
||||
|
||||
<div class="routersummary">
|
||||
</head><body style="margin: 0;"><div class="routersummary">
|
||||
<%@include file="summarynoframe.jsp" %>
|
||||
<%
|
||||
// d and shutdownSoon defined above
|
||||
if (!shutdownSoon) {
|
||||
out.print("<hr /><p><form action=\"summaryframe.jsp\" method=\"GET\">\n");
|
||||
out.print("<br><p><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");
|
||||
@ -67,10 +63,7 @@
|
||||
out.print("<input type=\"hidden\" name=\"refresh\" value=\"0\" />\n");
|
||||
out.print("<button type=\"submit\">Disable " + d + "s Refresh</button>\n");
|
||||
}
|
||||
out.print("</form></p><hr />\n");
|
||||
out.print("</form></p><br>\n");
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" />
|
||||
<jsp:setProperty name="update" property="*" />
|
||||
<jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||
<a href="index.jsp" target="_top"><img src="/themes/console/images/i2plogo.png" alt="I2P Router Console" title="I2P Router Console"/></a><hr />
|
||||
<a href="index.jsp" target="_top"><img src="/themes/console/images/i2plogo.png" alt="I2P Router Console" title="I2P Router Console"/></a><hr>
|
||||
<% java.io.File lpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/toolbar.html");
|
||||
// you better have target="_top" for the links in there...
|
||||
if (lpath.exists()) { %>
|
||||
@ -21,47 +21,37 @@
|
||||
<jsp:setProperty name="linkhelper" property="maxLines" value="100" />
|
||||
<jsp:getProperty name="linkhelper" property="content" />
|
||||
<% } else { %>
|
||||
<h3><a href="/configclients.jsp" target="_top" title="Configure startup of clients and webapps (services); manually start dormant services.">I2P Services</a></h3><hr>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="susidns/index.jsp" target="_blank" title="Manage your I2P hosts file here (I2P domain name resolution).">Addressbook</a>
|
||||
<h3><a href="/configclients.jsp" target="_top" title="Configure startup of clients and webapps (services); manually start dormant services.">I2P Services</a></h3>
|
||||
<hr><table>
|
||||
<tr><td><a href="susidns/index.jsp" target="_blank" title="Manage your I2P hosts file here (I2P domain name resolution).">Addressbook</a>
|
||||
<a href="i2psnark/" target="_blank" title="Built-in anonymous BitTorrent Client">Torrents</a>
|
||||
<a href="susimail/susimail" target="blank" title="Anonymous webmail client.">Webmail</a>
|
||||
<a href="http://127.0.0.1:7658/" target="_blank" title="Anonymous resident webserver.">Webserver</a></td>
|
||||
</tr></table><hr>
|
||||
<h3><a href="config.jsp" target="_top" title="Configure I2P Router.">I2P Internals</a></h3><hr>
|
||||
<table><tr>
|
||||
<td>
|
||||
<a href="tunnels.jsp" target="_top" title="View existing tunnels and tunnel build status.">Tunnels</a>
|
||||
<a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a>
|
||||
<a href="profiles.jsp" target="_top" title="Show recent peer performance profiles.">Profiles</a>
|
||||
<a href="netdb.jsp" target="_top" title="Show list of all known I2P routers.">NetDB</a>
|
||||
<a href="logs.jsp" target="_top" title="Health Report.">Logs</a>
|
||||
<a href="susimail/susimail" target="blank" title="Anonymous webmail client.">Webmail</a>
|
||||
<a href="http://127.0.0.1:7658/" target="_blank" title="Anonymous resident webserver.">Webserver</a></td></tr></table>
|
||||
<hr><h3><a href="config.jsp" target="_top" title="Configure I2P Router.">I2P Internals</a></h3><hr>
|
||||
<table><tr><td>
|
||||
<a href="tunnels.jsp" target="_top" title="View existing tunnels and tunnel build status.">Tunnels</a>
|
||||
<a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a>
|
||||
<a href="profiles.jsp" target="_top" title="Show recent peer performance profiles.">Profiles</a>
|
||||
<a href="netdb.jsp" target="_top" title="Show list of all known I2P routers.">NetDB</a>
|
||||
<a href="logs.jsp" target="_top" title="Health Report.">Logs</a>
|
||||
<a href="jobs.jsp" target="_top" title="Show the router's workload, and how it's performing.">Jobs</a>
|
||||
<a href="graphs.jsp" target="_top" title="Graph router performance.">Graphs</a>
|
||||
<a href="oldstats.jsp" target="_top" title="Textual router performance statistics.">Stats</a>
|
||||
</td></tr></table>
|
||||
<a href="graphs.jsp" target="_top" title="Graph router performance.">Graphs</a>
|
||||
<a href="oldstats.jsp" target="_top" title="Textual router performance statistics.">Stats</a></td></tr></table>
|
||||
<% } %>
|
||||
|
||||
<hr>
|
||||
<h3><a href="help.jsp" target="_top" title="I2P Router Help.">General</a></h3><hr>
|
||||
<h4>
|
||||
<a title="Your unique I2P router identity is <jsp:getProperty name="helper" property="ident" />, never reveal it to anyone" href="netdb.jsp?r=." target="_top">Local Identity</a></h4>
|
||||
<hr>
|
||||
<table><tr>
|
||||
<td align="left">
|
||||
<hr><h3><a href="help.jsp" target="_top" title="I2P Router Help.">General</a></h3><hr>
|
||||
<h4><a title="Your unique I2P router identity is <jsp:getProperty name="helper" property="ident" />, never reveal it to anyone" href="netdb.jsp?r=." target="_top">Local Identity</a></h4><hr>
|
||||
<table><tr><td align="left">
|
||||
<b>Version:</b></td>
|
||||
<td align="right"><jsp:getProperty name="helper" property="version" /></td></tr>
|
||||
<tr title="How long we've been running for this session.">
|
||||
<td align="left">
|
||||
<b>Uptime:</b></td>
|
||||
<td align="right"><jsp:getProperty name="helper" property="uptime" /></td></tr></table>
|
||||
<hr><h4><a href="config.jsp#help" target="_top" title="Help with configuring your firewall and router for optimal I2P performance."><jsp:getProperty name="helper" property="reachability" /></a></h4>
|
||||
<hr>
|
||||
<td align="left"><b>Uptime:</b></td>
|
||||
<td align="right"><jsp:getProperty name="helper" property="uptime" />
|
||||
</td></tr></table>
|
||||
<hr><h4><a href="config.jsp#help" target="_top" title="Help with configuring your firewall and router for optimal I2P performance."><jsp:getProperty name="helper" property="reachability" /></a></h4><hr>
|
||||
<%
|
||||
if (helper.updateAvailable() || helper.unsignedUpdateAvailable()) {
|
||||
// display all the time so we display the final failure message
|
||||
out.print("<br />" + update.getStatus());
|
||||
out.print("<br>" + update.getStatus());
|
||||
if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress"))) {
|
||||
} else if((!update.isDone()) &&
|
||||
request.getParameter("action") == null &&
|
||||
@ -77,21 +67,22 @@
|
||||
if (helper.updateAvailable())
|
||||
out.print("<button type=\"submit\" name=\"updateAction\" value=\"signed\" >Download " + helper.getUpdateVersion() + " Update</button>\n");
|
||||
if (helper.unsignedUpdateAvailable())
|
||||
out.print("<button type=\"submit\" name=\"updateAction\" value=\"Unsigned\" >Download Unsigned<br />" + helper.getUnsignedUpdateVersion() + " Update</button>\n");
|
||||
out.print("<button type=\"submit\" name=\"updateAction\" value=\"Unsigned\" >Download Unsigned<br>" + helper.getUnsignedUpdateVersion() + " Update</button>\n");
|
||||
out.print("</form></p>\n");
|
||||
}
|
||||
}
|
||||
%>
|
||||
<p>
|
||||
<%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
|
||||
</p>
|
||||
<hr />
|
||||
<h3><a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a></h3><hr><table>
|
||||
</p><hr><h3><a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a></h3><hr>
|
||||
<table>
|
||||
<tr><td align="left"><b>Active:</b></td><td align="right"><jsp:getProperty name="helper" property="activePeers" />/<jsp:getProperty name="helper" property="activeProfiles" /></td></tr>
|
||||
<tr><td align="left"><b>Fast:</b></td><td align="right"><jsp:getProperty name="helper" property="fastPeers" /></td></tr>
|
||||
<tr><td align="left"><b>High capacity:</b></td><td align="right"><jsp:getProperty name="helper" property="highCapacityPeers" /></td></tr>
|
||||
<tr><td align="left"><b>Integrated:</b></td><td align="right"><jsp:getProperty name="helper" property="wellIntegratedPeers" /></td></tr>
|
||||
<tr><td align="left"><b>Known:</b></td><td align="right"><jsp:getProperty name="helper" property="allPeers" /></td></tr></table><hr><%
|
||||
<tr><td align="left"><b>Known:</b></td><td align="right"><jsp:getProperty name="helper" property="allPeers" /></td></tr>
|
||||
</table><hr>
|
||||
<%
|
||||
if (helper.getActivePeers() <= 0) {
|
||||
%><h4><a href="config.jsp" target="_top" title="Help with firewall configuration.">Check NAT/firewall</a></h4><%
|
||||
}
|
||||
@ -99,7 +90,7 @@
|
||||
if (helper.allowReseed()) {
|
||||
if ("true".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
|
||||
// While reseed occurring, show status message instead
|
||||
out.print("<i>" + System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","") + "</i><br />");
|
||||
out.print("<i>" + System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","") + "</i><br>");
|
||||
} else {
|
||||
// While no reseed occurring, show reseed link
|
||||
long nonce = new java.util.Random().nextLong();
|
||||
@ -116,29 +107,27 @@
|
||||
if ("false".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
|
||||
String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage","");
|
||||
if (reseedErrorMessage.length() > 0) {
|
||||
out.print("<i>" + reseedErrorMessage + "</i><br />");
|
||||
out.print("<i>" + reseedErrorMessage + "</i><br>");
|
||||
}
|
||||
}
|
||||
%><hr />
|
||||
<h3><a href="config.jsp" title="Configure router bandwidth allocation." target="_top">Bandwidth in/out</a></h3><hr>
|
||||
%>
|
||||
<hr><h3><a href="config.jsp" title="Configure router bandwidth allocation." target="_top">Bandwidth in/out</a></h3><hr>
|
||||
<table>
|
||||
<tr><td align="left"><b>1s:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundSecondKBps" />/<jsp:getProperty name="helper" property="outboundSecondKBps" />K/s</td></tr>
|
||||
<tr><td align="left"><b>5m:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundFiveMinuteKBps" />/<jsp:getProperty name="helper" property="outboundFiveMinuteKBps" />K/s</td></tr>
|
||||
<tr><td align="left"><b>Total:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundLifetimeKBps" />/<jsp:getProperty name="helper" property="outboundLifetimeKBps" />K/s</td></tr>
|
||||
<tr><td align="left"><b>Used:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundTransferred" />/<jsp:getProperty name="helper" property="outboundTransferred" /></td></tr></table>
|
||||
<hr>
|
||||
<h3><a href="tunnels.jsp" target="_blank" title="View existing tunnels and tunnel build status.">Tunnels in/out</a></h3><hr>
|
||||
<table><tr>
|
||||
<td align="left"><b>Exploratory:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundTunnels" />/<jsp:getProperty name="helper" property="outboundTunnels" /></td></tr>
|
||||
<hr><h3><a href="tunnels.jsp" target="_blank" title="View existing tunnels and tunnel build status.">Tunnels in/out</a></h3><hr>
|
||||
<table>
|
||||
<tr><td align="left"><b>Exploratory:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundTunnels" />/<jsp:getProperty name="helper" property="outboundTunnels" /></td></tr>
|
||||
<tr><td align="left"><b>Client:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundClientTunnels" />/<jsp:getProperty name="helper" property="outboundClientTunnels" /></td></tr>
|
||||
<tr><td align="left"><b>Participating:</b></td><td align="right"><jsp:getProperty name="helper" property="participatingTunnels" /></td></tr></table>
|
||||
<hr>
|
||||
<h3><a href="/oldstats.jsp#JobQueue" target="_top" title="What's in the router's job queue?">Congestion</a></h3><hr>
|
||||
<table><tr>
|
||||
<td align="left"><b>Job lag:</b></td><td align="right"><jsp:getProperty name="helper" property="jobLag" /></td></tr>
|
||||
<tr><td align="left"><b>Participating:</b></td><td align="right"><jsp:getProperty name="helper" property="participatingTunnels" /></td></tr>
|
||||
</table><hr><h3><a href="/oldstats.jsp#JobQueue" target="_top" title="What's in the router's job queue?">Congestion</a></h3><hr>
|
||||
<table>
|
||||
<tr><td align="left"><b>Job lag:</b></td><td align="right"><jsp:getProperty name="helper" property="jobLag" /></td></tr>
|
||||
<tr><td align="left"><b>Message delay:</b></td><td align="right"><jsp:getProperty name="helper" property="messageDelay" /></td></tr>
|
||||
<tr><td align="left"><b>Tunnel lag:</b></td><td align="right"><jsp:getProperty name="helper" property="tunnelLag" /></td></tr>
|
||||
<tr><td align="left"><b>Backlog:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundBacklog" /></td></tr><table align="center" title="Router tunnel build status.">
|
||||
<hr><h4><jsp:getProperty name="helper" property="tunnelStatus" /></h4>
|
||||
<hr>
|
||||
<jsp:getProperty name="helper" property="destinations" />
|
||||
<tr><td align="left"><b>Backlog:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundBacklog" /></td></tr>
|
||||
</table><hr><table title="Router tunnel build status.">
|
||||
<tr><td align="center"><h4><jsp:getProperty name="helper" property="tunnelStatus" /></h4></td></tr>
|
||||
</table><hr><jsp:getProperty name="helper" property="destinations" />
|
||||
|
@ -2,19 +2,13 @@
|
||||
<%@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><title>I2P Router Console - tunnel summary</title>
|
||||
<%@include file="css.jsp" %>
|
||||
</head><body>
|
||||
|
||||
<%@include file="summary.jsp" %>
|
||||
<h1>I2P Tunnel Summary</h1>
|
||||
<%@include file="summary.jsp" %><h1>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")%>" />
|
||||
<jsp:setProperty name="tunnelHelper" property="writer" value="<%=out%>" />
|
||||
<jsp:getProperty name="tunnelHelper" property="tunnelSummary" />
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</div></body></html>
|
||||
|
@ -10,7 +10,7 @@ String templateFile = request.getParameter("template");
|
||||
if (templateFile != null) {
|
||||
java.io.OutputStream cout = response.getOutputStream();
|
||||
response.setContentType("image/png");
|
||||
rendered = net.i2p.router.web.StatSummarizer.instance().renderPng(cout, templateFile);
|
||||
rendered = net.i2p.router.web.StatSummarizer.instance().renderPng(cout, templateFile);
|
||||
}
|
||||
net.i2p.stat.Rate rate = null;
|
||||
String stat = request.getParameter("stat");
|
||||
@ -19,11 +19,11 @@ boolean fakeBw = (stat != null && ("bw.combined".equals(stat)));
|
||||
net.i2p.stat.RateStat rs = net.i2p.I2PAppContext.getGlobalContext().statManager().getRate(stat);
|
||||
if ( !rendered && ((rs != null) || fakeBw) ) {
|
||||
long per = -1;
|
||||
try {
|
||||
try {
|
||||
if (fakeBw)
|
||||
per = 60*1000;
|
||||
else
|
||||
per = Long.parseLong(period);
|
||||
per = Long.parseLong(period);
|
||||
if (!fakeBw)
|
||||
rate = rs.getRate(per);
|
||||
if ( (rate != null) || (fakeBw) ) {
|
||||
@ -63,7 +63,7 @@ if ( !rendered && ((rs != null) || fakeBw) ) {
|
||||
}
|
||||
} catch (NumberFormatException nfe) {}
|
||||
}
|
||||
if (!rendered) {
|
||||
if (!rendered) {
|
||||
response.sendError(404, "That stat is not available");
|
||||
}
|
||||
%>
|
Reference in New Issue
Block a user