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();
}
/**