@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":
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");
}
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, ">");
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);
}
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");
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;