]> WPIA git - gigi.git/blob - src/org/cacert/gigi/ping/DomainPinger.java
7676bcdbebe9c4e2c968a65d6857470a4d5d4608
[gigi.git] / src / org / cacert / gigi / ping / DomainPinger.java
1 package org.cacert.gigi.ping;
2
3 import org.cacert.gigi.database.DatabaseConnection;
4 import org.cacert.gigi.database.GigiPreparedStatement;
5 import org.cacert.gigi.dbObjects.CertificateOwner;
6 import org.cacert.gigi.dbObjects.Domain;
7
8 public abstract class DomainPinger {
9
10     public static final String PING_STILL_PENDING = null;
11
12     public static final String PING_SUCCEDED = "";
13
14     public abstract void ping(Domain domain, String configuration, CertificateOwner target, int confId);
15
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();
23
24     }
25
26     protected static void updatePingResult(int configId, String state, String result, String token) {
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();
33
34     }
35 }