[freenet-cvs] r18353 - trunk/freenet/src/freenet/node

toad at freenetproject.org toad at freenetproject.org
Tue Mar 4 17:16:14 UTC 2008


Author: toad
Date: 2008-03-04 17:16:14 +0000 (Tue, 04 Mar 2008)
New Revision: 18353

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
Fix another cause of forceGrab(negative), and maybe of worse things: we weren't resetting alreadyReportedBytes after sending a packet.
Logging: Detect when forceGrab(negative) is going to happen a bit earlier and log more info.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java	2008-03-04 17:09:13 UTC (rev 18352)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java	2008-03-04 17:16:14 UTC (rev 18353)
@@ -1659,7 +1659,12 @@
 		sock.sendPacket(data, replyTo, pn == null ? crypto.config.alwaysAllowLocalAddresses() : pn.allowLocalAddresses());
 		if(pn != null)
 			pn.reportOutgoingPacket(data, 0, data.length, System.currentTimeMillis());
-		node.outputThrottle.forceGrab(data.length - alreadyReportedBytes);
+		int reportableBytes = data.length - alreadyReportedBytes;
+		if(reportableBytes < 0) {
+			Logger.error(this, "alreadyReportedBytes ("+alreadyReportedBytes+")> data.length ("+data.length+")");
+			reportableBytes = 0;
+		}
+		node.outputThrottle.forceGrab(reportableBytes);
 	}
 
 	/**
@@ -2124,6 +2129,7 @@
 						try {
 							// FIXME regenerate callbacks and priority!
 							innerProcessOutgoing(messageData, lastIndex, i-lastIndex, length, pn, neverWaitForPacketNumber, callbacks, alreadyReportedBytes, priority);
+							alreadyReportedBytes = 0;
 							for(int j=lastIndex;j<i;j++) {
 								MessageItem mi = newMsgs[j];
 								mi_name = (mi.msg == null ? "(not a Message)" : mi.msg.getSpec().getName());




More information about the cvs mailing list