Author: toad
Date: 2008-09-03 21:50:56 +0000 (Wed, 03 Sep 2008)
New Revision: 22386
Modified:
trunk/freenet/src/freenet/node/Node.java
Log:
Enable FOAF on changing seclevel unless the network level disables opennet and
the friends threat level is HIGH.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-09-03 21:43:44 UTC (rev
22385)
+++ trunk/freenet/src/freenet/node/Node.java 2008-09-03 21:50:56 UTC (rev
22386)
@@ -75,6 +75,7 @@
import freenet.keys.SSKVerifyException;
import freenet.l10n.L10n;
import freenet.node.NodeDispatcher.NodeDispatcherCallback;
+import freenet.node.SecurityLevels.FRIENDS_THREAT_LEVEL;
import freenet.node.SecurityLevels.NETWORK_THREAT_LEVEL;
import freenet.node.updater.NodeUpdateManager;
import freenet.node.useralerts.AbstractUserAlert;
@@ -963,6 +964,39 @@
});
routeAccordingToOurPeersLocation =
nodeConfig.getBoolean("routeAccordingToOurPeersLocation");
+ securityLevels.addNetworkThreatLevelListener(new
SecurityLevelListener<NETWORK_THREAT_LEVEL>() {
+
+ public void onChange(NETWORK_THREAT_LEVEL oldLevel,
NETWORK_THREAT_LEVEL newLevel) {
+ synchronized(Node.this) {
+ boolean wantFOAF = true;
+ if(newLevel ==
NETWORK_THREAT_LEVEL.MAXIMUM || newLevel == NETWORK_THREAT_LEVEL.HIGH) {
+ // Opennet is disabled.
+
if(securityLevels.friendsThreatLevel == FRIENDS_THREAT_LEVEL.HIGH)
+ wantFOAF = false;
+ }
+ routeAccordingToOurPeersLocation =
wantFOAF;
+ }
+ }
+
+ });
+
+ securityLevels.addFriendsThreatLevelListener(new
SecurityLevelListener<FRIENDS_THREAT_LEVEL>() {
+
+ public void onChange(FRIENDS_THREAT_LEVEL oldLevel,
FRIENDS_THREAT_LEVEL newLevel) {
+ synchronized(Node.this) {
+ boolean wantFOAF = true;
+ NETWORK_THREAT_LEVEL networkLevel =
securityLevels.networkThreatLevel;
+ if(networkLevel ==
NETWORK_THREAT_LEVEL.MAXIMUM || networkLevel == NETWORK_THREAT_LEVEL.HIGH) {
+ // Opennet is disabled.
+ if(newLevel ==
FRIENDS_THREAT_LEVEL.HIGH)
+ wantFOAF = false;
+ }
+ routeAccordingToOurPeersLocation =
wantFOAF;
+ }
+ }
+
+ });
+
nodeConfig.register("enableSwapQueueing", true, sortOrder++,
true, false, "Node.enableSwapQueueing", "Node.enableSwapQueueingLong", new
BooleanCallback() {
public Boolean get() {
return enableSwapQueueing;