From 0c55de7fcc3241caf2a0fdf7187c865b94349e5b Mon Sep 17 00:00:00 2001
From: zzz
Date: Mon, 5 Mar 2012 00:36:54 +0000
Subject: [PATCH 1/6] * viewstat.jsp: Send Connection: Close to work around
Jetty bug http://jira.codehaus.org/browse/JETTY-1346
---
apps/routerconsole/jsp/viewstat.jsp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/apps/routerconsole/jsp/viewstat.jsp b/apps/routerconsole/jsp/viewstat.jsp
index af7b2944c..0a716cb9d 100644
--- a/apps/routerconsole/jsp/viewstat.jsp
+++ b/apps/routerconsole/jsp/viewstat.jsp
@@ -44,6 +44,10 @@ if ( !rendered && ((rs != null) || fakeBw) ) {
response.setContentType("image/png");
// very brief 45 sec expire
response.setDateHeader("Expires", net.i2p.I2PAppContext.getGlobalContext().clock().now() + (45*1000));
+ // http://jira.codehaus.org/browse/JETTY-1346
+ // This doesn't actually appear in the response, but it fixes the problem,
+ // so Jetty must look for this header and close the connection.
+ response.setHeader("Connection", "Close");
int width = -1;
int height = -1;
int periodCount = -1;
From 57f4ede1029a28f4d67b1c8a03f3f666aa1165ae Mon Sep 17 00:00:00 2001
From: zzz
Date: Mon, 5 Mar 2012 00:37:20 +0000
Subject: [PATCH 2/6] increase floodfills to 250
---
.../net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
index 55829cb5d..314f8253b 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
@@ -26,7 +26,7 @@ class FloodfillMonitorJob extends JobImpl {
private static final int REQUEUE_DELAY = 60*60*1000;
private static final long MIN_UPTIME = 2*60*60*1000;
private static final long MIN_CHANGE_DELAY = 6*60*60*1000;
- private static final int MIN_FF = 200;
+ private static final int MIN_FF = 250;
private static final int MAX_FF = 999999;
private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
From e99b2064e78b3b7d3aeb67e4bad13d698fb748f7 Mon Sep 17 00:00:00 2001
From: zzz
Date: Mon, 5 Mar 2012 00:37:48 +0000
Subject: [PATCH 3/6] log tweaks
---
.../router/transport/udp/UDPTransport.java | 30 ++++++++++---------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 11b3e29d0..e049c0a91 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -477,7 +477,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
boolean explicitSpecified = explicitAddressSpecified();
boolean inboundRecent = _lastInboundReceivedOn + ALLOW_IP_CHANGE_INTERVAL > System.currentTimeMillis();
if (_log.shouldLog(Log.INFO))
- _log.info("External address received: " + RemoteHostId.toString(ourIP) + ":" + ourPort + " from "
+ _log.info("External address received: " + Addresses.toString(ourIP, ourPort) + " from "
+ from.toBase64() + ", isValid? " + isValid + ", explicitSpecified? " + explicitSpecified
+ ", receivedInboundRecent? " + inboundRecent + " status " + _reachabilityStatus);
@@ -491,7 +491,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
// ignore them
if (_log.shouldLog(Log.ERROR))
_log.error("The router " + from.toBase64() + " told us we have an invalid IP - "
- + RemoteHostId.toString(ourIP) + " port " + ourPort + ". Lets throw tomatoes at them");
+ + Addresses.toString(ourIP, ourPort) + ". Lets throw tomatoes at them");
markUnreachable(from);
//_context.shitlist().shitlistRouter(from, "They said we had an invalid IP", STYLE);
return;
@@ -506,13 +506,13 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
_lastFrom = from;
_lastOurIP = ourIP;
_lastOurPort = ourPort;
- if (_log.shouldLog(Log.WARN))
- _log.warn("The router " + from.toBase64() + " told us we have a new IP - "
- + RemoteHostId.toString(ourIP) + " port " + ourPort + ". Wait until somebody else tells us the same thing.");
+ if (_log.shouldLog(Log.INFO))
+ _log.info("The router " + from.toBase64() + " told us we have a new IP - "
+ + Addresses.toString(ourIP, ourPort) + ". Wait until somebody else tells us the same thing.");
} else {
- if (_log.shouldLog(Log.WARN))
- _log.warn(from.toBase64() + " and " + _lastFrom.toBase64() + " agree we have a new IP - "
- + RemoteHostId.toString(ourIP) + " port " + ourPort + ". Changing address.");
+ if (_log.shouldLog(Log.INFO))
+ _log.info(from.toBase64() + " and " + _lastFrom.toBase64() + " agree we have a new IP - "
+ + Addresses.toString(ourIP, ourPort) + ". Changing address.");
_lastFrom = from;
_lastOurIP = ourIP;
_lastOurPort = ourPort;
@@ -530,11 +530,11 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
boolean updated = false;
boolean fireTest = false;
- if (_log.shouldLog(Log.WARN))
- _log.warn("Change address? status = " + _reachabilityStatus +
+ if (_log.shouldLog(Log.INFO))
+ _log.info("Change address? status = " + _reachabilityStatus +
" diff = " + (_context.clock().now() - _reachabilityStatusLastUpdated) +
" old = " + _externalListenHost + ':' + _externalListenPort +
- " new = " + RemoteHostId.toString(ourIP) + ':' + ourPort);
+ " new = " + Addresses.toString(ourIP, ourPort));
synchronized (this) {
if ( (_externalListenHost == null) ||
@@ -544,13 +544,14 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
// (_externalListenHost == null) || (_externalListenPort <= 0) ||
// (_context.clock().now() - _reachabilityStatusLastUpdated > 2*TEST_FREQUENCY) ) {
// they told us something different and our tests are either old or failing
- if (_log.shouldLog(Log.WARN))
- _log.warn("Trying to change our external address...");
try {
_externalListenHost = InetAddress.getByAddress(ourIP);
// fixed port defaults to true so we never do this
if (ourPort >= MIN_EXTERNAL_PORT && !fixedPort)
_externalListenPort = ourPort;
+ if (_log.shouldLog(Log.WARN))
+ _log.warn("Trying to change our external address to " +
+ Addresses.toString(ourIP, _externalListenPort));
if (_externalListenPort > 0) {
rebuildExternalAddress();
replaceAddress(_externalAddress);
@@ -559,7 +560,8 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
} catch (UnknownHostException uhe) {
_externalListenHost = null;
if (_log.shouldLog(Log.WARN))
- _log.warn("Error trying to change our external address", uhe);
+ _log.warn("Error trying to change our external address to " +
+ Addresses.toString(ourIP, ourPort), uhe);
}
//} else {
// // they told us something different, but our tests are recent and positive,
From d85ae48f4e1f93b3818fad9c604f34de7cb79088 Mon Sep 17 00:00:00 2001
From: zzz
Date: Mon, 5 Mar 2012 00:40:41 +0000
Subject: [PATCH 4/6] specify action so that the user will go to the top of the
page to see the result even if an anchor was specified
---
apps/routerconsole/jsp/configclients.jsp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp
index 6a700deda..9034d909e 100644
--- a/apps/routerconsole/jsp/configclients.jsp
+++ b/apps/routerconsole/jsp/configclients.jsp
@@ -101,7 +101,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<%=intl._("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.")%>