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() {



Reply via email to