]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/ping/DomainPinger.java
chg: revoke certificates if repeated ping failed
[gigi.git] / src / club / wpia / gigi / ping / DomainPinger.java
index fcb8f12e93263170a6af2da39e556ad91882c926..7b1d404c5f61a5a5ce822c79d8c7e65e2463fd29 100644 (file)
@@ -4,6 +4,8 @@ import club.wpia.gigi.database.DBEnum;
 import club.wpia.gigi.database.GigiPreparedStatement;
 import club.wpia.gigi.dbObjects.CertificateOwner;
 import club.wpia.gigi.dbObjects.Domain;
+import club.wpia.gigi.dbObjects.DomainPingConfiguration;
+import club.wpia.gigi.dbObjects.DomainPingExecution;
 
 public abstract class DomainPinger {
 
@@ -20,24 +22,18 @@ public abstract class DomainPinger {
 
     public static final String PING_SUCCEDED = "";
 
-    public abstract void ping(Domain domain, String configuration, CertificateOwner target, int confId);
+    public abstract DomainPingExecution ping(Domain domain, String configuration, CertificateOwner target, DomainPingConfiguration conf);
 
-    protected static void enterPingResult(int configId, String state, String result, String token) {
+    protected static DomainPingExecution enterPingResult(DomainPingConfiguration config, String state, String result, String token) {
         PingState estate = DomainPinger.PING_STILL_PENDING == state ? PingState.OPEN : DomainPinger.PING_SUCCEDED.equals(state) ? PingState.SUCCESS : PingState.FAILED;
-        try (GigiPreparedStatement enterPingResult = new GigiPreparedStatement("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?")) {
-            enterPingResult.setInt(1, configId);
-            enterPingResult.setEnum(2, estate);
-            enterPingResult.setString(3, result);
-            enterPingResult.setString(4, token);
-            enterPingResult.execute();
-        }
+        return new DomainPingExecution(estate, result, config, token);
     }
 
-    protected static void updatePingResult(int configId, String state, String result, String token) {
+    protected static void updatePingResult(DomainPingConfiguration config, String state, String result, String token) {
         try (GigiPreparedStatement updatePingResult = new GigiPreparedStatement("UPDATE `domainPinglog` SET `state`=?::`pingState`, `result`=? WHERE `configId`=? AND `challenge`=?")) {
             updatePingResult.setString(1, DomainPinger.PING_STILL_PENDING == state ? "open" : DomainPinger.PING_SUCCEDED.equals(state) ? "success" : "failed");
             updatePingResult.setString(2, result);
-            updatePingResult.setInt(3, configId);
+            updatePingResult.setInt(3, config.getId());
             updatePingResult.setString(4, token);
             updatePingResult.execute();
         }