Author: toad
Date: 2007-09-26 09:48:42 +0000 (Wed, 26 Sep 2007)
New Revision: 15311
Modified:
trunk/freenet/src/freenet/node/PeerManager.java
Log:
Ask opennet to remove it even if we have already removed it
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2007-09-26 09:47:12 UTC
(rev 15310)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2007-09-26 09:48:42 UTC
(rev 15311)
@@ -271,8 +271,8 @@
}
private boolean removePeer(PeerNode pn) {
+ boolean isInPeers = false;
synchronized(this) {
- boolean isInPeers = false;
for(int i=0;i<myPeers.length;i++) {
if(myPeers[i] == pn) isInPeers=true;
}
@@ -284,34 +284,37 @@
}
if(pn instanceof DarknetPeerNode)
((DarknetPeerNode)pn).removeExtraPeerDataDir();
- if(!isInPeers) return false;
+
+ if(isInPeers) {
- // removing from connectedPeers
- ArrayList a = new ArrayList();
- for(int i=0;i<myPeers.length;i++) {
- if((myPeers[i]!=pn) && myPeers[i].isRoutable())
- a.add(myPeers[i]);
- }
-
- PeerNode[] newConnectedPeers = new PeerNode[a.size()];
- newConnectedPeers = (PeerNode[]) a.toArray(newConnectedPeers);
- connectedPeers = newConnectedPeers;
-
- // removing from myPeers
- PeerNode[] newMyPeers = new PeerNode[myPeers.length-1];
- int positionInNewArray = 0;
- for(int i=0;i<myPeers.length;i++) {
- if(myPeers[i]!=pn){
- newMyPeers[positionInNewArray] = myPeers[i];
- positionInNewArray++;
+ // removing from connectedPeers
+ ArrayList a = new ArrayList();
+ for(int i=0;i<myPeers.length;i++) {
+ if((myPeers[i]!=pn) && myPeers[i].isRoutable())
+ a.add(myPeers[i]);
}
+
+ PeerNode[] newConnectedPeers = new PeerNode[a.size()];
+ newConnectedPeers = (PeerNode[])
a.toArray(newConnectedPeers);
+ connectedPeers = newConnectedPeers;
+
+ // removing from myPeers
+ PeerNode[] newMyPeers = new PeerNode[myPeers.length-1];
+ int positionInNewArray = 0;
+ for(int i=0;i<myPeers.length;i++) {
+ if(myPeers[i]!=pn){
+ newMyPeers[positionInNewArray] =
myPeers[i];
+ positionInNewArray++;
+ }
+ }
+ myPeers = newMyPeers;
+
+ Logger.normal(this, "Removed "+pn);
}
- myPeers = newMyPeers;
-
- Logger.normal(this, "Removed "+pn);
}
pn.onRemove();
- updatePMUserAlert();
+ if(isInPeers)
+ updatePMUserAlert();
return true;
}