]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/ping/SSLPinger.java
dbg: test-output for pinging
[gigi.git] / src / org / cacert / gigi / ping / SSLPinger.java
index 2f49b44627702a71f79b00678b6cb7766720c860..5ad0d185d62414c3ccb2a86ed4ae8bb14f1bfcd5 100644 (file)
@@ -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(("<stream:stream to=\"" + domain + "\" xmlns=\"jabber:" + (server ? "server" : "client") + "\"" + " xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\">").getBytes());
+        os.write(("<stream:stream to=\"" + domain + "\" xmlns=\"jabber:" + (server ? "server" : "client") + "\"" + " xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\">").getBytes("UTF-8"));
         os.flush();
-        os.write("<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>".getBytes());
+        os.write("<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\"/>".getBytes("UTF-8"));
         os.flush();
         scanFor(is, "<proceed");
         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;