X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FDomainPinger.java;h=c5eb3926bea8d8a2fed6b0b766b11171d9a13ae0;hb=34daecdb56cd063819e3e2913b9b17a6dc0229d2;hp=68ef91eb6e0092d9ff8c2f8433dfbb9753b46dcc;hpb=bba77181c4ffa665c11f6db1a23d5913be799e0e;p=gigi.git diff --git a/src/org/cacert/gigi/ping/DomainPinger.java b/src/org/cacert/gigi/ping/DomainPinger.java index 68ef91eb..c5eb3926 100644 --- a/src/org/cacert/gigi/ping/DomainPinger.java +++ b/src/org/cacert/gigi/ping/DomainPinger.java @@ -1,35 +1,46 @@ package org.cacert.gigi.ping; -import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.database.DBEnum; import org.cacert.gigi.database.GigiPreparedStatement; +import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.Domain; -import org.cacert.gigi.dbObjects.User; public abstract class DomainPinger { + public static enum PingState implements DBEnum { + OPEN, SUCCESS, FAILED; + + @Override + public String getDBName() { + return toString().toLowerCase(); + } + } + public static final String PING_STILL_PENDING = null; public static final String PING_SUCCEDED = ""; - public abstract void ping(Domain domain, String configuration, User user, int confId); + public abstract void ping(Domain domain, String configuration, CertificateOwner target, int confId); protected static void enterPingResult(int configId, String state, String result, String token) { - GigiPreparedStatement enterPingResult = DatabaseConnection.getInstance().prepare("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?"); - enterPingResult.setInt(1, configId); - enterPingResult.setString(2, DomainPinger.PING_STILL_PENDING == state ? "open" : DomainPinger.PING_SUCCEDED.equals(state) ? "success" : "failed"); - enterPingResult.setString(3, result); - enterPingResult.setString(4, token); - enterPingResult.execute(); - + 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(); + } } - protected static void updatePingResult(int configId, String token, String state, String result) { - GigiPreparedStatement updatePingResult = DatabaseConnection.getInstance().prepare("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.setString(4, token); - updatePingResult.execute(); - + protected static void updatePingResult(int configId, 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.setString(4, token); + updatePingResult.execute(); + } } + }