X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclub%2Fwpia%2Fgigi%2FdbObjects%2FDomainPingExecution.java;h=0f01c1d77ca5fda3e08e2327087b0d5f3a840a69;hb=4bae004675e4814f0aee765f840e524a37d9c846;hp=174b2a182825f1f61e6b30abfa1f5b89c66c168d;hpb=bccd4cc0dba0f89aa045b113bac46eb8cc1dab4e;p=gigi.git diff --git a/src/club/wpia/gigi/dbObjects/DomainPingExecution.java b/src/club/wpia/gigi/dbObjects/DomainPingExecution.java index 174b2a18..0f01c1d7 100644 --- a/src/club/wpia/gigi/dbObjects/DomainPingExecution.java +++ b/src/club/wpia/gigi/dbObjects/DomainPingExecution.java @@ -3,24 +3,26 @@ package club.wpia.gigi.dbObjects; import java.sql.Timestamp; import java.util.Date; +import club.wpia.gigi.database.GigiPreparedStatement; import club.wpia.gigi.database.GigiResultSet; +import club.wpia.gigi.ping.DomainPinger.PingState; public class DomainPingExecution { - private String state; + private final PingState state; - private String type; + private final String type; - private String info; + private final String info; - private String result; + private final String result; - private DomainPingConfiguration config; + private final DomainPingConfiguration config; - private Timestamp date; + private final Timestamp date; - public DomainPingExecution(GigiResultSet rs) { - state = rs.getString(1); + protected DomainPingExecution(GigiResultSet rs) { + state = PingState.valueOf(rs.getString(1).toUpperCase()); type = rs.getString(2); info = rs.getString(3); result = rs.getString(4); @@ -28,7 +30,27 @@ public class DomainPingExecution { date = rs.getTimestamp(6); } - public String getState() { + public DomainPingExecution(PingState state, String result, DomainPingConfiguration config, String challenge) { + this.state = state; + this.type = config.getType().getDBName(); + this.info = config.getInfo(); + this.result = result; + this.config = config; + this.date = new Timestamp(System.currentTimeMillis()); + try (GigiPreparedStatement enterPingResult = new GigiPreparedStatement("INSERT INTO `domainPinglog` SET `configId`=?, `state`=?::`pingState`, `result`=?, `challenge`=?, `when`=?, `needsAction`=?")) { + enterPingResult.setInt(1, config.getId()); + enterPingResult.setEnum(2, state); + enterPingResult.setString(3, result); + enterPingResult.setString(4, challenge); + enterPingResult.setTimestamp(5, this.date); + // Ping results with current state "failed" need followup action in + // two weeks to revoke any remaining active certificates. + enterPingResult.setBoolean(6, state == PingState.FAILED); + enterPingResult.execute(); + } + } + + public PingState getState() { return state; }