fiddling with Main
authoradam <adam@megacz.com>
Thu, 5 Jul 2007 01:35:01 +0000 (01:35 +0000)
committeradam <adam@megacz.com>
Thu, 5 Jul 2007 01:35:01 +0000 (01:35 +0000)
darcs-hash:20070705013501-5007d-a242bda4b20a798bfdadedea3b15ea9919b7f4f2.gz

src/org/ibex/mail/Main.java

index bd3014d..b11584c 100644 (file)
@@ -16,6 +16,7 @@ import javax.net.ssl.SSLServerSocket;
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.SSLSocket;
 
+// restrict the maximum number of open connections from any given source IP (probably max 4)
 public class Main {
 
     public static void main(String[] s) throws Exception {
@@ -72,22 +73,22 @@ public class Main {
         private ServerSocket ss;
         public Acceptor(ServerSocket ss) { this.ss = ss; }
         public void run() {
-            try {
-                ss.setReuseAddress(true);
-
-                while(true) {
+            while(true) {
+                try {
+                    ss.setReuseAddress(true);
                     final Socket s = ss.accept();
-                    try {
-                        new Thread() {
-                            public void run() {
-                                try {
-                                    accept(new Connection(s, "megacz.com"));
-                                } catch (Exception e) { Log.error(Main.class, e); }
-                            }
-                        }.start();
-                    } catch (Exception e) { Log.error(Main.class, e); }
+                    new Thread() {
+                        public void run() {
+                            try {
+                                accept(new Connection(s, "megacz.com"));
+                            } catch (Throwable t) { Log.error(Main.class, t); }
+                        }
+                    }.start();
+                } catch (Throwable t) {
+                    Log.error(Main.class, t);
+                    Misc.sleep(1000);
                 }
-            } catch (Exception e) { Log.error(Main.class, e); }
+            }
         }
     }
 
@@ -115,7 +116,7 @@ public class Main {
 
     static final Auth auth = new Auth();
     static class Auth implements Login {
-        private KerberosAuth ka = new KerberosAuth("MEGACZ.COM", "godel.megacz.com");
+        private KerberosAuth ka = new KerberosAuth("MEGACZ.COM", "chaitin.megacz.com");
         public Account anonymous() {
             try {
                 final Mailbox root =
@@ -131,6 +132,7 @@ public class Main {
         public Object login(String user, String pass, Class protocol) { return login(user, pass); }
         public Account login(String user, String pass) {
             //if (!EtcPasswd.verify(user, pass)) return null;
+            //if (!CheckPassword.verify(user, pass)) return null;
             if (!ka.auth(user, pass)) return null;
             final Mailbox root =
                 FileBasedMailbox.getFileBasedMailbox(Mailbox.STORAGE_ROOT + "/user", true);