Update of /cvsroot/freenet/freenet/src/freenet/node/states/FNP
In directory sc8-pr-cvs1:/tmp/cvs-serv29253/src/freenet/node/states/FNP

Modified Files:
        NewRequest.java 
Log Message:
6234:
* Limit the volume of queryrejects sent to a node due to version being too old. 
Includes exponential backoff.
* Dump low priority messages (e.g. most QueryRejected's) if we don't have a free conn 
(reinstates pre-PH behaviour - bugfix).
* If a node is not contactable, and no free connections, discard the message.
* Bugfixes in PacketMessage.jobDone relating to losing message sent notifications.
* New diagnostics: messageSendTimeContactable, messageSendTimeNonContactable. Not all 
old ones restored yet.
* Make sure we close files in FileEventList
* Add count of total files open by NativeFSDir to interesting objects dump.
* Indenting, logging


Index: NewRequest.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/states/FNP/NewRequest.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- NewRequest.java     4 Oct 2003 23:37:27 -0000       1.32
+++ NewRequest.java     11 Oct 2003 20:00:24 -0000      1.33
@@ -38,7 +38,8 @@
        
        origRec = n.getPeer(mo.getSource());
        
-       n.connections.makePeerHandler(origRec.getIdentity(), mo.getSource());
+       PeerHandler ph = 
+           n.connections.makePeerHandler(origRec.getIdentity(), mo.getSource());
        
        long time1 = System.currentTimeMillis();
        
@@ -60,13 +61,17 @@
                 n.logger.log(this,
                     "Rejecting query from host of type "+vers+": "+reason,
                     Logger.MINOR);
-               Message m = new QueryRejected(id, mo.hopsToLive,
-                                             reason, mo.otherFields);
-               n.sendMessageAsync(m, origRec, PeerHandler.EXPENDABLE,
-                                  null);
+               if(ph.timeSinceLastMessageSent() > ph.rejectOldVersion(false)) {
+                   Message m = new QueryRejected(id, mo.hopsToLive,
+                                                 reason, mo.otherFields);
+                   n.sendMessageAsync(m, origRec, PeerHandler.EXPENDABLE,
+                                      null);
+               } // Slow down old, stupid nodes!
                n.loadStats.receivedQuery(false);
-                throw new RequestAbortException(null);
-            }
+               throw new RequestAbortException(null);
+            } else {
+               ph.rejectOldVersion(true);
+           }
            
            long time3 = System.currentTimeMillis();
            logTime(2, time3-time1, shouldLog);

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to