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

robert at freenetproject.org robert at freenetproject.org
Wed Jan 9 16:27:26 UTC 2008


Author: robert
Date: 2008-01-09 16:27:26 +0000 (Wed, 09 Jan 2008)
New Revision: 16982

Modified:
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
don't send responses after source has forgotten about it (instead of r16886)
presumably will cut down on unclaimedFIFO messages


Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java	2008-01-09 16:15:47 UTC (rev 16981)
+++ trunk/freenet/src/freenet/node/RequestHandler.java	2008-01-09 16:27:26 UTC (rev 16982)
@@ -152,11 +152,19 @@
         boolean shouldHaveStartedTransfer = false;
         boolean sentRejectedOverload = false;
 		
+		//If we cannot respond before this time, the 'source' node has already fatally timed out (and we need not return packets which will not be claimed)
+		long responseDeadline = System.currentTimeMillis() + RequestSender.FETCH_TIMEOUT + source.getProbableSendQueueTime();
         short waitStatus = 0;
         
         while(true) {
             
         	waitStatus = rs.waitUntilStatusChange(waitStatus);
+			
+			if (System.currentTimeMillis() > responseDeadline) {
+				applyByteCounts();
+				return;
+			}
+			
             if((waitStatus & RequestSender.WAIT_REJECTED_OVERLOAD) != 0 && !sentRejectedOverload) {
             	// Forward RejectedOverload
 				//Note: This message is only decernable from the terminal messages by the IS_LOCAL flag being false. (!IS_LOCAL)->!Terminal




More information about the cvs mailing list