X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FSSLPinger.java;h=81c739372ca4a2925b2c852f9be92b263d5c9255;hb=44420bae8ce64dc0e03427bdd821c89fc24cd18b;hp=d6ebe71c2a3b3f3dd60f8463f82a6f51097202fe;hpb=943d8e7ed0ea5a9d56e7e694a3cbd849c52bad16;p=gigi.git diff --git a/src/org/cacert/gigi/ping/SSLPinger.java b/src/org/cacert/gigi/ping/SSLPinger.java index d6ebe71c..81c73937 100644 --- a/src/org/cacert/gigi/ping/SSLPinger.java +++ b/src/org/cacert/gigi/ping/SSLPinger.java @@ -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"; } } }