propagate from branch 'i2p.i2p.zzz.test3' (head d847100f901613ad765312ac9fed6d578d08d907)

to branch 'i2p.i2p' (head 63ce4ace08b7b7ba01531f0951ffc47ed57411a6)
This commit is contained in:
zzz
2009-08-11 16:11:45 +00:00
16 changed files with 39 additions and 35 deletions

View File

@ -20,22 +20,22 @@ public class ConfigPeerHandler extends FormHandler {
if ("Save Configuration".equals(_action)) {
_context.router().saveConfig();
addFormNotice("Settings saved - not really!!!!!");
} else if (_action.startsWith("Shitlist")) {
} else if (_action.startsWith("Ban")) {
Hash h = getHash();
if (h != null) {
_context.shitlist().shitlistRouterForever(h, "Manually shitlisted via <a href=\"configpeer.jsp\">configpeer.jsp</a>");
addFormNotice("Peer " + _peer + " shitlisted forever");
_context.shitlist().shitlistRouterForever(h, "Manually banned via <a href=\"configpeer.jsp\">configpeer.jsp</a>");
addFormNotice("Peer " + _peer + " banned until restart");
return;
}
addFormError("Invalid peer");
} else if (_action.startsWith("Unshitlist")) {
} else if (_action.startsWith("Unban")) {
Hash h = getHash();
if (h != null) {
if (_context.shitlist().isShitlisted(h)) {
_context.shitlist().unshitlistRouter(h);
addFormNotice("Peer " + _peer + " unshitlisted");
addFormNotice("Peer " + _peer + " unbanned");
} else
addFormNotice("Peer " + _peer + " is not currently shitlisted");
addFormNotice("Peer " + _peer + " is not currently banned");
return;
}
addFormError("Invalid peer");

View File

@ -6,7 +6,6 @@ import java.io.OutputStreamWriter;
import java.io.Writer;
import net.i2p.router.RouterContext;
import net.i2p.router.admin.StatsGenerator;
public class OldConsoleHelper extends HelperBase {
public OldConsoleHelper() {}

View File

@ -1,4 +1,4 @@
package net.i2p.router.admin;
package net.i2p.router.web;
import java.io.IOException;
import java.io.Writer;

View File

@ -39,12 +39,12 @@
<h2>Manual Peer Controls</h2>
<div class="mediumtags">Router Hash:
<input type="text" size="55" name="peer" value="<%=peer%>" /></div>
<h3>Manually Shitlist / Unshitlist a Router</h3>
<h3>Manually Ban / Unban a Peer</h3>
Shitlisting will prevent the participation of this peer in tunnels you create.
<hr />
<div class="formaction">
<input type="submit" name="action" value="Shitlist peer until restart" />
<input type="submit" name="action" value="Unshitlist peer" />
<input type="submit" name="action" value="Ban peer until restart" />
<input type="submit" name="action" value="Unban peer" />
<% if (! "".equals(peer)) { %>
<!-- <font color="blue">&lt;---- click to verify action</font> -->
<% } %>

View File

@ -1,15 +1,14 @@
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
/*
* All links in the summary bar must have target="_top"
* so they don't load in the iframe
*/
%>
<html><head>
<%@include file="css.jsp" %>
<title>Summary Bar</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%
@ -50,7 +49,6 @@
}
}
%>
<%@include file="css.jsp" %>
</head>
<body style="margin: 0;">

View File

@ -17,6 +17,10 @@ import java.util.Properties;
/**
* Simple config file handler.
*
* Warning - browser needs double quotes and double backslashes on Windows
* e.g.
* browser="C:\\Program Files\\Mozilla Firefox\\firefox.exe"
*
* @author hypercubus
*/
public class ConfigFile {

View File

@ -212,6 +212,11 @@ public class DataHelper {
/**
* A more efficient Properties.load
*
* Some of the other differences:
* - This does not process or drop backslashes
* - '#' or ';' starts a comment line, but '!' does not
* - Leading whitespace is not trimmed
* - '=' is the only key-termination character (not ':' or whitespace)
*/
public static void loadProps(Properties props, File file) throws IOException {
loadProps(props, file, false);

View File

@ -111,7 +111,7 @@ public class Blocklist {
}
for (Iterator iter = _peerBlocklist.keySet().iterator(); iter.hasNext(); ) {
Hash peer = (Hash) iter.next();
String reason = "Blocklisted by router hash";
String reason = "Banned by router hash";
String comment = (String) _peerBlocklist.get(peer);
if (comment != null)
reason = reason + ": " + comment;
@ -659,7 +659,7 @@ public class Blocklist {
*/
public void shitlist(Hash peer) {
// Temporary reason, until the job finishes
_context.shitlist().shitlistRouterForever(peer, "IP Blocklisted");
_context.shitlist().shitlistRouterForever(peer, "IP Banned");
if (! "true".equals( _context.getProperty(PROP_BLOCKLIST_DETAIL, "true")))
return;
boolean shouldRunJob;
@ -682,7 +682,7 @@ public class Blocklist {
super(_context);
_peer = p;
}
public String getName() { return "Shitlist Peer Forever"; }
public String getName() { return "Ban Peer by IP"; }
public void runJob() {
shitlistForever(_peer);
synchronized (_inProcess) {
@ -735,7 +735,7 @@ public class Blocklist {
if (i != 3)
reason = reason + '.';
}
reason = reason + " blocklisted by entry \"" + buf + "\"";
reason = reason + " banned by " + BLOCKLIST_FILE_DEFAULT + " entry \"" + buf + "\"";
if (_log.shouldLog(Log.WARN))
_log.warn("Shitlisting " + peer + " " + reason);
_context.shitlist().shitlistRouterForever(peer, reason);
@ -755,7 +755,7 @@ public class Blocklist {
/** write directly to the stream so we don't OOM on a huge list */
public void renderStatusHTML(Writer out) throws IOException {
out.write("<h2>IP Blocklist</h2>");
out.write("<h2>Banned IPs</h2>");
Set singles = new TreeSet();
singles.addAll(_singleIPBlocklist);
if (singles.size() > 0) {

View File

@ -771,14 +771,15 @@ public class Router {
out.flush();
}
private static int MAX_MSG_LENGTH = 120;
//private static int MAX_MSG_LENGTH = 120;
private static final void appendLogMessage(StringBuilder buf, String msg) {
// disable this code for the moment because i think it
// looks ugly (on the router console)
if (true) {
//if (true) {
buf.append(msg);
return;
}
//}
/******
if (msg.length() < MAX_MSG_LENGTH) {
buf.append(msg);
return;
@ -810,9 +811,11 @@ public class Router {
newline = msg.indexOf('\n');
len = msg.length();
}
******/
}
/** main-ish method for testing appendLogMessage */
/******
private static final void testAppendLog() {
StringBuilder buf = new StringBuilder(1024);
Router.appendLogMessage(buf, "hi\nhow are you\nh0h0h0");
@ -846,6 +849,7 @@ public class Router {
System.out.println("line: [" + buf.toString() + "]");
buf.setLength(0);
}
******/
public static final int EXIT_GRACEFUL = 2;
public static final int EXIT_HARD = 3;

View File

@ -6,7 +6,6 @@ import java.util.Properties;
import net.i2p.I2PAppContext;
import net.i2p.data.Hash;
import net.i2p.router.admin.AdminManager;
import net.i2p.router.client.ClientManagerFacadeImpl;
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
import net.i2p.router.peermanager.Calculator;
@ -35,7 +34,6 @@ import net.i2p.util.KeyRing;
*/
public class RouterContext extends I2PAppContext {
private Router _router;
private AdminManager _adminManager;
private ClientManagerFacade _clientManagerFacade;
private ClientMessagePool _clientMessagePool;
private JobQueue _jobQueue;
@ -91,7 +89,6 @@ public class RouterContext extends I2PAppContext {
return envProps;
}
public void initAll() {
//_adminManager = new AdminManager(this);
if ("false".equals(getProperty("i2p.dummyClientFacade", "false")))
_clientManagerFacade = new ClientManagerFacadeImpl(this);
else
@ -149,11 +146,6 @@ public class RouterContext extends I2PAppContext {
/** convenience method for querying the router's ident */
public Hash routerHash() { return _router.getRouterInfo().getIdentity().getHash(); }
/**
* Controls a basic admin interface
*
*/
public AdminManager adminManager() { return _adminManager; }
/**
* How are we coordinating clients for the router?
*/

View File

@ -65,7 +65,7 @@ public class Shitlist {
_toUnshitlist = new ArrayList(4);
getTiming().setStartAfter(ctx.clock().now() + SHITLIST_CLEANER_START_DELAY);
}
public String getName() { return "Cleanup shitlist"; }
public String getName() { return "Expire banned peers"; }
public void runJob() {
_toUnshitlist.clear();
long now = getContext().clock().now();
@ -253,7 +253,7 @@ public class Shitlist {
public void renderStatusHTML(Writer out) throws IOException {
StringBuilder buf = new StringBuilder(1024);
buf.append("<h2>Shitlist</h2>");
buf.append("<h2>Banned Peers</h2>");
Map<Hash, Entry> entries = new TreeMap(new HashComparator());
entries.putAll(_entries);
@ -273,7 +273,7 @@ public class Shitlist {
buf.append("<br />\n");
buf.append(entry.cause);
}
buf.append(" (<a href=\"configpeer.jsp?peer=").append(key.toBase64()).append("#unsh\">unshitlist now</a>)");
buf.append(" (<a href=\"configpeer.jsp?peer=").append(key.toBase64()).append("#unsh\">unban now</a>)");
buf.append("</li>\n");
}
buf.append("</ul>\n");

View File

@ -121,7 +121,9 @@ public class StatisticsManager implements Service {
//includeRate("transport.sendProcessingTime", stats, new long[] { 60*60*1000 });
//includeRate("jobQueue.jobRunSlow", stats, new long[] { 10*60*1000l, 60*60*1000l });
//includeRate("crypto.elGamal.encrypt", stats, new long[] { 60*60*1000 });
includeRate("tunnel.participatingTunnels", stats, new long[] { 60*60*1000 });
// total event count can be used to track uptime
boolean hideTotals = ! RouterVersion.VERSION.equals("0.7.6");
includeRate("tunnel.participatingTunnels", stats, new long[] { 60*60*1000 }, hideTotals);
//includeRate("tunnel.testSuccessTime", stats, new long[] { 10*60*1000l });
//includeRate("client.sendAckTime", stats, new long[] { 60*60*1000 }, true);
//includeRate("udp.sendConfirmTime", stats, new long[] { 10*60*1000 });

View File

@ -138,7 +138,7 @@ class ProfileOrganizerRenderer {
}
buf.append("</td><td align=\"right\">").append(num(prof.getIntegrationValue()));
buf.append("</td><td align=\"center\">");
if (_context.shitlist().isShitlisted(peer)) buf.append("Shitlist");
if (_context.shitlist().isShitlisted(peer)) buf.append("Banned");
if (prof.getIsFailing()) buf.append(" Failing");
if (_context.commSystem().wasUnreachable(peer)) buf.append(" Unreachable");
Rate failed = prof.getTunnelHistory().getFailedRate().getRate(30*60*1000);