java/src/org/openantivirus/daemon ScannerDaemon.java,1.3,1.4

Kurt Huwig <[email protected]> Wed, 26 May 2004 20:19:55 +0000
Newsgroups gmane.comp.security.virus.openantivirus.cvs
Message-ID <[email protected]>
Update of /cvsroot/openantivirus/java/src/org/openantivirus/daemon
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16773/src/org/openantivirus/daemon

Modified Files:
	ScannerDaemon.java 
Log Message:
More flexible handling of configuration

Index: ScannerDaemon.java
===================================================================
RCS file: /cvsroot/openantivirus/java/src/org/openantivirus/daemon/ScannerDaemon.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ScannerDaemon.java	25 May 2004 06:49:09 -0000	1.3
+++ ScannerDaemon.java	26 May 2004 20:19:52 -0000	1.4
@@ -56,6 +56,7 @@
     public static final String BINDNAME = "localhost";
     public static final int PORT = 8127;
     
+    private static final String CONF_FILE = "ScannerDaemon-settings.properties";
     private static final int MAX_BACKLOG = 50;
     
     private boolean isRunning;
@@ -102,34 +103,37 @@
                 + "This is free software, and you are welcome to redistribute "
                 + "it under certain\nconditions; for details read 'COPYING'.");
         
-        final WriteableScanConfiguration scanConfiguration =
-                new WriteableScanConfiguration(new DefaultScanConfiguration());
+        final WriteableScanConfiguration loadConf =
+            new WriteableScanConfiguration(new DefaultScanConfiguration()); 
+        final WriteableScanConfiguration scanConf =
+            new WriteableScanConfiguration(loadConf);
         
-        for (int i = 0; i < args.length; i++) {
-            if (args[i].charAt(0) == '-') {
-                final String sParameter = args[i].substring(1);
-                if ("nosignature".equals(sParameter)) {
-                    scanConfiguration.putInt("credo.level",
-                                             CredoParser.NO_VERIFY);
-                } else if ("credolevel".equals(sParameter)) {
-                    scanConfiguration.putInt("credo.level",
-                                             Integer.parseInt(args[++i]));
-                } else if ("followsymlinks".equals(sParameter)) {
-                    scanConfiguration.putBoolean("engine.follow-symlinks",
-                                                 true);
-                } else if ("tempdir".equals(sParameter)) {
-                    scanConfiguration.putString("engine.tempdirectory",
-                                                args[++i]);
+        try {
+            boolean confFileLoaded = false;
+            for (int i = 0; i < args.length; i++) {
+                if (args[i].charAt(0) == '-') {
+                    final String sParameter = args[i].substring(1);
+                    if ("nosignature".equals(sParameter)) {
+                        scanConf.putInt("credo.level",
+                                                 CredoParser.NO_VERIFY);
+                    } else if ("configfile".equals(sParameter)) {
+                        loadConf.loadFile(args[++i]);
+                        confFileLoaded = true;
+                    } else {
+                        scanConf.putAny(args[i], args[++i]);
+                    }
                 } else {
-                    System.err.println("Unknown parameter: " + args[i]);
+                    System.err.println("unknown parameter: " + args[i]);
                 }
-            } else {
-                scanConfiguration.putString("credo.directory", args[i]);
             }
-        }
-        
-        try {
-            new ScannerDaemon(scanConfiguration).start();
+            
+            if (!confFileLoaded) {
+                if (new File(CONF_FILE).exists()) { 
+                    loadConf.loadFile(CONF_FILE);
+                }
+            }
+            
+            new ScannerDaemon(scanConf).start();
         } catch (Exception e) {
             e.printStackTrace();
         }



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click