cleanup
[org.ibex.jinetd.git] / src / org / ibex / jinetd / Main.java
index e45c6c3..8e4c41b 100644 (file)
@@ -11,25 +11,36 @@ import java.util.zip.*;
 
 public class Main {
 
+    // Bootup //////////////////////////////////////////////////////////////////////////////
+
     public static String ROOT;
     public static String LOGFILE;
     public static PrintStream LOGSTREAM;
+    public static String defaultDomain;
 
-    private static void configureRoot() throws Exception {
-        ROOT = System.getProperty("jinetd.root", null);
-        if (ROOT == null) {
-            ROOT = autoDetectRoot();
-            System.setProperty("jinetd.root", ROOT);
+    static {
+        try {
+            System.err.println("jinetd starting...");
+            ROOT = System.getProperty("jinetd.root", null);
+            if (ROOT == null) System.setProperty("jinetd.root", ROOT = autoDetectRoot());
+            System.err.println("    jinetd.root    = " + ROOT);
+            defaultDomain = System.getProperty("jinetd.hostname", null);
+            if (defaultDomain==null) try {
+                java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
+                defaultDomain = localMachine.getHostName();
+            } catch(java.net.UnknownHostException uhe) { defaultDomain = "localhost"; }
+            System.err.println("    jinetd.hostname = " + defaultDomain);
+            LOGFILE = System.getProperty("jinetd.logfile", ROOT + File.separatorChar+"log.txt");
+            System.err.println("    jinetd.logfile = " + LOGFILE);
+            System.err.println("    redirecting stdout/stderr to logfile." + LOGFILE);
+            LOGSTREAM = new PrintStream(new FileOutputStream(LOGFILE, true));
+            System.setErr(LOGSTREAM);
+            System.setOut(LOGSTREAM);
+        } catch (Throwable e) {
+            throw new Error(e);
         }
     }
 
-    private static void configureLogging() throws Exception {
-        LOGFILE  = System.getProperty("jinetd.logfile", ROOT + File.separatorChar+"log.txt");
-        LOGSTREAM = new PrintStream(new FileOutputStream(LOGFILE, true));
-        System.setErr(LOGSTREAM);
-        System.setOut(LOGSTREAM);
-    }
-
     private static String autoDetectRoot() throws Exception {
         if (!(Main.class.getClassLoader() instanceof URLClassLoader))
             throw new Error("unable to detect jinetd.root because my ClassLoader is not an instanceof URLClassLoader");
@@ -53,18 +64,13 @@ public class Main {
                         " was not in any of the ClassLoader URLs");
     }
 
-    static {
-        try {
-            configureRoot();
-            configureLogging();
-        } catch (Throwable e) {
-            throw new Error(e);
-        }
+    public static void reboot() {
+        Log.flush();
+        System.exit(0);
     }
 
     public static void main(String[] s) throws Exception {
-        Log.color = true;
-        Root root = new Root(Root.root);
+        Root root = new Root(ROOT);
         while(true) try {
             if (root != null) { root.scan(); return; }
             Thread.sleep(100);