Author: toad
Date: 2006-02-18 22:47:36 +0000 (Sat, 18 Feb 2006)
New Revision: 8065

Modified:
   branches/config/src/freenet/clients/http/FproxyToadlet.java
   branches/config/src/freenet/node/CPUAdjustingSwapRequestInterval.java
   branches/config/src/freenet/node/Node.java
   branches/config/src/freenet/node/TestnetHandler.java
   branches/config/src/freenet/store/BerkeleyDBFreenetStore.java
   branches/config/src/freenet/support/FileLoggerHook.java
   branches/config/src/freenet/support/Logger.java
   branches/config/src/freenet/support/LoggerHook.java
   branches/config/src/freenet/support/LoggerHookChain.java
Log:
It compiles. Except for some testing code which isn't used anyway.
Will fix that next week.

Modified: branches/config/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- branches/config/src/freenet/clients/http/FproxyToadlet.java 2006-02-18 
22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/clients/http/FproxyToadlet.java 2006-02-18 
22:47:36 UTC (rev 8065)
@@ -11,6 +11,7 @@
 import freenet.client.HighLevelSimpleClient;
 import freenet.config.BooleanCallback;
 import freenet.config.Config;
+import freenet.config.IntCallback;
 import freenet.config.InvalidConfigValueException;
 import freenet.config.SubConfig;
 import freenet.keys.FreenetURI;
@@ -74,41 +75,66 @@

                final Node node;

+               FproxyEnabledCallback(Node n) {
+                       this.node = n;
+               }
+               
                public boolean get() {
-                       
-                       // TODO Auto-generated method stub
-                       return false;
+                       return node.getFproxy() != null;
                }
                public void set(boolean val) throws InvalidConfigValueException 
{
-                       // TODO Auto-generated method stub
-                       
+                       if(val == get()) return;
+                       throw new InvalidConfigValueException("Cannot change 
fproxy enabled/disabled after startup");
                }
        }

