From c46b06fb81ce0fd20652b282cd911612f562689c Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 1 Mar 2008 16:13:41 +0000 Subject: [PATCH] Fix netdb.knownLeaseSets count reported by floodfill routers --- history.txt | 4 ++++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- .../networkdb/kademlia/PersistentDataStore.java | 4 ++++ .../networkdb/kademlia/TransientDataStore.java | 13 +++++++++++-- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/history.txt b/history.txt index 0c11cd87e..c471742c2 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2008-03-01 zzz + * Fix netdb.knownLeaseSets count reported by floodfill routers + (was broken by -3) + 2008-02-27 zzz * i2ptunnel: Add 3-hop option to edit.jsp to match configtunnels.jsp * i2psnark: Remove orion and gaytorrents from default tracker list diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 12fb3e793..a4ea22835 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -17,7 +17,7 @@ import net.i2p.CoreVersion; public class RouterVersion { public final static String ID = "$Revision: 1.548 $ $Date: 2008-02-10 15:00:00 $"; public final static String VERSION = "0.6.1.31"; - public final static long BUILD = 8; + public final static long BUILD = 9; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java index 3e0e4c696..cb6cc2ecb 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java @@ -71,6 +71,9 @@ class PersistentDataStore extends TransientDataStore { _writer.queue(key, data); } +/* + * We don't store leasesets here anymore, use the TransientDataStore count + * public int countLeaseSets() { File dbDir = null; try { @@ -86,6 +89,7 @@ class PersistentDataStore extends TransientDataStore { else return leaseSetFiles.length; } +*/ private void accept(LeaseSet ls) { super.put(ls.getDestination().calculateHash(), ls); diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/TransientDataStore.java b/router/java/src/net/i2p/router/networkdb/kademlia/TransientDataStore.java index d6d5cb011..ee69abb51 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/TransientDataStore.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/TransientDataStore.java @@ -60,8 +60,17 @@ class TransientDataStore implements DataStore { } } - public int countLeaseSets() { return 0; } - + public int countLeaseSets() { + int count = 0; + synchronized (_data) { + for (Iterator iter = _data.values().iterator(); iter.hasNext();) { + DataStructure data = (DataStructure)iter.next(); + if (data instanceof LeaseSet) + count++; + } + } + return count; + } /** nothing published more than 5 minutes in the future */ private final static long MAX_FUTURE_PUBLISH_DATE = 5*60*1000;