Author: toad
Date: 2006-09-02 20:57:13 +0000 (Sat, 02 Sep 2006)
New Revision: 10373

Modified:
   trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
   trunk/freenet/src/freenet/node/Version.java
Log:
Probe requests bugfix.

Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java       
2006-09-02 20:20:57 UTC (rev 10372)
+++ trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java       
2006-09-02 20:57:13 UTC (rev 10373)
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.3.5 on 02/09/06 17:20 */
+/* The following code was generated by JFlex 1.3.5 on 02/09/06 21:32 */

 package freenet.clients.http.filter;
 import java.io.*;
@@ -11,7 +11,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/";>JFlex</a> 1.3.5
- * on 02/09/06 17:20 from the specification file
+ * on 02/09/06 21:32 from the specification file
  * <tt>file:/usr/src/cvs/eclipse-workspace/Freenet 
0.7/src/freenet/clients/http/filter/CSSTokenizerFilter.jflex</tt>
  */
 class CSSTokenizerFilter {

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2006-09-02 20:20:57 UTC 
(rev 10372)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2006-09-02 20:57:13 UTC 
(rev 10373)
@@ -402,6 +402,7 @@
     long tLastReceivedProbeRequest;

     static final int MAX_PROBE_CONTEXTS = 1000;
+    static final int MAX_PROBE_IDS = 10000;

     class ProbeContext {

@@ -444,15 +445,20 @@
                short counter = m.getShort(DMT.COUNTER);
                if(logMINOR)
                        Logger.minor(this, "Probe request: "+id+" "+target+" 
"+best+" "+nearest+" "+htl+" "+counter);
-               if(recentProbeRequestIDs.contains(lid)) {
-                       // Reject: Loop
-                       Message reject = DMT.createFNPProbeRejected(id, target, 
nearest, best, counter, DMT.PROBE_REJECTED_LOOP);
-                       try {
-                               src.sendAsync(reject, null, 0, null);
-                       } catch (NotConnectedException e) {
-                               Logger.error(this, "Not connected rejecting a 
probe request from "+src);
+               synchronized(recentProbeContexts) {
+                       if(recentProbeRequestIDs.contains(lid)) {
+                               // Reject: Loop
+                               Message reject = DMT.createFNPProbeRejected(id, 
target, nearest, best, counter, DMT.PROBE_REJECTED_LOOP);
+                               try {
+                                       src.sendAsync(reject, null, 0, null);
+                               } catch (NotConnectedException e) {
+                                       Logger.error(this, "Not connected 
rejecting a probe request from "+src);
+                               }
+                               return true;
                        }
-                       return true;
+                       recentProbeRequestIDs.push(lid);
+                       while(recentProbeRequestIDs.size() > MAX_PROBE_IDS)
+                               recentProbeRequestIDs.pop();
                }
                return innerHandleProbeRequest(src, id, lid, target, best, 
nearest, htl, counter, true);
        }
@@ -636,4 +642,10 @@
                return innerHandleProbeRequest(src, id, lid, target, best, 
nearest, htl, counter, false);
     }

+       public void startProbe(double d) {
+               
+               // TODO Auto-generated method stub
+               
+       }
+
 }

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-09-02 
20:20:57 UTC (rev 10372)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-09-02 
20:57:13 UTC (rev 10373)
@@ -737,6 +737,11 @@
         } else if(uline.startsWith("PEERS")) {
                outsb.append(n.getTMCIPeerList());
                outsb.append("PEERS done.\r\n");
+        } else if(uline.startsWith("PROBE:")) {
+               String s = uline.substring("PROBE:".length()).trim();
+               double d = Double.parseDouble(s);
+               System.err.println("Starting probe request for location "+d);
+               n.dispatcher.startProbe(d);
         } else if(uline.startsWith("PLUGLOAD:")) {
                if (line.substring("PLUGLOAD:".length()).trim().equals("?")) {
                        outsb.append("  PLUGLOAD: pkg.Class                  - 
Load plugin from current classpath");                    

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-09-02 20:20:57 UTC (rev 
10372)
+++ trunk/freenet/src/freenet/node/Version.java 2006-09-02 20:57:13 UTC (rev 
10373)
@@ -21,7 +21,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 960;
+       private static final int buildNumber = 961;

        /** Oldest build of Fred we will talk to */
        private static final int oldLastGoodBuild = 950;


Reply via email to