Author: toad
Date: 2007-06-08 16:21:12 +0000 (Fri, 08 Jun 2007)
New Revision: 13489
Modified:
trunk/freenet/src/freenet/node/NodeDispatcher.java
Log:
Probe requests fix: Do not pick up new best-so-far from RouteNotFound pockets.
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2007-06-08 15:46:29 UTC
(rev 13488)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2007-06-08 16:21:12 UTC
(rev 13489)
@@ -534,34 +534,12 @@
}
return true;
}
- // FIXME Update any important values on ctx
if(ctx.counter < counter) ctx.counter = counter;
- double oldDist = Math.abs(PeerManager.distance(ctx.nearest,
target));
- double newDist = Math.abs(PeerManager.distance(nearest,
target));
- // FIXME use this elsewhere? Does it make sense?
if(logMINOR)
- Logger.minor(this, "ctx.nearest="+ctx.nearest+",
nearest="+nearest+", target="+target+", oldDist="+oldDist+",
newDist="+newDist+", htl="+htl+", ctx.htl="+ctx.htl);
- if(oldDist > newDist) {
+ Logger.minor(this, "ctx.nearest="+ctx.nearest+",
nearest="+nearest+", target="+target+", htl="+htl+", ctx.htl="+ctx.htl);
+ if(ctx.htl > htl) {
+ // Rejected can reduce HTL
ctx.htl = htl;
- ctx.nearest = nearest;
- if(logMINOR)
- Logger.minor(this, "oldDist ("+oldDist+") >
newDist ("+newDist+ ')');
- } else if(Math.abs(oldDist - newDist) < Double.MIN_VALUE*2) {
- // oldDist == newDist
- if(!isNew) {
- // Rejected. DO NOT DECREMENT: Will be
decremented later.
- // A rejector cannot increase the HTL unless it
moves us closer to the target.
- if(htl > ctx.htl)
- htl = ctx.htl;
- else
- ctx.htl = htl;
- }
- if(logMINOR)
- Logger.minor(this, "Rejected (or new):
htl="+htl);
- } else {
- Logger.error(this, "Distance increased: "+oldDist+" ->
"+newDist+" htl: "+ctx.htl+" -> "+htl+" , using old HTL and dist");
- htl = ctx.htl;
- nearest = ctx.nearest;
}
Logger.minor(this, "htl="+htl+", nearest="+nearest+",
ctx.htl="+ctx.htl+", ctx.nearest="+ctx.nearest);
@@ -734,7 +712,7 @@
double nearest = m.getDouble(DMT.NEAREST_LOCATION);
short counter = m.getShort(DMT.COUNTER);
if(logMINOR)
- Logger.minor(this, "Probe trace: "+id+ ' ' +target+ ' '
+best+ ' ' +nearest);
+ Logger.minor(this, "Probe trace: "+id+ ' ' +target+ ' '
+best+ ' ' +nearest+' '+counter);
// Just propagate back to source
ProbeContext ctx;
synchronized(recentProbeContexts) {