- Add kad lib, from i2p.zzz.kademlia branch (without the history),

which is a rewrite of the netdb kad
- Drop now-unused SHA1Comparator
- Efficiency tweak to NodeInfoComparator
This commit is contained in:
zzz
2012-06-22 17:39:41 +00:00
parent 5883b7344e
commit d5a1e0b1c6
7 changed files with 1119 additions and 35 deletions

View File

@ -16,15 +16,15 @@ import net.i2p.data.DataHelper;
* @author zzz
*/
class NodeInfoComparator implements Comparator<NodeInfo> {
private final SHA1Hash _base;
private final byte[] _base;
public NodeInfoComparator(SHA1Hash h) {
_base = h;
_base = h.getData();
}
public int compare(NodeInfo lhs, NodeInfo rhs) {
byte lhsDelta[] = DataHelper.xor(lhs.getNID().getData(), _base.getData());
byte rhsDelta[] = DataHelper.xor(rhs.getNID().getData(), _base.getData());
byte lhsDelta[] = DataHelper.xor(lhs.getNID().getData(), _base);
byte rhsDelta[] = DataHelper.xor(rhs.getNID().getData(), _base);
return DataHelper.compareTo(lhsDelta, rhsDelta);
}

View File

@ -1,31 +0,0 @@
package org.klomp.snark.dht;
/*
* From zzzot, modded and relicensed to GPLv2
*/
import java.util.Comparator;
import net.i2p.crypto.SHA1Hash;
import net.i2p.data.DataHelper;
/**
* Closest to a InfoHash or NID key.
* Use for InfoHashes and NIDs.
*
* @since 0.8.4
* @author zzz
*/
class SHA1Comparator implements Comparator<SHA1Hash> {
private final byte[] _base;
public SHA1Comparator(SHA1Hash h) {
_base = h.getData();
}
public int compare(SHA1Hash lhs, SHA1Hash rhs) {
byte lhsDelta[] = DataHelper.xor(lhs.getData(), _base);
byte rhsDelta[] = DataHelper.xor(rhs.getData(), _base);
return DataHelper.compareTo(lhsDelta, rhsDelta);
}
}