Author: zothar
Date: 2007-11-22 15:54:29 +0000 (Thu, 22 Nov 2007)
New Revision: 15923

Modified:
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
Make maximum opennet peers configurable, but capped at 20

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2007-11-22 
15:00:17 UTC (rev 15922)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2007-11-22 
15:54:29 UTC (rev 15923)
@@ -569,6 +569,9 @@
 Node.l10nLanguageLong=This setting will change the language used to display 
messages. Keep in mind that some strings won't be translated until next node 
startup though.
 Node.maxHTL=Maximum HTL
 Node.maxHTLLong=Maximum HTL (FOR DEVELOPER USE ONLY!)
+Node.maxOpennetPeers=Maximum number of Opennet peers
+Node.maxOpennetPeersLong=Maximum number of Opennet peers (must be between 0 
and 20 inclusive)
+Node.maxOpennetPeersMustBeTwentyOrLess=Must be twenty or less
 Node.mustBePositive=Config value must be positive
 Node.nodeDir=Node directory
 Node.nodeDirLong=Name of directory to put node-related files e.g. peers list in

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-11-22 15:00:17 UTC (rev 
15922)
+++ trunk/freenet/src/freenet/node/Node.java    2007-11-22 15:54:29 UTC (rev 
15923)
@@ -330,6 +330,7 @@

        private final NodeCryptoConfig opennetCryptoConfig;
        private OpennetManager opennet;
+       private int maxOpennetPeers;
        private boolean passOpennetRefsThroughDarknet;

        // General stuff
@@ -800,8 +801,23 @@

                boolean opennetEnabled = opennetConfig.getBoolean("enabled");

-               opennetCryptoConfig = new NodeCryptoConfig(opennetConfig, 1 /* 
0 = enabled */, true);
+               opennetConfig.register("maxOpennetPeers", "20", 1, true, false, 
"Node.maxOpennetPeers",
+                               "Node.maxOpennetPeers.maxOpennetPeersLong", new 
IntCallback() {
+                                       public int get() {
+                                               return maxOpennetPeers;
+                                       }
+                                       public void set(int 
inputMaxOpennetPeers) throws InvalidConfigValueException {
+                                               if(inputMaxOpennetPeers < 0) 
throw new InvalidConfigValueException(l10n("mustBePositive"));
+                                               if(inputMaxOpennetPeers > 20) 
throw new 
InvalidConfigValueException(l10n("maxOpennetPeersMustBeTwentyOrLess"));
+                                               maxOpennetPeers = 
inputMaxOpennetPeers;
+                                               }
+                                       }
+               );

+               maxOpennetPeers = opennetConfig.getInt("maxOpennetPeers");
+               
+               opennetCryptoConfig = new NodeCryptoConfig(opennetConfig, 2 /* 
0 = enabled */, true);
+               
                if(opennetEnabled) {
                        opennet = new OpennetManager(this, opennetCryptoConfig, 
System.currentTimeMillis());
                        // Will be started later
@@ -2760,4 +2776,8 @@
                                return new UdpSocketHandler[] { 
darknetCrypto.socket };
                        }
                }
+
+       public int getMaxOpennetPeers() {
+               return maxOpennetPeers;
+       }
 }

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-11-22 15:00:17 UTC 
(rev 15922)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-11-22 15:54:29 UTC 
(rev 15923)
@@ -64,8 +64,6 @@
        /** Only drop a connection after at least this many successful requests 
*/
        // FIXME should be a function of # opennet peers? max # opennet peers? 
...
        static final int MIN_SUCCESS_BETWEEN_DROP_CONNS = 10;
-       // FIXME make this configurable
-       static final int MAX_PEERS = 20;
        /** Chance of resetting path folding (for plausible deniability) is 1 
in this number. */
        static final int RESET_PATH_FOLDING_PROB = 20;
        /** Don't re-add a node until it's been up and disconnected for at 
least this long */
@@ -452,7 +450,7 @@
        }

        protected int getNumberOfConnectedPeersToAim() {
-               return MAX_PEERS - node.peers.countConnectedDarknetPeers();
+               return node.getMaxOpennetPeers() - 
node.peers.countConnectedDarknetPeers();
        }

        /**


Reply via email to