Author: toad
Date: 2008-09-19 17:54:06 +0000 (Fri, 19 Sep 2008)
New Revision: 22710
Modified:
trunk/freenet/src/freenet/node/Node.java
Log:
Bucket must contain enough space for one maximum size packet.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-09-19 17:53:44 UTC (rev
22709)
+++ trunk/freenet/src/freenet/node/Node.java 2008-09-19 17:54:06 UTC (rev
22710)
@@ -1113,7 +1113,11 @@
// Add them at a rate determined by the obwLimit.
// Maximum forced bytes 80%, in other words, 20% of the
bandwidth is reserved for
// block transfers, so we will use that 20% for block transfers
even if more than 80% of the limit is used for non-limited data (resends etc).
- outputThrottle = new TokenBucket(obwLimit/2,
(1000L*1000L*1000L) / obwLimit, obwLimit/2);
+ int bucketSize = obwLimit/2;
+ // Must have at least space for ONE PACKET.
+ // FIXME: make compatible with alternate transports.
+ bucketSize = Math.max(bucketSize, 2048);
+ outputThrottle = new TokenBucket(bucketSize,
(1000L*1000L*1000L) / obwLimit, obwLimit/2);
nodeConfig.register("inputBandwidthLimit", "-1", sortOrder++,
false, true, "Node.inBWLimit", "Node.inBWLimitLong", new IntCallback() {
@Override