Author: toad
Date: 2008-09-17 15:35:37 +0000 (Wed, 17 Sep 2008)
New Revision: 22679
Modified:
trunk/freenet/src/freenet/config/PersistentConfig.java
trunk/freenet/src/freenet/node/SecurityLevels.java
Log:
Set the defaults from the default security level if there is no initial config
file.
Modified: trunk/freenet/src/freenet/config/PersistentConfig.java
===================================================================
--- trunk/freenet/src/freenet/config/PersistentConfig.java 2008-09-17
15:27:52 UTC (rev 22678)
+++ trunk/freenet/src/freenet/config/PersistentConfig.java 2008-09-17
15:35:37 UTC (rev 22679)
@@ -11,12 +11,18 @@
public class PersistentConfig extends Config {
protected SimpleFieldSet origConfigFileContents;
+ protected boolean wasNew;
protected volatile boolean finishedInit;
public PersistentConfig(SimpleFieldSet initialContents) {
this.origConfigFileContents = initialContents;
+ wasNew = initialContents == null;
}
+ public boolean wasNew() {
+ return wasNew;
+ }
+
/**
* Finished initialization. So any remaining options must be invalid.
*/
Modified: trunk/freenet/src/freenet/node/SecurityLevels.java
===================================================================
--- trunk/freenet/src/freenet/node/SecurityLevels.java 2008-09-17 15:27:52 UTC
(rev 22678)
+++ trunk/freenet/src/freenet/node/SecurityLevels.java 2008-09-17 15:35:37 UTC
(rev 22679)
@@ -97,7 +97,13 @@
};
myConfig.register("networkThreatLevel", "NORMAL", sortOrder++,
false, true, "SecurityLevels.networkThreatLevelShort",
"SecurityLevels.networkThreatLevel", networkThreatLevelCallback);
- networkThreatLevel =
NETWORK_THREAT_LEVEL.valueOf(myConfig.getString("networkThreatLevel"));
+ NETWORK_THREAT_LEVEL netLevel =
NETWORK_THREAT_LEVEL.valueOf(myConfig.getString("networkThreatLevel"));
+ if(!config.wasNew()) {
+ networkThreatLevel = netLevel;
+ } else {
+ // Call all the callbacks so that the config is
consistent with the threat level.
+ setThreatLevel(netLevel);
+ }
friendsThreatLevelCallback = new
MyCallback<FRIENDS_THREAT_LEVEL>() {
@Override
@@ -132,7 +138,13 @@
};
myConfig.register("friendsThreatLevel", "NORMAL", sortOrder++,
false, true, "SecurityLevels.friendsThreatLevelShort",
"SecurityLevels.friendsThreatLevel", friendsThreatLevelCallback);
- friendsThreatLevel =
FRIENDS_THREAT_LEVEL.valueOf(myConfig.getString("friendsThreatLevel"));
+ FRIENDS_THREAT_LEVEL friendsLevel =
FRIENDS_THREAT_LEVEL.valueOf(myConfig.getString("friendsThreatLevel"));;
+ if(!config.wasNew()) {
+ friendsThreatLevel = friendsLevel;
+ } else {
+ // Call all the callbacks so that the config is
consistent with the threat level.
+ setThreatLevel(friendsLevel);
+ }
physicalThreatLevelCallback = new
MyCallback<PHYSICAL_THREAT_LEVEL>() {
@Override
@@ -167,7 +179,14 @@
};
myConfig.register("physicalThreatLevel", "NORMAL", sortOrder++,
false, true, "SecurityLevels.physicalThreatLevelShort",
"SecurityLevels.physicalThreatLevel", physicalThreatLevelCallback);
- physicalThreatLevel =
PHYSICAL_THREAT_LEVEL.valueOf(myConfig.getString("physicalThreatLevel"));
+ PHYSICAL_THREAT_LEVEL physLevel =
PHYSICAL_THREAT_LEVEL.valueOf(myConfig.getString("physicalThreatLevel"));
+ if(!config.wasNew()) {
+ physicalThreatLevel = physLevel;
+ } else {
+ // Call all the callbacks so that the config is
consistent with the threat level.
+ setThreatLevel(physLevel);
+ }
+
myConfig.finishedInitialization();
}