Author: toad
Date: 2007-09-14 18:50:45 +0000 (Fri, 14 Sep 2007)
New Revision: 15172

Modified:
   trunk/freenet/src/freenet/node/PeerManager.java
Log:
Maintain a separate map for statuses of darknet nodes

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2007-09-14 17:05:42 UTC 
(rev 15171)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2007-09-14 18:50:45 UTC 
(rev 15172)
@@ -71,6 +71,8 @@
        private static final long peerNodeStatusLogInterval = 5000;
        /** PeerNode statuses, by status */
        private final HashMap peerNodeStatuses;
+       /** DarknetPeerNode statuses, by status */
+       private final HashMap peerNodeStatusesDarknet;
        /** PeerNode routing backoff reasons, by reason */
        private final HashMap peerNodeRoutingBackoffReasons;
        /** Next time to update routableConnectionStats */
@@ -100,6 +102,7 @@
         Logger.normal(this, "Creating PeerManager");
         logMINOR = Logger.shouldLog(Logger.MINOR, this);
                peerNodeStatuses = new HashMap();
+               peerNodeStatusesDarknet = new HashMap();
                peerNodeRoutingBackoffReasons = new HashMap();
         System.out.println("Creating PeerManager");
         myPeers = new PeerNode[0];
@@ -817,7 +820,7 @@
                int conns, peers;
                synchronized(this) {
                        conns = this.connectedPeers.length;
-                       peers = this.myPeers.length;
+                       peers = this.getDarknetPeers().length;
                }
                synchronized(ua) {
                        ua.conns = conns;
@@ -982,6 +985,12 @@
         */
        public void addPeerNodeStatus(int pnStatus, PeerNode peerNode) {
                Integer peerNodeStatus = new Integer(pnStatus);
+               addPeerNodeStatuses(pnStatus, peerNode, peerNodeStatus, 
peerNodeStatuses);
+               if(!peerNode.isOpennet())
+                       addPeerNodeStatuses(pnStatus, peerNode, peerNodeStatus, 
peerNodeStatusesDarknet);
+       }
+
+       private void addPeerNodeStatuses(int pnStatus, PeerNode peerNode, 
Integer peerNodeStatus, HashMap peerNodeStatuses) {
                HashSet statusSet = null;
                synchronized(peerNodeStatuses) {
                        if(peerNodeStatuses.containsKey(peerNodeStatus)) {


Reply via email to