X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FSSLPinger.java;h=5ad0d185d62414c3ccb2a86ed4ae8bb14f1bfcd5;hp=2f49b44627702a71f79b00678b6cb7766720c860;hb=080cf96c4b762dc2be5978492f247a92f9c22639;hpb=e87392fd58e9152531a8d1cb34cb46e370062108 diff --git a/src/org/cacert/gigi/ping/SSLPinger.java b/src/org/cacert/gigi/ping/SSLPinger.java index 2f49b446..5ad0d185 100644 --- a/src/org/cacert/gigi/ping/SSLPinger.java +++ b/src/org/cacert/gigi/ping/SSLPinger.java @@ -45,8 +45,9 @@ public class SSLPinger extends DomainPinger { @Override public String ping(Domain domain, String configuration, User u) { 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": @@ -76,7 +77,7 @@ public class SSLPinger extends DomainPinger { InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); scanFor(is, "\n"); - os.write("ENABLE STARTTLS\r\n".getBytes()); + os.write("ENABLE STARTTLS\r\n".getBytes("UTF-8")); os.flush(); scanFor(is, "\n"); } @@ -85,9 +86,9 @@ public class SSLPinger extends DomainPinger { Socket s = sch.socket(); InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); - os.write(("").getBytes()); + os.write(("").getBytes("UTF-8")); os.flush(); - os.write("".getBytes()); + os.write("".getBytes("UTF-8")); os.flush(); scanFor(is, ""); @@ -109,13 +110,13 @@ public class SSLPinger extends DomainPinger { Socket s = sch.socket(); InputStream is = s.getInputStream(); readSMTP(is); - s.getOutputStream().write("EHLO ssl.pinger\r\n".getBytes()); + s.getOutputStream().write("EHLO ssl.pinger\r\n".getBytes("UTF-8")); s.getOutputStream().flush(); readSMTP(is); - s.getOutputStream().write("HELP\r\n".getBytes()); + s.getOutputStream().write("HELP\r\n".getBytes("UTF-8")); s.getOutputStream().flush(); readSMTP(is); - s.getOutputStream().write("STARTTLS\r\n".getBytes()); + s.getOutputStream().write("STARTTLS\r\n".getBytes("UTF-8")); s.getOutputStream().flush(); readSMTP(is); } @@ -147,6 +148,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,7 +210,7 @@ public class SSLPinger extends DomainPinger { BigInteger serial = first.getSerialNumber(); Certificate c = Certificate.getBySerial(serial.toString(16)); - if (c.getOwnerId() != subject.getId()) { + if (c.getOwner().getId() != subject.getId()) { return "Owner mismatch"; } return PING_SUCCEDED;