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();
        }



Reply via email to