Author: toad
Date: 2008-09-03 21:30:53 +0000 (Wed, 03 Sep 2008)
New Revision: 22383
Modified:
trunk/freenet/src/freenet/node/NodeClientCore.java
Log:
Wire up the physical security setting to the bucket encryption options.
Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java 2008-09-03 21:02:32 UTC
(rev 22382)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java 2008-09-03 21:30:53 UTC
(rev 22383)
@@ -41,6 +41,7 @@
import freenet.keys.SSKBlock;
import freenet.keys.SSKVerifyException;
import freenet.l10n.L10n;
+import freenet.node.SecurityLevels.PHYSICAL_THREAT_LEVEL;
import freenet.node.fcp.FCPServer;
import freenet.node.useralerts.SimpleUserAlert;
import freenet.node.useralerts.UserAlert;
@@ -252,6 +253,28 @@
});
tempBucketFactory = new TempBucketFactory(node.executor,
tempFilenameGenerator, nodeConfig.getLong("maxRAMBucketSize"),
nodeConfig.getLong("RAMBucketPoolSize"), random, node.fastWeakRandom,
nodeConfig.getBoolean("encryptTempBuckets"));
+ node.securityLevels.addPhysicalThreatLevelListener(new
SecurityLevelListener<PHYSICAL_THREAT_LEVEL>() {
+
+ public void onChange(PHYSICAL_THREAT_LEVEL oldLevel,
PHYSICAL_THREAT_LEVEL newLevel) {
+ if(newLevel == PHYSICAL_THREAT_LEVEL.LOW) {
+ if(tempBucketFactory.isEncrypting()) {
+
tempBucketFactory.setEncryption(false);
+ }
+
if(persistentTempBucketFactory.isEncrypting()) {
+
persistentTempBucketFactory.setEncryption(false);
+ }
+ } else { // newLevel ==
PHYSICAL_THREAT_LEVEL.NORMAL
+ if(!tempBucketFactory.isEncrypting()) {
+
tempBucketFactory.setEncryption(true);
+ }
+
if(!persistentTempBucketFactory.isEncrypting()) {
+
persistentTempBucketFactory.setEncryption(true);
+ }
+ }
+ }
+
+ });
+
// Downloads directory
nodeConfig.register("downloadsDir", "downloads", sortOrder++,
true, true, "NodeClientCore.downloadDir", "NodeClientCore.downloadDirLong", new
StringCallback() {