Author: toad
Date: 2007-12-15 15:52:02 +0000 (Sat, 15 Dec 2007)
New Revision: 16575

Modified:
   trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
   trunk/freenet/src/freenet/node/PeerManager.java
Log:
Better detection of peer count.

Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2007-12-15 
15:48:50 UTC (rev 16574)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2007-12-15 
15:52:02 UTC (rev 16575)
@@ -243,7 +243,7 @@
                if(logMINOR) Logger.minor(this, "Maybe running IP detection 
plugins", new Exception("debug"));
                PeerNode[] peers = node.getPeerNodes();
                PeerNode[] conns = node.getConnectedPeers();
-               int peerCount = node.peers.getOpennetPeers().length + 
node.peers.getDarknetPeers().length;
+               int peerCount = node.peers.countValidPeers();
                FreenetInetAddress[] nodeAddrs = detector.getPrimaryIPAddress();
                long now = System.currentTimeMillis();
                synchronized(this) {

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2007-12-15 15:48:50 UTC 
(rev 16574)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2007-12-15 15:52:02 UTC 
(rev 16575)
@@ -1460,4 +1460,18 @@
                }
                return count;
        }
+
+       /**
+        * How many peers do we have that actually may connect? Don't include 
seednodes, disabled nodes, etc.
+        */
+       public int countValidPeers() {
+               PeerNode[] peers = myPeers;
+               int count = 0;
+               for(int i=0;i<peers.length;i++) {
+                       if(!peers[i].isSearchable()) continue;
+                       if(peers[i].isDisabled()) continue;
+                       count++;
+               }
+               return count;
+       }
 }


Reply via email to