X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FSSLPinger.java;h=acc36adc47650e584b11226f59b5d6869d4b6218;hb=6d65334306c8b7bd10fbbfa07bc8f38475ff6d08;hp=85189e9c05beed6e8cbf33d89afd9ef1917fd0da;hpb=9474df27407dd99134876f2c8a2a3b6e7d1fae6a;p=gigi.git diff --git a/src/org/cacert/gigi/ping/SSLPinger.java b/src/org/cacert/gigi/ping/SSLPinger.java index 85189e9c..acc36adc 100644 --- a/src/org/cacert/gigi/ping/SSLPinger.java +++ b/src/org/cacert/gigi/ping/SSLPinger.java @@ -43,10 +43,11 @@ public class SSLPinger extends DomainPinger { } @Override - public String ping(Domain domain, String configuration, User u) { + public void ping(Domain domain, String configuration, User u, int confId) { try (SocketChannel sch = SocketChannel.open()) { + sch.socket().setSoTimeout(5000); String[] parts = configuration.split(":", 2); - sch.connect(new InetSocketAddress(domain.getSuffix(), Integer.parseInt(parts[0]))); + sch.socket().connect(new InetSocketAddress(domain.getSuffix(), Integer.parseInt(parts[0])), 5000); if (parts.length == 2) { switch (parts[1]) { case "xmpp": @@ -64,9 +65,12 @@ public class SSLPinger extends DomainPinger { } } - return test(sch, domain.getSuffix(), u); + String res = test(sch, domain.getSuffix(), u); + enterPingResult(confId, res, res, null); + return; } catch (IOException e) { - return "Connecton failed"; + enterPingResult(confId, "error", "connection Failed", null); + return; } } @@ -147,6 +151,7 @@ public class SSLPinger extends DomainPinger { private String test(SocketChannel sch, String domain, User subject) { try { + sch.socket().setSoTimeout(5000); SSLContext sc = SSLContext.getInstance("SSL"); try { TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509"); @@ -208,6 +213,9 @@ public class SSLPinger extends DomainPinger { BigInteger serial = first.getSerialNumber(); Certificate c = Certificate.getBySerial(serial.toString(16)); + if (c == null) { + return "Certificate not found"; + } if (c.getOwner().getId() != subject.getId()) { return "Owner mismatch"; }