Author: toad
Date: 2007-07-04 17:42:18 +0000 (Wed, 04 Jul 2007)
New Revision: 13919

Modified:
   trunk/freenet/src/freenet/node/OpennetManager.java
   trunk/freenet/src/freenet/node/OpennetPeerNode.java
   trunk/freenet/src/freenet/node/PeerManager.java
Log:
Remove opennet peers when opennet is disabled, don't route to opennet peers if 
opennet is disabled

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-07-04 17:27:47 UTC 
(rev 13918)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-07-04 17:42:18 UTC 
(rev 13919)
@@ -38,6 +38,7 @@
                        }
                }
                node.peers.tryReadPeers(new File(node.nodeDir, 
"openpeers-"+crypto.portNumber).toString(), crypto, true);
+               
        }

        private void readFile(String filename) throws IOException {
@@ -80,6 +81,7 @@
         */
        public void stop() {
                crypto.stop();
+               node.peers.removeOpennetPeers();
        }

 }

Modified: trunk/freenet/src/freenet/node/OpennetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetPeerNode.java 2007-07-04 17:27:47 UTC 
(rev 13918)
+++ trunk/freenet/src/freenet/node/OpennetPeerNode.java 2007-07-04 17:42:18 UTC 
(rev 13919)
@@ -14,4 +14,8 @@
                return new OpennetPeerNodeStatus(this);
        }

+       public boolean isRoutingCompatible() {
+               if(node.isOpennetEnabled()) return false;
+               return super.isRoutingCompatible();
+       }
 }

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2007-07-04 17:27:47 UTC 
(rev 13918)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2007-07-04 17:42:18 UTC 
(rev 13919)
@@ -1211,4 +1211,20 @@
                }
                return false;
        }
+
+       public void removeOpennetPeers() {
+               synchronized(this) {
+                       Vector keep = new Vector();
+                       Vector conn = new Vector();
+                       for(int i=0;i<myPeers.length;i++) {
+                               PeerNode pn = myPeers[i];
+                               if(pn instanceof OpennetPeerNode) continue;
+                               keep.add(pn);
+                               if(pn.isConnected()) conn.add(pn);
+                       }
+                       myPeers = (PeerNode[]) keep.toArray(new 
PeerNode[keep.size()]);
+                       connectedPeers = (PeerNode[]) keep.toArray(new 
PeerNode[conn.size()]);
+               }
+               updatePMUserAlert();
+       }
 }


Reply via email to