Author: toad
Date: 2008-09-03 22:07:53 +0000 (Wed, 03 Sep 2008)
New Revision: 22389
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeCryptoConfig.java
Log:
Turn off alwaysAllowLocalIPs on darknet when friends security level is set to
HIGH. Turn it on when friends security level is set from HIGH to something
lower.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-09-03 22:02:57 UTC (rev
22388)
+++ trunk/freenet/src/freenet/node/Node.java 2008-09-03 22:07:53 UTC (rev
22389)
@@ -1025,7 +1025,7 @@
// @see #191
if(oldConfig != null &&
"-1".equals(oldConfig.get("node.listenPort")))
throw new
NodeInitException(NodeInitException.EXIT_COULD_NOT_BIND_USM, "Your freenet.ini
file is corrupted! 'listenPort=-1'");
- NodeCryptoConfig darknetConfig = new
NodeCryptoConfig(nodeConfig, sortOrder++, false, false);
+ NodeCryptoConfig darknetConfig = new
NodeCryptoConfig(nodeConfig, sortOrder++, false, false, securityLevels);
sortOrder += NodeCryptoConfig.OPTION_COUNT;
darknetCrypto = new NodeCrypto(this, false, darknetConfig,
startupTime, enableARKs);
@@ -1283,7 +1283,7 @@
maxOpennetPeers = 20;
}
- opennetCryptoConfig = new NodeCryptoConfig(opennetConfig, 2 /*
0 = enabled */, true, true);
+ opennetCryptoConfig = new NodeCryptoConfig(opennetConfig, 2 /*
0 = enabled */, true, true, securityLevels);
if(opennetEnabled) {
opennet = new OpennetManager(this, opennetCryptoConfig,
System.currentTimeMillis(), isAllowedToConnectToSeednodes);
Modified: trunk/freenet/src/freenet/node/NodeCryptoConfig.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeCryptoConfig.java 2008-09-03
22:02:57 UTC (rev 22388)
+++ trunk/freenet/src/freenet/node/NodeCryptoConfig.java 2008-09-03
22:07:53 UTC (rev 22389)
@@ -8,6 +8,7 @@
import freenet.config.InvalidConfigValueException;
import freenet.config.SubConfig;
import freenet.io.comm.FreenetInetAddress;
+import freenet.node.SecurityLevels.FRIENDS_THREAT_LEVEL;
import freenet.support.Logger;
import freenet.support.api.BooleanCallback;
import freenet.support.api.IntCallback;
@@ -49,7 +50,7 @@
* aggressive handshakes (every 10-30 seconds). */
private boolean assumeNATed;
- NodeCryptoConfig(SubConfig config, int sortOrder, boolean onePerIP,
boolean isOpennet) throws NodeInitException {
+ NodeCryptoConfig(SubConfig config, int sortOrder, boolean onePerIP,
boolean isOpennet, SecurityLevels securityLevels) throws NodeInitException {
this.isOpennet = isOpennet;
config.register("listenPort", -1 /* means random */,
sortOrder++, true, true, "Node.port", "Node.portLong", new IntCallback() {
@@ -157,6 +158,19 @@
});
alwaysAllowLocalAddresses =
config.getBoolean("alwaysAllowLocalAddresses");
+ if(!isOpennet) {
+ securityLevels.addFriendsThreatLevelListener(new
SecurityLevelListener<FRIENDS_THREAT_LEVEL>() {
+
+ public void onChange(FRIENDS_THREAT_LEVEL
oldLevel, FRIENDS_THREAT_LEVEL newLevel) {
+ if(newLevel ==
FRIENDS_THREAT_LEVEL.HIGH)
+ alwaysAllowLocalAddresses =
false;
+ if(oldLevel ==
FRIENDS_THREAT_LEVEL.HIGH)
+ alwaysAllowLocalAddresses =
false;
+ }
+
+ });
+ }
+
config.register("assumeNATed", true, sortOrder++, true, true,
"Node.assumeNATed", "Node.assumeNATedLong", new BooleanCallback() {
public Boolean get() {