Author: toad
Date: 2007-09-21 15:14:55 +0000 (Fri, 21 Sep 2007)
New Revision: 15227

Modified:
   trunk/freenet/src/freenet/node/NodeDispatcher.java
Log:
Probe requests bugfix: Pass in a distance, *not a location* for maxDistance 
when backtracking!
Effect of bug: We were doing much more backtracking than we should, and 
probably never finishing.

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-09-21 15:13:20 UTC 
(rev 15226)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-09-21 15:14:55 UTC 
(rev 15227)
@@ -897,6 +897,7 @@
                                        });

                                        double mustBeBetterThan = 
((Double)locs[Math.min(3,locs.length)]).doubleValue();
+                                       double maxDistance = 
Location.distance(mustBeBetterThan, target, true);

                                        for(int 
i=0;i<notVisitedList.size();i++) {
                                                double loc = 
((Double)(notVisitedList.get(i))).doubleValue();
@@ -905,7 +906,7 @@
                                                        furthestDist = dist;
                                                }
                                        }
-                                       if(innerHandleProbeRequest(src, id, 
lid, target, best, nearest, ctx.htl, counter, false, false, false, false, null, 
notVisitedList, mustBeBetterThan, true, linearCounter, "backtracking"))
+                                       if(innerHandleProbeRequest(src, id, 
lid, target, best, nearest, ctx.htl, counter, false, false, false, false, null, 
notVisitedList, maxDistance, true, linearCounter, "backtracking"))
                                                return true;
                                }
                        }


Reply via email to