Author: toad
Date: 2007-07-13 14:23:15 +0000 (Fri, 13 Jul 2007)
New Revision: 14069

Modified:
   trunk/freenet/src/freenet/node/DarknetPeerNode.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Fix some bugs relating to counting node statuses

Modified: trunk/freenet/src/freenet/node/DarknetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/DarknetPeerNode.java 2007-07-13 13:38:13 UTC 
(rev 14068)
+++ trunk/freenet/src/freenet/node/DarknetPeerNode.java 2007-07-13 14:23:15 UTC 
(rev 14069)
@@ -173,6 +173,7 @@
                else
                        return true;
        }
+       // Might have changed from burst only to bursting
                setPeerNodeStatus(System.currentTimeMillis());
                return true;
     }

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2007-07-13 13:38:13 UTC 
(rev 14068)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2007-07-13 14:23:15 UTC 
(rev 14069)
@@ -2391,17 +2391,20 @@
                        
peers.removePeerNodeRoutingBackoffReason(previousRoutingBackoffReason, this);
                        previousRoutingBackoffReason = null;
                }
-               if(peerNodeStatus != oldPeerNodeStatus) {
-                       peers.removePeerNodeStatus( oldPeerNodeStatus, this );
-                       peers.addPeerNodeStatus( peerNodeStatus, this );
-               }
                return peerNodeStatus;
        }

        public int setPeerNodeStatus(long now) {
                long routingBackedOffUntil = getRoutingBackedOffUntil();
                synchronized(this) {
+                       int oldPeerNodeStatus = peerNodeStatus;
                        peerNodeStatus = getPeerNodeStatus(now, 
routingBackedOffUntil);
+                       
+                       if(peerNodeStatus != oldPeerNodeStatus) {
+                               peers.removePeerNodeStatus( oldPeerNodeStatus, 
this );
+                               peers.addPeerNodeStatus( peerNodeStatus, this );
+                       }
+
                }
                return peerNodeStatus;
        }


Reply via email to