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

robert at freenetproject.org robert at freenetproject.org
Mon Jan 7 17:49:37 UTC 2008


Author: robert
Date: 2008-01-07 17:49:37 +0000 (Mon, 07 Jan 2008)
New Revision: 16956

Modified:
   trunk/freenet/src/freenet/node/RequestHandler.java
   trunk/freenet/src/freenet/node/RequestSender.java
Log:
revert 16905 and add comment


Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java	2008-01-07 12:36:46 UTC (rev 16955)
+++ trunk/freenet/src/freenet/node/RequestHandler.java	2008-01-07 17:49:37 UTC (rev 16956)
@@ -154,6 +154,7 @@
         	waitStatus = rs.waitUntilStatusChange(waitStatus);
             if((waitStatus & RequestSender.WAIT_REJECTED_OVERLOAD) != 0) {
             	// 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);
             }

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java	2008-01-07 12:36:46 UTC (rev 16955)
+++ trunk/freenet/src/freenet/node/RequestSender.java	2008-01-07 17:49:37 UTC (rev 16956)
@@ -396,20 +396,17 @@
             	if(msg.getSpec() == DMT.FNPRejectedOverload) {
 					// Non-fatal - probably still have time left
 					forwardRejectedOverload();
+					rejectOverloads++;
 					if (msg.getBoolean(DMT.IS_LOCAL)) {
+						//NB: IS_LOCAL means it's terminal. not(IS_LOCAL) implies that the rejection message was forwarded from a downstream node.
+						//"Local" from our peers perspective, this has nothing to do with local requests (source==null)
 						next.localRejectedOverload("ForwardRejectedOverload2");
 						if(logMINOR) Logger.minor(this, "Local RejectedOverload, moving on to next peer");
 						// Give up on this one, try another
 						break;
 					}
-					/*
-					 This happens OFTEN!
-					 There is a very small chance that this is a previous reject from before the ACCEPTED,
-					 but (having more-or-less flushed those while waiting on the accepted), it will effectively
-					 always be one of the standard reject replies (See RequestHandler).
-					 */
-					rejectOverloads++;
-					break; // Don't wait for any further response, next peer
+					//so long as the node does not send a (IS_LOCAL) message. Interestingly messages can often timeout having only received this message.
+					continue;
             	}
 
             	if(msg.getSpec() == DMT.FNPCHKDataFound) {




More information about the cvs mailing list