Author: toad
Date: 2008-09-03 22:12:36 +0000 (Wed, 03 Sep 2008)
New Revision: 22391
Modified:
trunk/freenet/src/freenet/node/NodeCryptoConfig.java
Log:
On opennet, turn off oneConnectionPerAddress on network seclevel LOW
Modified: trunk/freenet/src/freenet/node/NodeCryptoConfig.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeCryptoConfig.java 2008-09-03
22:09:20 UTC (rev 22390)
+++ trunk/freenet/src/freenet/node/NodeCryptoConfig.java 2008-09-03
22:12:36 UTC (rev 22391)
@@ -9,6 +9,7 @@
import freenet.config.SubConfig;
import freenet.io.comm.FreenetInetAddress;
import freenet.node.SecurityLevels.FRIENDS_THREAT_LEVEL;
+import freenet.node.SecurityLevels.NETWORK_THREAT_LEVEL;
import freenet.support.Logger;
import freenet.support.api.BooleanCallback;
import freenet.support.api.IntCallback;
@@ -141,6 +142,22 @@
});
oneConnectionPerAddress =
config.getBoolean("oneConnectionPerIP");
+ if(isOpennet) {
+ securityLevels.addNetworkThreatLevelListener(new
SecurityLevelListener<NETWORK_THREAT_LEVEL>() {
+
+ public void onChange(NETWORK_THREAT_LEVEL
oldLevel, NETWORK_THREAT_LEVEL newLevel) {
+ // Might be useful for nodes on the
same NAT etc, so turn it off for LOW. Otherwise is sensible.
+ // It's always off on darknet, since we
can reasonably expect to know our peers, even if we are paranoid
+ // about them!
+ if(newLevel == NETWORK_THREAT_LEVEL.LOW)
+ oneConnectionPerAddress = false;
+ if(oldLevel == NETWORK_THREAT_LEVEL.LOW)
+ oneConnectionPerAddress = true;
+ }
+
+ });
+ }
+
config.register("alwaysAllowLocalAddresses", !isOpennet,
sortOrder++, true, false, "Node.alwaysAllowLocalAddresses",
"Node.alwaysAllowLocalAddressesLong",
new BooleanCallback() {