1 package org.cacert.gigi.ping;
3 import org.cacert.gigi.database.DatabaseConnection;
4 import org.cacert.gigi.database.GigiPreparedStatement;
5 import org.cacert.gigi.dbObjects.Domain;
6 import org.cacert.gigi.dbObjects.User;
8 public abstract class DomainPinger {
10 public static final String PING_STILL_PENDING = null;
12 public static final String PING_SUCCEDED = "";
14 public abstract void ping(Domain domain, String configuration, User user, int confId);
16 protected static void enterPingResult(int configId, String state, String result, String token) {
17 GigiPreparedStatement enterPingResult = DatabaseConnection.getInstance().prepare("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?");
18 enterPingResult.setInt(1, configId);
19 enterPingResult.setString(2, DomainPinger.PING_STILL_PENDING == state ? "open" : DomainPinger.PING_SUCCEDED.equals(state) ? "success" : "failed");
20 enterPingResult.setString(3, result);
21 enterPingResult.setString(4, token);
22 enterPingResult.execute();
26 protected static void updatePingResult(int configId, String token, String state, String result) {
27 GigiPreparedStatement updatePingResult = DatabaseConnection.getInstance().prepare("UPDATE `domainPinglog` SET `state`=?::`pingState`, `result`=? WHERE `configId`=? AND `challenge`=?");
28 updatePingResult.setString(1, DomainPinger.PING_STILL_PENDING == state ? "open" : DomainPinger.PING_SUCCEDED.equals(state) ? "success" : "failed");
29 updatePingResult.setString(2, result);
30 updatePingResult.setInt(3, configId);
31 updatePingResult.setString(4, token);
32 updatePingResult.execute();