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


Reply via email to