}
@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":
}
}
- 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;
}
}
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 == null) {
+ return "Certificate not found";
+ }
if (c.getOwner().getId() != subject.getId()) {
return "Owner mismatch";
}