]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/ping/SSLPinger.java
ADD: Get infomation about user's directory listing options
[gigi.git] / src / org / cacert / gigi / ping / SSLPinger.java
index d6ebe71c2a3b3f3dd60f8463f82a6f51097202fe..81c739372ca4a2925b2c852f9be92b263d5c9255 100644 (file)
@@ -20,21 +20,28 @@ import javax.net.ssl.SSLEngineResult.HandshakeStatus;
 import javax.net.ssl.SSLParameters;
 import javax.security.cert.X509Certificate;
 
+import org.cacert.gigi.Domain;
+import org.cacert.gigi.User;
+
 public class SSLPinger extends DomainPinger {
 
+    public static final String[] TYPES = new String[] {
+            "xmpp", "server-xmpp", "smtp", "imap"
+    };
+
     @Override
-    public void ping(String domain, String configuration, String expToken) {
+    public String ping(Domain domain, String configuration, User u) {
         try {
             SocketChannel sch = SocketChannel.open();
             String[] parts = configuration.split(":", 2);
-            sch.connect(new InetSocketAddress(domain, Integer.parseInt(parts[0])));
+            sch.connect(new InetSocketAddress(domain.getSuffix(), Integer.parseInt(parts[0])));
             if (parts.length == 2) {
                 switch (parts[1]) {
                 case "xmpp":
-                    startXMPP(sch, false, domain);
+                    startXMPP(sch, false, domain.getSuffix());
                     break;
                 case "server-xmpp":
-                    startXMPP(sch, true, domain);
+                    startXMPP(sch, true, domain.getSuffix());
                     break;
                 case "smtp":
                     startSMTP(sch);
@@ -45,9 +52,9 @@ public class SSLPinger extends DomainPinger {
 
                 }
             }
-            test(sch, domain);
+            return test(sch, domain.getSuffix());
         } catch (IOException e) {
-            e.printStackTrace();
+            return "Connecton failed";
         }
 
     }
@@ -126,7 +133,7 @@ public class SSLPinger extends DomainPinger {
         }
     }
 
-    private void test(SocketChannel sch, String domain) {
+    private String test(SocketChannel sch, String domain) {
         try {
             SSLContext sc = SSLContext.getDefault();
             SSLEngine se = sc.createSSLEngine();
@@ -181,12 +188,16 @@ public class SSLPinger extends DomainPinger {
             for (X509Certificate x509Certificate : peerCertificateChain) {
                 System.out.println(x509Certificate.getSubjectDN().getName());
             }
+            return PING_SUCCEDED;
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
+            return "Security failed";
         } catch (SSLException e) {
             e.printStackTrace();
+            return "Security failed";
         } catch (IOException e) {
             e.printStackTrace();
+            return "Connection closed";
         }
     }
 }