Author: mrogers
Date: 2006-05-29 18:13:06 +0000 (Mon, 29 May 2006)
New Revision: 8926
Modified:
trunk/freenet/src/freenet/node/CHKInsertSender.java
trunk/freenet/src/freenet/node/InsertHandler.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/RequestHandler.java
trunk/freenet/src/freenet/node/RequestSender.java
trunk/freenet/src/freenet/node/SSKInsertHandler.java
trunk/freenet/src/freenet/node/SSKInsertSender.java
Log:
Replaced Math.abs(loc1 - loc2) with PeerManager.distance(loc1, loc2) in several
places, and tidied up PeerManager.distance
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -234,7 +234,7 @@
Logger.minor(this, "Routing insert to "+next);
nodesRoutedTo.add(next);
- if(Math.abs(target - nextValue) > Math.abs(target -
closestLocation)) {
+ if(PeerManager.distance(target, nextValue) >
PeerManager.distance(target, closestLocation)) {
Logger.minor(this, "Backtracking: target="+target+"
next="+nextValue+" closest="+closestLocation);
htl = node.decrementHTL(source, htl);
}
Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/InsertHandler.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -54,7 +54,7 @@
closestLoc = req.getDouble(DMT.NEAREST_LOCATION);
double targetLoc = key.toNormalizedDouble();
double myLoc = node.lm.getLocation().getValue();
- if(Math.abs(targetLoc - myLoc) < Math.abs(targetLoc - closestLoc))
+ if(PeerManager.distance(targetLoc, myLoc) <
PeerManager.distance(targetLoc, closestLoc))
closestLoc = myLoc;
}
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -359,13 +359,13 @@
/**
* Distance between two locations.
*/
- public static double distance(double d, double loc) {
+ public static double distance(double a, double b) {
// Circular keyspace
- double dist = Math.abs(d-loc);
- double min = Math.min(d, loc);
- double max = Math.max(d, loc);
- double altdist = Math.abs(1.0+min-max);
- return Math.min(dist, altdist);
+ double dist;
+ if (a > b) dist = a - b;
+ else dist = b - a;
+ if (dist > 0.5) dist = 1.0 - dist;
+ return dist;
}
/**
Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/RequestHandler.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -44,7 +44,7 @@
// FIXME should be more generic when implement SSKs
key = (Key) req.getObject(DMT.FREENET_ROUTING_KEY);
double keyLoc = key.toNormalizedDouble();
- if(Math.abs(keyLoc - myLoc) < Math.abs(keyLoc - closestLoc))
+ if(PeerManager.distance(keyLoc, myLoc) < PeerManager.distance(keyLoc,
closestLoc))
closestLoc = myLoc;
if(key instanceof NodeSSK)
needsPubKey = m.getBoolean(DMT.NEED_PUB_KEY);
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -132,7 +132,7 @@
Logger.minor(this, "Routing request to "+next);
nodesRoutedTo.add(next);
- if(Math.abs(target - nextValue) > Math.abs(target - nearestLoc)) {
+ if(PeerManager.distance(target, nextValue) >
PeerManager.distance(target, nearestLoc)) {
htl = node.decrementHTL(source, htl);
Logger.minor(this, "Backtracking: target="+target+"
next="+nextValue+" closest="+nearestLoc+" so htl="+htl);
}
Modified: trunk/freenet/src/freenet/node/SSKInsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertHandler.java 2006-05-29
17:06:40 UTC (rev 8925)
+++ trunk/freenet/src/freenet/node/SSKInsertHandler.java 2006-05-29
18:13:06 UTC (rev 8926)
@@ -54,7 +54,7 @@
closestLoc = req.getDouble(DMT.NEAREST_LOCATION);
double targetLoc = key.toNormalizedDouble();
double myLoc = node.lm.getLocation().getValue();
- if(Math.abs(targetLoc - myLoc) < Math.abs(targetLoc - closestLoc))
+ if(PeerManager.distance(targetLoc, myLoc) <
PeerManager.distance(targetLoc, closestLoc))
closestLoc = myLoc;
byte[] pubKeyHash =
((ShortBuffer)req.getObject(DMT.PUBKEY_HASH)).getData();
pubKey = node.getKey(pubKeyHash);
Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-29 17:06:40 UTC
(rev 8925)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-29 18:13:06 UTC
(rev 8926)
@@ -148,7 +148,7 @@
Logger.minor(this, "Routing insert to "+next);
nodesRoutedTo.add(next);
- if(Math.abs(target - nextValue) > Math.abs(target -
closestLocation)) {
+ if(PeerManager.distance(target, nextValue) >
PeerManager.distance(target, closestLocation)) {
Logger.minor(this, "Backtracking: target="+target+"
next="+nextValue+" closest="+closestLocation);
htl = node.decrementHTL(source, htl);
}