Author: nextgens
Date: 2006-05-06 11:40:33 +0000 (Sat, 06 May 2006)
New Revision: 8620

Added:
   trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java
Removed:
   trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java
Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
Log:
Better handling of the MeaningfulNameUserAlert user alert.

Deleted: trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java     
2006-05-06 10:54:28 UTC (rev 8619)
+++ trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java     
2006-05-06 11:40:33 UTC (rev 8620)
@@ -1,27 +0,0 @@
-package freenet.node;
-
-public class MeaningFulNodeNameUserAlert implements UserAlert {
-
-       public boolean userCanDismiss() {
-               return true;
-       }
-
-       public String getTitle() {
-               return "Your node name isn't defined";
-       }
-
-       public String getText() {
-               return "It seems that your node's name isn't defined. Setting "+
-               "up a node name doesn't affect your anonymity in any way but "+
-               "is usefull for your peers to know who you are in case they 
have "+
-               "to reach you.";
-       }
-
-       public short getPriorityClass() {
-               return UserAlert.WARNING;
-       }
-       
-       public boolean isValid() {
-               return true;
-       }
-}

Copied: trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java (from 
rev 8619, trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java)
===================================================================
--- trunk/freenet/src/freenet/node/MeaningFulNodeNameUserAlert.java     
2006-05-06 10:54:28 UTC (rev 8619)
+++ trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java     
2006-05-06 11:40:33 UTC (rev 8620)
@@ -0,0 +1,27 @@
+package freenet.node;
+
+public class MeaningfulNodeNameUserAlert implements UserAlert {
+
+       public boolean userCanDismiss() {
+               return true;
+       }
+
+       public String getTitle() {
+               return "Your node name isn't defined";
+       }
+
+       public String getText() {
+               return "It seems that your node's name isn't defined. Setting "+
+               "up a node name doesn't affect your anonymity in any way but "+
+               "is usefull for your peers to know who you are in case they 
have "+
+               "to reach you.";
+       }
+
+       public short getPriorityClass() {
+               return UserAlert.WARNING;
+       }
+       
+       public boolean isValid() {
+               return true;
+       }
+}

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-05-06 10:54:28 UTC (rev 
8619)
+++ trunk/freenet/src/freenet/node/Node.java    2006-05-06 11:40:33 UTC (rev 
8620)
@@ -104,8 +104,33 @@
 public class Node {

        private static IPUndetectedUserAlert primaryIPUndetectedAlert;
-       private static MeaningFulNodeNameUserAlert nodeNameUserAlert;
+       private static MeaningfulNodeNameUserAlert nodeNameUserAlert;

+       public class NodeNameCallback implements StringCallback{
+                       Node node;
+               
+                       NodeNameCallback(Node n) {
+                               node=n;
+                       }
+                       public String get() {
+                               if(myName.startsWith("Node created around")|| 
myName.startsWith("MyFirstFreenetNode")){
+                               node.alerts.register(nodeNameUserAlert);
+                       }else{
+                               node.alerts.unregister(nodeNameUserAlert);
+                       }
+                               return myName;
+                       }
+
+                       public void set(String val) throws 
InvalidConfigValueException {
+                               myName = val;
+                               if(myName.startsWith("Node created around")|| 
myName.startsWith("MyFirstFreenetNode")){
+                               node.alerts.register(nodeNameUserAlert);
+                       }else{
+                               node.alerts.unregister(nodeNameUserAlert);
+                       }
+                       }
+       }
+       
        public class MyRequestThrottle implements BaseRequestThrottle {

                private final BootstrappingDecayingRunningAverage 
roundTripTime; 
@@ -134,7 +159,7 @@
                        roundTripTime.report(Math.max(rtt, 10));
                }
        }
-
+       
        /** Config object for the whole node. */
        public final Config config;

@@ -950,24 +975,11 @@
         }

         // Name
-        
         nodeConfig.register("name", myName, 11, false, "Node name for 
darknet", "Node name; you may want to set this to something descriptive if 
running on darknet e.g. Fred Blogg's Node; it is visible to any connecting 
node",
-                       new StringCallback() {
-                                       public String get() {
-                                               return myName;
-                                       }
-
-                                       public void set(String val) throws 
InvalidConfigValueException {
-                                               myName = val;
-                                       }
-        });
+                       new NodeNameCallback(this));
+        nodeNameUserAlert = new MeaningfulNodeNameUserAlert();
         myName = nodeConfig.getString("name");
-        nodeNameUserAlert = new MeaningFulNodeNameUserAlert();
-        if(myName.startsWith("Node created around")|| 
myName.startsWith("MyFirstFreenetNode")){
-               this.alerts.register(nodeNameUserAlert);
-        }else{
-               this.alerts.unregister(nodeNameUserAlert);
-        }
+        
         nodeConfig.finishedInitialization();
         writeNodeFile();

@@ -2066,17 +2078,6 @@
             recentlyCompletedIDs.pop();
     }

-    public synchronized void setName(String key) {
-        myName = key;
-        writeNodeFile();
-        if(key.startsWith("Node created around")|| 
key.startsWith("MyFirstFreenetNode")){
-               this.alerts.register(nodeNameUserAlert);
-        }else{
-               this.alerts.unregister(nodeNameUserAlert);
-        }
-        
-    }
-
        public HighLevelSimpleClient makeClient(short prioClass) {
                return new HighLevelSimpleClientImpl(this, archiveManager, 
tempBucketFactory, random, !DONT_CACHE_LOCAL_REQUESTS, prioClass);
        }

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-05-06 
10:54:28 UTC (rev 8619)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-05-06 
11:40:33 UTC (rev 8620)
@@ -27,6 +27,8 @@
 import freenet.client.InsertBlock;
 import freenet.client.InserterException;
 import freenet.client.events.EventDumper;
+import freenet.config.Option;
+import freenet.config.SubConfig;
 import freenet.crypt.RandomSource;
 import freenet.io.comm.Peer;
 import freenet.io.comm.PeerParseException;
@@ -564,7 +566,27 @@
             while(key.length() > 0 && key.charAt(key.length()-1) == ' ')
                 key = key.substring(0, key.length()-2);
             outsb.append("New name: "+key);
-            n.setName(key);
+            SubConfig[] sc=n.config.getConfigs();
+            
+            for(int i=0; i<sc.length ; i++){
+                       Option[] o = sc[i].getOptions();
+                       String prefix = new String(sc[i].getPrefix());
+                       String configName;
+                       
+                       for(int j=0; j<o.length; j++){
+                               configName=o[j].getName();
+                               // we look for node.name 
+                               if(prefix.equals("node") && 
configName.equals("name")){
+                                               Logger.minor(this, "Setting 
"+prefix+"."+configName+" to "+key);
+                                               try{
+                                                       o[j].setValue(key);
+                                               }catch(Exception e){
+                                                       Logger.error(this, 
"Error setting node's name");
+                                               }
+                               }
+                       }
+               }
+               n.config.store();
         } else if(uline.startsWith("DISCONNECT:")) {
                String ipAndPort = line.substring("DISCONNECT:".length());
                disconnect(ipAndPort.trim());


Reply via email to