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)) {