From 0f1a4ad4cd30a38e9f7481032456ef2102e37edc Mon Sep 17 00:00:00 2001
From: zzz
Date: Fri, 10 Jul 2009 13:38:09 +0000
Subject: [PATCH 01/10] * Console: Force IE to the classic theme
---
.../java/src/net/i2p/router/web/CSSHelper.java | 13 +++++++++----
apps/routerconsole/jsp/css.jsp | 2 +-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
index 643c8c45c..6b3916883 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
@@ -9,12 +9,17 @@ public class CSSHelper extends HelperBase {
public static final String PROP_THEME_NAME = "routerconsole.theme";
private static final String BASE = "/themes/console/";
+ private static final String FORCE = "classic";
- public String getTheme() {
+ public String getTheme(String userAgent) {
String url = BASE;
- String theme = _context.getProperty(PROP_THEME_NAME);
- if (theme != null)
- url += theme + "/";
+ if (userAgent != null && userAgent.contains("MSIE")) {
+ url += FORCE + "/";
+ } else {
+ String theme = _context.getProperty(PROP_THEME_NAME);
+ if (theme != null)
+ url += theme + "/";
+ }
return url;
}
}
diff --git a/apps/routerconsole/jsp/css.jsp b/apps/routerconsole/jsp/css.jsp
index 1e47f34d4..60db06835 100644
--- a/apps/routerconsole/jsp/css.jsp
+++ b/apps/routerconsole/jsp/css.jsp
@@ -17,4 +17,4 @@
%>
" />
-
+console.css" rel="stylesheet" type="text/css" />
From e5139113b15cc8b6e0c23cfcc1e2b04c1960a012 Mon Sep 17 00:00:00 2001
From: zzz
Date: Fri, 10 Jul 2009 13:41:29 +0000
Subject: [PATCH 02/10] * Build Handler: Drop rather than reject requests
when near conn limits and the next hop is not connected, to reduce
connection congestion
---
.../net/i2p/router/tunnel/pool/BuildHandler.java | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
index 0583c73b1..1d0f4f54c 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
@@ -65,6 +65,7 @@ class BuildHandler {
_context.statManager().createRateStat("tunnel.rejectOverloaded", "How long we had to wait before processing the request (when it was rejected)", "Tunnels", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("tunnel.acceptLoad", "Delay before processing the accepted request", "Tunnels", new long[] { 60*1000, 10*60*1000 });
+ _context.statManager().createRateStat("tunnel.dropConnLimits", "Drop instead of reject due to conn limits", "Tunnels", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("tunnel.dropLoad", "How long we had to wait before finally giving up on an inbound request (period is queue count)?", "Tunnels", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("tunnel.dropLoadDelay", "How long we had to wait before finally giving up on an inbound request?", "Tunnels", new long[] { 60*1000, 10*60*1000 });
_context.statManager().createRateStat("tunnel.dropLoadBacklog", "How many requests were pending when they were so lagged that we had to drop a new inbound request??", "Tunnels", new long[] { 60*1000, 10*60*1000 });
@@ -466,7 +467,6 @@ class BuildHandler {
return 0;
}
- private static final String PROP_REJECT_NONPARTICIPANT = "router.participantOnly";
private void handleReq(RouterInfo nextPeerInfo, BuildMessageState state, BuildRequestRecord req, Hash nextPeer) {
long ourId = req.readReceiveTunnelId();
long nextId = req.readNextTunnelId();
@@ -569,6 +569,17 @@ class BuildHandler {
(isOutEnd ? "outbound endpoint" : isInGW ? "inbound gw" : "participant"));
}
+ // Connection congestion control:
+ // If we rejected the request, are near our conn limits, and aren't connected to the next hop,
+ // just drop it.
+ if (response != 0 &&
+ (! _context.routerHash().equals(nextPeer)) &&
+ (! _context.commSystem().haveOutboundCapacity()) &&
+ (! _context.commSystem().isEstablished(nextPeer))) {
+ _context.statManager().addRateData("tunnel.dropConnLimits", 1, 0);
+ return;
+ }
+
BuildResponseRecord resp = new BuildResponseRecord();
byte reply[] = resp.create(_context, response, req.readReplyKey(), req.readReplyIV(), state.msg.getUniqueId());
for (int j = 0; j < TunnelBuildMessage.RECORD_COUNT; j++) {
From 0b590763f392605f260f36fc6be64873f58b6391 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 17:00:46 +0000
Subject: [PATCH 03/10] * Transports: - Move from a single connection
limit threshold (80%) to two (75% and 87%), and only start rejecting
tunnels at the higher threshold, to increase build success -
Move some limit methods from the transports to TransportImpl - Add
limit methods with a threshold argument
---
.../src/net/i2p/router/CommSystemFacade.java | 4 ++--
.../transport/CommSystemFacadeImpl.java | 4 ++--
.../net/i2p/router/transport/Transport.java | 3 ++-
.../i2p/router/transport/TransportImpl.java | 19 +++++++++++++++---
.../router/transport/TransportManager.java | 15 +++++++++-----
.../router/transport/ntcp/NTCPTransport.java | 9 ---------
.../router/transport/udp/UDPTransport.java | 20 +++++++------------
.../i2p/router/tunnel/TunnelDispatcher.java | 6 ++++++
.../i2p/router/tunnel/pool/BuildHandler.java | 6 +++---
9 files changed, 48 insertions(+), 38 deletions(-)
diff --git a/router/java/src/net/i2p/router/CommSystemFacade.java b/router/java/src/net/i2p/router/CommSystemFacade.java
index c26d9efbf..e8a45724e 100644
--- a/router/java/src/net/i2p/router/CommSystemFacade.java
+++ b/router/java/src/net/i2p/router/CommSystemFacade.java
@@ -34,8 +34,8 @@ public abstract class CommSystemFacade implements Service {
public int countActivePeers() { return 0; }
public int countActiveSendPeers() { return 0; }
- public boolean haveInboundCapacity() { return true; }
- public boolean haveOutboundCapacity() { return true; }
+ public boolean haveInboundCapacity(int pct) { return true; }
+ public boolean haveOutboundCapacity(int pct) { return true; }
public boolean haveHighOutboundCapacity() { return true; }
public List getMostRecentErrorMessages() { return Collections.EMPTY_LIST; }
diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
index a426c4530..6c9d08e2c 100644
--- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
+++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
@@ -70,9 +70,9 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
@Override
public int countActiveSendPeers() { return (_manager == null ? 0 : _manager.countActiveSendPeers()); }
@Override
- public boolean haveInboundCapacity() { return (_manager == null ? false : _manager.haveInboundCapacity()); }
+ public boolean haveInboundCapacity(int pct) { return (_manager == null ? false : _manager.haveInboundCapacity(pct)); }
@Override
- public boolean haveOutboundCapacity() { return (_manager == null ? false : _manager.haveOutboundCapacity()); }
+ public boolean haveOutboundCapacity(int pct) { return (_manager == null ? false : _manager.haveOutboundCapacity(pct)); }
@Override
public boolean haveHighOutboundCapacity() { return (_manager == null ? false : _manager.haveHighOutboundCapacity()); }
diff --git a/router/java/src/net/i2p/router/transport/Transport.java b/router/java/src/net/i2p/router/transport/Transport.java
index d0ec7267b..339c33f7b 100644
--- a/router/java/src/net/i2p/router/transport/Transport.java
+++ b/router/java/src/net/i2p/router/transport/Transport.java
@@ -44,10 +44,11 @@ public interface Transport {
public void setListener(TransportEventListener listener);
public String getStyle();
+ public int countPeers();
public int countActivePeers();
public int countActiveSendPeers();
public boolean haveCapacity();
- public boolean haveHighCapacity();
+ public boolean haveCapacity(int pct);
public Vector getClockSkews();
public List getMostRecentErrorMessages();
diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 7f27766a7..1923e1ec7 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -78,8 +78,13 @@ public abstract class TransportImpl implements Transport {
}
/**
- * How many peers can we talk to right now?
- *
+ * How many peers are we connected to?
+ * For NTCP, this is the same as active,
+ * but SSU actually looks at idle time for countActivePeers()
+ */
+ public int countPeers() { return countActivePeers(); }
+ /**
+ * How many peers active in the last few minutes?
*/
public int countActivePeers() { return 0; }
/**
@@ -112,10 +117,18 @@ public abstract class TransportImpl implements Transport {
return _context.getProperty("i2np." + style + ".maxConnections", def);
}
+ private static final int DEFAULT_CAPACITY_PCT = 75;
/**
* Can we initiate or accept a connection to another peer, saving some margin
*/
- public boolean haveCapacity() { return true; }
+ public boolean haveCapacity() {
+ return haveCapacity(DEFAULT_CAPACITY_PCT);
+ }
+
+ /** @param pct are we under x% 0-100 */
+ public boolean haveCapacity(int pct) {
+ return countPeers() < getMaxConnections() * pct / 100;
+ }
/**
* Return our peer clock skews on a transport.
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index d432f80fd..f9d495cea 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -206,15 +206,18 @@ public class TransportManager implements TransportEventListener {
/**
* Is at least one transport below its outbound connection limit + some margin
* Use for throttling in the router.
+ *
+ * @param pct percent of limit 0-100
*/
- public boolean haveOutboundCapacity() {
+ public boolean haveOutboundCapacity(int pct) {
for (int i = 0; i < _transports.size(); i++) {
- if (((Transport)_transports.get(i)).haveCapacity())
+ if (((Transport)_transports.get(i)).haveCapacity(pct))
return true;
}
return false;
}
+ private static final int HIGH_CAPACITY_PCT = 50;
/**
* Are all transports well below their outbound connection limit
* Use for throttling in the router.
@@ -223,7 +226,7 @@ public class TransportManager implements TransportEventListener {
if (_transports.size() <= 0)
return false;
for (int i = 0; i < _transports.size(); i++) {
- if (!((Transport)_transports.get(i)).haveHighCapacity())
+ if (!((Transport)_transports.get(i)).haveCapacity(HIGH_CAPACITY_PCT))
return false;
}
return true;
@@ -232,10 +235,12 @@ public class TransportManager implements TransportEventListener {
/**
* Is at least one transport below its inbound connection limit + some margin
* Use for throttling in the router.
+ *
+ * @param pct percent of limit 0-100
*/
- public boolean haveInboundCapacity() {
+ public boolean haveInboundCapacity(int pct) {
for (int i = 0; i < _transports.size(); i++) {
- if (_transports.get(i).getCurrentAddress() != null && _transports.get(i).haveCapacity())
+ if (_transports.get(i).getCurrentAddress() != null && _transports.get(i).haveCapacity(pct))
return true;
}
return false;
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index 5fa10b310..bd300112b 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -321,15 +321,6 @@ public class NTCPTransport extends TransportImpl {
return countActivePeers() < getMaxConnections();
}
- @Override
- public boolean haveCapacity() {
- return countActivePeers() < getMaxConnections() * 4 / 5;
- }
-
- public boolean haveHighCapacity() {
- return countActivePeers() < getMaxConnections() / 2;
- }
-
/** queue up afterSend call, which can take some time w/ jobs, etc */
void sendComplete(OutNetMessage msg) { _finisher.add(msg); }
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 47edd62c3..97d1e3ba4 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -1334,6 +1334,13 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
super.afterSend(m, true);
}
+ @Override
+ public int countPeers() {
+ synchronized (_peersByIdent) {
+ return _peersByIdent.size();
+ }
+ }
+
@Override
public int countActivePeers() {
long now = _context.clock().now();
@@ -1379,19 +1386,6 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
}
}
- @Override
- public boolean haveCapacity() {
- synchronized (_peersByIdent) {
- return _peersByIdent.size() < getMaxConnections() * 4 / 5;
- }
- }
-
- public boolean haveHighCapacity() {
- synchronized (_peersByIdent) {
- return _peersByIdent.size() < getMaxConnections() / 2;
- }
- }
-
/**
* Return our peer clock skews on this transport.
* Vector composed of Long, each element representing a peer skew in seconds.
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
index de29a9540..3da777076 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
@@ -253,6 +253,12 @@ public class TunnelDispatcher implements Service {
return _participatingConfig.size();
}
+ /******* may be used for congestion control later...
+ public int getParticipatingInboundGatewayCount() {
+ return _inboundGateways.size();
+ }
+ *******/
+
/** what is the date/time on which the last non-locally-created tunnel expires? */
public long getLastParticipatingExpiration() { return _lastParticipatingExpiration; }
diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
index 1d0f4f54c..ae17622e8 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
@@ -510,8 +510,8 @@ class BuildHandler {
* reject this request.
*/
if (response == 0 &&
- ((isInGW && ! _context.commSystem().haveInboundCapacity()) ||
- (isOutEnd && ! _context.commSystem().haveOutboundCapacity()))) {
+ ((isInGW && ! _context.commSystem().haveInboundCapacity(87)) ||
+ (isOutEnd && ! _context.commSystem().haveOutboundCapacity(87)))) {
_context.throttle().setTunnelStatus("Rejecting tunnels: Connection limit");
response = TunnelHistory.TUNNEL_REJECT_BANDWIDTH;
}
@@ -574,7 +574,7 @@ class BuildHandler {
// just drop it.
if (response != 0 &&
(! _context.routerHash().equals(nextPeer)) &&
- (! _context.commSystem().haveOutboundCapacity()) &&
+ (! _context.commSystem().haveOutboundCapacity(75)) &&
(! _context.commSystem().isEstablished(nextPeer))) {
_context.statManager().addRateData("tunnel.dropConnLimits", 1, 0);
return;
From b6e24b5094578f45a7b85239f18c885648eda4b4 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 17:59:32 +0000
Subject: [PATCH 04/10] * I2PTunnel: - Make reduce-on-idle the
default for all the shared clients for new installs (15m)
---
installer/resources/i2ptunnel.config | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/installer/resources/i2ptunnel.config b/installer/resources/i2ptunnel.config
index 2f811ebde..f1fe7cda2 100644
--- a/installer/resources/i2ptunnel.config
+++ b/installer/resources/i2ptunnel.config
@@ -10,6 +10,9 @@ tunnel.0.i2cpHost=127.0.0.1
tunnel.0.i2cpPort=7654
tunnel.0.option.inbound.nickname=shared clients
tunnel.0.option.outbound.nickname=shared clients
+tunnel.0.option.i2cp.reduceIdleTime=900000
+tunnel.0.option.i2cp.reduceOnIdle=true
+tunnel.0.option.i2cp.reduceQuantity=1
tunnel.0.option.i2p.streaming.connectDelay=1000
tunnel.0.startOnLoad=true
@@ -25,6 +28,9 @@ tunnel.1.i2cpHost=127.0.0.1
tunnel.1.i2cpPort=7654
tunnel.1.option.inbound.nickname=shared clients
tunnel.1.option.outbound.nickname=shared clients
+tunnel.1.option.i2cp.reduceIdleTime=900000
+tunnel.1.option.i2cp.reduceOnIdle=true
+tunnel.1.option.i2cp.reduceQuantity=1
tunnel.1.option.i2p.streaming.connectDelay=1000
tunnel.1.option.i2p.streaming.maxWindowSize=16
tunnel.1.startOnLoad=true
@@ -41,6 +47,9 @@ tunnel.2.i2cpHost=127.0.0.1
tunnel.2.i2cpPort=7654
tunnel.2.option.inbound.nickname=shared clients
tunnel.2.option.outbound.nickname=shared clients
+tunnel.2.option.i2cp.reduceIdleTime=900000
+tunnel.2.option.i2cp.reduceOnIdle=true
+tunnel.2.option.i2cp.reduceQuantity=1
tunnel.2.startOnLoad=false
# local eepserver
@@ -70,6 +79,9 @@ tunnel.4.listenPort=7659
tunnel.4.name=smtp.postman.i2p
tunnel.4.option.inbound.nickname=shared clients
tunnel.4.option.outbound.nickname=shared clients
+tunnel.4.option.i2cp.reduceIdleTime=900000
+tunnel.4.option.i2cp.reduceOnIdle=true
+tunnel.4.option.i2cp.reduceQuantity=1
tunnel.4.option.i2p.streaming.connectDelay=1000
tunnel.4.startOnLoad=true
tunnel.4.targetDestination=smtp.postman.i2p
@@ -85,6 +97,9 @@ tunnel.5.interface=127.0.0.1
tunnel.5.listenPort=7660
tunnel.5.option.inbound.nickname=shared clients
tunnel.5.option.outbound.nickname=shared clients
+tunnel.5.option.i2cp.reduceIdleTime=900000
+tunnel.5.option.i2cp.reduceOnIdle=true
+tunnel.5.option.i2cp.reduceQuantity=1
tunnel.5.option.i2p.streaming.connectDelay=1000
tunnel.5.startOnLoad=true
tunnel.5.targetDestination=pop.postman.i2p
From cf3efc11ba1ad370f5a8157d9ae21b6af96c1542 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 18:04:08 +0000
Subject: [PATCH 05/10] * Profile Organizer: - Allow NTCP-only peers
in inbound tunnels
---
.../src/net/i2p/router/peermanager/ProfileOrganizer.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
index 90792571e..504c56703 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
@@ -541,9 +541,11 @@ public class ProfileOrganizer {
l.add(peer);
else {
RouterAddress ra = info.getTargetAddress("SSU");
- // Definitely don't want peers with no SSU address at all
+ // peers with no SSU address at all are fine.
+ // as long as they have NTCP
if (ra == null) {
- l.add(peer);
+ if (info.getTargetAddress("NTCP") == null)
+ l.add(peer);
continue;
}
// This is the quick way of doing UDPAddress.getIntroducerCount() > 0
From 461af7d0a29d8586a5a4d7025f3fca2998088266 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 18:47:11 +0000
Subject: [PATCH 06/10] Increase SSU conn limits a little more
---
router/java/src/net/i2p/router/transport/TransportImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 1923e1ec7..29318bb60 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -113,7 +113,7 @@ public abstract class TransportImpl implements Transport {
}
// increase limit for SSU, for now
if (style.equals("udp"))
- def = def * 4 / 3;
+ def = def * 3 / 2;
return _context.getProperty("i2np." + style + ".maxConnections", def);
}
From 1fb52386422dba10e5e9484ba8db54b02b266132 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 18:49:54 +0000
Subject: [PATCH 07/10] * I2PSnark: - Bring back details links for
Postman2 B64 torrents
---
.../i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index ec5e2b8db..85497d4f7 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -512,7 +512,8 @@ public class I2PSnarkServlet extends HttpServlet {
Map.Entry entry = (Map.Entry)iter.next();
String name = (String)entry.getKey();
String baseURL = (String)entry.getValue();
- if (!baseURL.startsWith(announce))
+ if (!(baseURL.startsWith(announce) || // vvv hack for non-b64 announce in list vvv
+ (announce.startsWith("http://lnQ6yoBT") && baseURL.startsWith("http://tracker2.postman.i2p/"))))
continue;
int e = baseURL.indexOf('=');
if (e < 0)
From 03790e3e4d739ef085bb44ab97d864fdd561fdf2 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 19:21:24 +0000
Subject: [PATCH 08/10] Remove notes about editing readme*.html, since we're
probably going to start including them in the updates
---
readme.html | 4 +---
readme_de.html | 2 --
readme_fr.html | 2 --
readme_nl.html | 2 --
readme_sv.html | 3 ---
readme_zh.html | 2 --
6 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/readme.html b/readme.html
index 3b95e801a..4026bc867 100644
--- a/readme.html
+++ b/readme.html
@@ -75,6 +75,4 @@ You may also want to review the information on the
I2P website, post up messages to the
I2P discussion forum, or swing by #i2p or
#i2p-chat on IRC at irc.freenode.net, irc.postman.i2p or irc.freshcoffee.i2p (they're linked together).
-
-
As a note, you can change this page by editing the file "docs/readme.html"
-
\ No newline at end of file
+
diff --git a/readme_de.html b/readme_de.html
index 60d8aeabe..885ac923a 100644
--- a/readme_de.html
+++ b/readme_de.html
@@ -72,5 +72,3 @@
chatten auf #i2p or #i2p-chat beim IRC auf
irc.freenode.net, irc.postman.i2p
oder irc.freshcoffee.i2p (die verbunden sind).
-
-
Übrigens, diese Seite kannst Du ändern indem Du "docs/readme_de.html" editierst
Soyez patient - i2p peut s'avérer lent à démarrer la première fois car il recherche des pairs. Si, après 30 minutes, votre Actives: connecté/récent compte moins de 10 pairs connectés, vous devez ouvrir le port 8887 sur votre pare-feu pour avoir une meilleure connection. Si vous ne pouvez accéder à aucun eepsite (même www.i2p2.i2p), soyez sûr que votre navigateur utilise bien le proxy localhost sur le port 4444. Vous pouvez aussi faire part de votre démarche sur le site web I2P, poster des message sur le forum de discussion, ou passer par #i2p ou #i2p-chat sur IRC sur le serveur irc.freenode.net, irc.postman.i2p ou irc.freshcoffee.i2p (ils sont liés).
-
-
Comme vous pouvez le remarquer, il suffit d'éditer la page "docs/readme.html" pour changer la page d'acceuil
diff --git a/readme_nl.html b/readme_nl.html
index 7ff79e89d..296e2c496 100644
--- a/readme_nl.html
+++ b/readme_nl.html
@@ -56,5 +56,3 @@ Je zou best ook de informatie controleren op de
I2P website, of plaats een bericht op het
I2P discussie forum, of kom langs bij #i2p of
#i2p-chat op IRC bij de kanalen irc.freenode.net, irc.postman.i2p of irc.freshcoffee.i2p (ze linken allemaal door naar elkaar).
-
-
Als extra informatie, je kan deze pagina wijzigen door het bestand "docs/readme_nl.html" aan te passen.
diff --git a/readme_sv.html b/readme_sv.html
index ef68ea14e..7d738aa12 100644
--- a/readme_sv.html
+++ b/readme_sv.html
@@ -98,6 +98,3 @@ förbi #i2p eller
#i2p-chat på IRC på irc.freenode.net, irc.postman.i2p
eller irc.freshcoffee.i2p (de är alla sammankopplade).
-
-
Du kan förändra denhär sidan genom att ändra i filen
-"docs/readme_sv.html"
From 21b03e8e8aa14c4210704f733c540f8291a2f06b Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 19:43:58 +0000
Subject: [PATCH 09/10] fix comment
---
.../src/net/i2p/router/networkdb/reseed/ReseedChecker.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java b/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
index aa38be5e7..dd11c4ae2 100644
--- a/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
+++ b/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
@@ -15,8 +15,7 @@ import net.i2p.util.Log;
*
* Also, as this is now called from PersistentDataStore, not from the
* routerconsole, we can get started as soon as the netdb has read
- * the netDb/ directory, not when the console starts,
-router/java/src/net/i2p/router/networkdb/eseed/ReseedChecker.java
+ * the netDb/ directory, not when the console starts.
*/
public class ReseedChecker {
From 1a247d8d3a972a25bfcb80d7497d1a0a756f3877 Mon Sep 17 00:00:00 2001
From: zzz
Date: Sat, 11 Jul 2009 19:44:25 +0000
Subject: [PATCH 10/10] -6
---
history.txt | 20 +++++++++++++++++++
.../src/net/i2p/router/RouterVersion.java | 2 +-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/history.txt b/history.txt
index ab69419fd..f0d713d48 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,23 @@
+2009-07-11 zzz
+ * Build Handler: Drop rather than reject requests when near
+ conn limits and the next hop is not connected, to reduce
+ connection congestion
+ * Console: Force IE to the classic theme
+ * I2PSnark:
+ - Bring back details links for Postman2 B64 torrents
+ * I2PTunnel:
+ - Make reduce-on-idle the default for all the shared clients
+ for new installs (15m)
+ * Profile Organizer:
+ - Allow NTCP-only peers in inbound tunnels
+ * Transports:
+ - Move from a single connection limit threshold (80%) to
+ two (75% and 87%), and only start rejecting tunnels
+ at the higher threshold, to increase build success
+ - Move some limit methods from the transports to TransportImpl
+ - Add limit methods with a threshold argument
+ - Increase default SSU conn limits a little more
+
2009-07-07 dr|z3d
* Introducing 2 new console themes (light & dark), in addition
to changes to the console navigation; navbar now resides in
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index b54d1de4b..5a4225cae 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
- public final static long BUILD = 5;
+ public final static long BUILD = 6;
/** for example "-test" */
public final static String EXTRA = "";
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;