Author: robert
Date: 2008-01-07 18:45:16 +0000 (Mon, 07 Jan 2008)
New Revision: 16957

Modified:
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
send fewer FNPRejectOverloads (only the first is effective)


Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java  2008-01-07 17:49:37 UTC 
(rev 16956)
+++ trunk/freenet/src/freenet/node/RequestHandler.java  2008-01-07 18:45:16 UTC 
(rev 16957)
@@ -146,17 +146,20 @@
         }

         boolean shouldHaveStartedTransfer = false;
-        
+        boolean sentRejectedOverload = false;
+               
         short waitStatus = 0;

         while(true) {

                waitStatus = rs.waitUntilStatusChange(waitStatus);
-            if((waitStatus & RequestSender.WAIT_REJECTED_OVERLOAD) != 0) {
+            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
                Message msg = DMT.createFNPRejectedOverload(uid, false);
                source.sendAsync(msg, null, 0, this);
+                               //If the status changes (e.g. to SUCCESS), 
there is little need to send yet another reject overload.
+                               sentRejectedOverload=true;
             }

             if((waitStatus & RequestSender.WAIT_TRANSFERRING_DATA) != 0) {


Reply via email to