-       public static void maybeCreateFproxyEtc(Node node, Config config) {
+       static final int DEFAULT_FPROXY_PORT = 8888;
+       
+       static class FproxyPortCallback implements IntCallback {

+               final Node node;
+               
+               FproxyPortCallback(Node n) {
+                       this.node = n;
+               }
+               
+               public int get() {
+                       SimpleToadletServer f = node.getToadletContainer();
+                       if(f == null) return DEFAULT_FPROXY_PORT;
+                       return f.port;
+               }
+               
+               public void set(int port) throws InvalidConfigValueException {
+                       if(port != get())
+                               throw new InvalidConfigValueException("Cannot 
change fproxy port number on the fly");
+               }
+       }
+       
+       public static void maybeCreateFproxyEtc(Node node, Config config) 
throws IOException {
+               
                SubConfig fproxyConfig = new SubConfig("fproxy", config);

-               fproxyConfig.register("enabled", true, 1, true, "Enable 
fproxy?", "Whether to enable fproxy and related HTTP services", 
-                               new BooleanCallback() {
-                                       public boolean get() {
-                                               
-                                               // TODO Auto-generated method 
stub
-                                               return false;
-                                       }
-                                       public void set(boolean val) throws 
InvalidConfigValueException {
-                                               // TODO Auto-generated method 
stub
-                                               
-                                       }
-               });
+               fproxyConfig.register("enabled", true, 1, true, "Enable 
fproxy?", "Whether to enable fproxy and related HTTP services",
+                               new FproxyEnabledCallback(node));

-        SimpleToadletServer server = new SimpleToadletServer(+2000);
-        FproxyToadlet fproxy = new 
FproxyToadlet(makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+               boolean fproxyEnabled = fproxyConfig.getBoolean("enabled");
+               
+               if(!fproxyEnabled) {
+                       fproxyConfig.finishedInitialization();
+                       return;
+               }
+               
+               fproxyConfig.register("port", DEFAULT_FPROXY_PORT, 2, true, 
"Fproxy port number", "Fproxy port number",
+                               new FproxyPortCallback(node));
+               
+               int port = fproxyConfig.getInt("port");
+               
+        SimpleToadletServer server = new SimpleToadletServer(port);
+        node.setToadletContainer(server);
+        FproxyToadlet fproxy = new 
FproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+        node.setFproxy(fproxy);
         server.register(fproxy, "/", false);
-        System.out.println("Starting fproxy on port "+(portNumber+2000));
-
-               // TODO Auto-generated method stub
-               
+        System.out.println("Starting fproxy on port "+(port));
        }



Modified: branches/config/src/freenet/node/CPUAdjustingSwapRequestInterval.java
===================================================================
--- branches/config/src/freenet/node/CPUAdjustingSwapRequestInterval.java       
2006-02-18 22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/node/CPUAdjustingSwapRequestInterval.java       
2006-02-18 22:47:36 UTC (rev 8065)
@@ -27,8 +27,8 @@
         t.start();
     }

-    public synchronized double getValue() {
-        return currentValue;
+    public synchronized int getValue() {
+        return (int)currentValue;
     }

     public void run() {

Modified: branches/config/src/freenet/node/Node.java
===================================================================
--- branches/config/src/freenet/node/Node.java  2006-02-18 22:12:47 UTC (rev 
8064)
+++ branches/config/src/freenet/node/Node.java  2006-02-18 22:47:36 UTC (rev 
8065)
@@ -227,6 +227,7 @@
        static final int EXIT_BAD_NODE_DIR = 15;
        static final int EXIT_BAD_TEMP_DIR = 16;
        static final int EXIT_COULD_NOT_START_FCP = 17;
+       static final int EXIT_COULD_NOT_START_FPROXY = 18;


     public final long bootID;
@@ -244,6 +245,8 @@
     public final ClientRequestScheduler putScheduler;
     TextModeClientInterface tmci;
     FCPServer fcpServer;
+    FproxyToadlet fproxyServlet;
+    SimpleToadletServer toadletContainer;

     // Things that's needed to keep track of
     public final PluginManager pluginManager;
@@ -827,7 +830,11 @@

         // Fproxy
         // FIXME this is a hack, the real way to do this is plugins
-        SimpleToadletServer.maybeCreateFproxyEtc(this, config);
+        try {
+                       FproxyToadlet.maybeCreateFproxyEtc(this, config);
+               } catch (IOException e) {
+                       throw new 
NodeInitException(EXIT_COULD_NOT_START_FPROXY, "Could not start fproxy: "+e);
+               }

         // FCP
         try {
@@ -838,16 +845,7 @@

         // SNMP
         SNMPStarter.maybeCreate(this, config);
-

-        // FIXME old code to use above
-        
-        new FCPServer(portNumber+3000, this);
-        System.out.println("Starting FCP server on port "+(portNumber+3000));
-        SNMPAgent.setSNMPPort(portNumber+4000);
-        System.out.println("Starting SNMP server on port "+(portNumber+4000));
-        SNMPStarter.initialize();
-        
         // Start testnet handler
                if(testnetHandler != null)
                        testnetHandler.start();
@@ -1289,7 +1287,7 @@
         fs.put("testnet", Boolean.toString(testnetEnabled));
         fs.put("lastGoodVersion", Version.getLastGoodVersionString());
         if(testnetEnabled)
-               fs.put("testnetPort", Integer.toString(testnetPort));
+               fs.put("testnetPort", 
Integer.toString(testnetHandler.testnetPort));
         fs.put("myName", myName);
         Logger.minor(this, "My reference: "+fs);
         return fs;
@@ -1894,4 +1892,20 @@
        public FCPServer getFCPServer() {
                return fcpServer;
        }
+
+       public void setToadletContainer(SimpleToadletServer server) {
+               toadletContainer = server;
+       }
+
+       public FproxyToadlet getFproxy() {
+               return fproxyServlet;
+       }
+
+       public SimpleToadletServer getToadletContainer() {
+               return toadletContainer;
+       }
+
+       public void setFproxy(FproxyToadlet fproxy) {
+               this.fproxyServlet = fproxy;
+       }
 }

Modified: branches/config/src/freenet/node/TestnetHandler.java
===================================================================
--- branches/config/src/freenet/node/TestnetHandler.java        2006-02-18 
22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/node/TestnetHandler.java        2006-02-18 
22:47:36 UTC (rev 8065)
@@ -66,7 +66,7 @@

        private final Node node;
        private Thread serverThread;
-       private final int testnetPort;
+       final int testnetPort;

        public void run() {
                // Set up server socket

Modified: branches/config/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- branches/config/src/freenet/store/BerkeleyDBFreenetStore.java       
2006-02-18 22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/store/BerkeleyDBFreenetStore.java       
2006-02-18 22:47:36 UTC (rev 8065)
@@ -54,7 +54,7 @@
        private final TupleBinding longTupleBinding;

        private long chkBlocksInStore;
-       private final long maxChkBlocks;
+       private long maxChkBlocks;
        private final Database chkDB;
        private final Database chkDB_accessTime;
        private final RandomAccessFile chkStore;
@@ -679,4 +679,8 @@
        lastRecentlyUsed++;
        return lastRecentlyUsed;
     }
+
+       public void setMaxKeys(long maxStoreKeys) {
+               maxChkBlocks = maxStoreKeys;
+       }
 }
\ No newline at end of file

Modified: branches/config/src/freenet/support/FileLoggerHook.java
===================================================================
--- branches/config/src/freenet/support/FileLoggerHook.java     2006-02-18 
22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/support/FileLoggerHook.java     2006-02-18 
22:47:36 UTC (rev 8065)
@@ -27,6 +27,7 @@
 import java.util.zip.GZIPOutputStream;

 import freenet.node.Version;
+import freenet.support.LoggerHook.InvalidThresholdException;

 /**
  * Converted the old StandardLogger to Ian's loggerhook interface.
@@ -568,7 +569,7 @@
                        boolean assumeWorking,
                        boolean logOverwrite,
                        long maxOldLogFilesDiskUsage)
-                       throws IOException {
+                       throws IOException, InvalidThresholdException {
                        this(filename,
                                fmt,
                                dfmt,
@@ -604,7 +605,7 @@
                        OutputStream os,
                        String fmt,
                        String dfmt,
-                       String threshold) {
+                       String threshold) throws InvalidThresholdException {
                        this(new PrintStream(os), fmt, dfmt, 
priorityOf(threshold), true);
                        logStream = os;
                }
@@ -673,7 +674,7 @@
                        String threshold,
                        boolean assumeWorking,
                        boolean logOverwrite,
-                       long maxOldLogFilesDiskUsage) throws IOException{
+                       long maxOldLogFilesDiskUsage) throws IOException, 
InvalidThresholdException{
                
this(rotate,baseFilename,fmt,dfmt,priorityOf(threshold),assumeWorking,logOverwrite,maxOldLogFilesDiskUsage);
        }


Modified: branches/config/src/freenet/support/Logger.java
===================================================================
--- branches/config/src/freenet/support/Logger.java     2006-02-18 22:12:47 UTC 
(rev 8064)
+++ branches/config/src/freenet/support/Logger.java     2006-02-18 22:47:36 UTC 
(rev 8065)
@@ -1,5 +1,7 @@
 package freenet.support;

+import freenet.support.LoggerHook.InvalidThresholdException;
+
 /**
  * @author Iakin

@@ -28,7 +30,7 @@
         */
        static Logger logger = new VoidLogger();

-       public static FileLoggerHook setupStdoutLogging(int level, String 
detail) {
+       public static FileLoggerHook setupStdoutLogging(int level, String 
detail) throws InvalidThresholdException {
            setupChain();
            logger.setThreshold(level);
            logger.setDetailedThresholds(detail);
@@ -180,15 +182,16 @@
         * 
         * @param symbolicThreshold
         *            The new threshhold, must be one of ERROR,NORMAL etc.. 
+        * @throws InvalidThresholdException 
         */
-       public abstract void setThreshold(String symbolicThreshold);
+       public abstract void setThreshold(String symbolicThreshold) throws 
InvalidThresholdException;

        /**
         * @return The currently used logging threshold
         */
        public abstract int getThreshold();

-       public abstract void setDetailedThresholds(String details);
+       public abstract void setDetailedThresholds(String details) throws 
InvalidThresholdException;

     /**
      * Report a fatal error and exit.

Modified: branches/config/src/freenet/support/LoggerHook.java
===================================================================
--- branches/config/src/freenet/support/LoggerHook.java 2006-02-18 22:12:47 UTC 
(rev 8064)
+++ branches/config/src/freenet/support/LoggerHook.java 2006-02-18 22:47:36 UTC 
(rev 8065)
@@ -20,7 +20,7 @@
                this.threshold = thresh;
        }

-       LoggerHook(String thresh){
+       LoggerHook(String thresh) throws InvalidThresholdException{
                this.threshold = priorityOf(thresh);
        }

@@ -111,7 +111,7 @@
                setThreshold(priorityOf(symbolicThreshold));
        }

-       public void setDetailedThresholds(String details) {
+       public void setDetailedThresholds(String details) throws 
InvalidThresholdException {
                if (details == null || details.length() == 0)
                        return;
                StringTokenizer st = new StringTokenizer(details, ",", false);

Modified: branches/config/src/freenet/support/LoggerHookChain.java
===================================================================
--- branches/config/src/freenet/support/LoggerHookChain.java    2006-02-18 
22:12:47 UTC (rev 8064)
+++ branches/config/src/freenet/support/LoggerHookChain.java    2006-02-18 
22:47:36 UTC (rev 8065)
@@ -1,5 +1,7 @@
 package freenet.support;

+import freenet.support.LoggerHook.InvalidThresholdException;
+
 /**
  * A class that takes logging messages and distributes them to LoggerHooks.
  * It implements LoggerHook itself, so that instances can be chained (just
@@ -27,7 +29,7 @@
         super(threshold);
         hooks = new LoggerHook[0];
     }
-    public LoggerHookChain(String threshold) {
+    public LoggerHookChain(String threshold) throws InvalidThresholdException {
        super(threshold);
         hooks = new LoggerHook[0];
     }
@@ -101,7 +103,7 @@
        return ((2*ERROR)-1) & ~(threshold-1);
     }

-       public void setDetailedThresholds(String details) {
+       public void setDetailedThresholds(String details) throws 
InvalidThresholdException {
                super.setDetailedThresholds(details);
                LoggerHook[] h = getHooks();
                for (int i = 0; i < h.length; i++)


Reply via email to