X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FPingerDaemon.java;h=60c1ee2eec9ae21b6a065ae33516e52e1172a79a;hp=806f7c7615d4499d761a1eb4b3067002279f1d1e;hb=74f10c9db6cf2fcb5002ef4d2fa7f3c43abd6fb0;hpb=ce69b08f00f4715d08e918a948743192df598be0 diff --git a/src/org/cacert/gigi/ping/PingerDaemon.java b/src/org/cacert/gigi/ping/PingerDaemon.java index 806f7c76..60c1ee2e 100644 --- a/src/org/cacert/gigi/ping/PingerDaemon.java +++ b/src/org/cacert/gigi/ping/PingerDaemon.java @@ -7,7 +7,6 @@ import java.sql.SQLException; import java.util.HashMap; import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.dbObjects.Domain; -import org.cacert.gigi.dbObjects.DomainPingConfiguration; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.util.RandomToken; @@ -19,6 +18,8 @@ public class PingerDaemon extends Thread { private PreparedStatement enterPingResult; + private PreparedStatement updatePingStatus; + private KeyStore truststore; public PingerDaemon(KeyStore truststore) { @@ -28,8 +29,9 @@ public class PingerDaemon extends Thread { @Override public void run() { try { - searchNeededPings = DatabaseConnection.getInstance().prepare("SELECT pingconfig.*, domains.domain, domains.memid FROM pingconfig LEFT JOIN domainPinglog ON domainPinglog.configId=pingconfig.id INNER JOIN domains ON domains.id=pingconfig.domainid WHERE domainPinglog.configId IS NULL AND domains.deleted IS NULL "); + searchNeededPings = DatabaseConnection.getInstance().prepare("SELECT pingconfig.*, domains.domain, domains.memid FROM pingconfig LEFT JOIN domainPinglog ON domainPinglog.configId=pingconfig.id INNER JOIN domains ON domains.id=pingconfig.domainid WHERE ( pingconfig.reping='y' OR domainPinglog.configId IS NULL) AND domains.deleted IS NULL GROUP BY pingconfig.id"); enterPingResult = DatabaseConnection.getInstance().prepare("INSERT INTO domainPinglog SET configId=?, state=?, result=?, challenge=?"); + updatePingStatus = DatabaseConnection.getInstance().prepare("UPDATE pingconfig SET reping='n' WHERE id=?"); pingers.put("email", new EmailPinger()); pingers.put("ssl", new SSLPinger(truststore)); pingers.put("http", new HTTPFetch()); @@ -63,6 +65,8 @@ public class PingerDaemon extends Thread { token = RandomToken.generateToken(16); config = config + ":" + token; } + updatePingStatus.setInt(1, rs.getInt("id")); + updatePingStatus.execute(); enterPingResult.setInt(1, rs.getInt("id")); String resp = dp.ping(Domain.getById(rs.getInt("domainid")), config, User.getById(rs.getInt("memid"))); enterPingResult.setString(2, DomainPinger.PING_STILL_PENDING == resp ? "open" : DomainPinger.PING_SUCCEDED.equals(resp) ? "success" : "failed"); @@ -73,5 +77,4 @@ public class PingerDaemon extends Thread { } } - public void requestReping(DomainPingConfiguration dpc) {} }