From f5f4835b743a4119517937083de80979d9fc29e1 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Wed, 27 Oct 2021 16:03:16 +0800 Subject: [PATCH] [certificate notification] clear sent history if the cert is changed --- server/model/monitor.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/model/monitor.js b/server/model/monitor.js index 01d0a1f5..7f56cd42 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -455,6 +455,27 @@ class Monitor extends BeanModel { tls_info_bean = R.dispense("monitor_tls_info"); tls_info_bean.monitor_id = this.id; } + + // Clear sent history if the cert changed. + let oldCertInfo = JSON.parse(tls_info_bean.info_json); + + let isValidObjects = oldCertInfo && oldCertInfo.certInfo && checkCertificateResult && checkCertificateResult.certInfo; + + if (isValidObjects) { + if (oldCertInfo.certInfo.fingerprint256 !== checkCertificateResult.certInfo.fingerprint256) { + debug("Resetting sent_history"); + await R.exec("DELETE FROM notification_sent_history WHERE type = 'certificate' AND monitor_id = ?", [ + this.id + ]); + } else { + debug("No need to reset sent_history"); + debug(oldCertInfo.certInfo.fingerprint256); + debug(checkCertificateResult.certInfo.fingerprint256); + } + } else { + debug("Not valid object"); + } + tls_info_bean.info_json = JSON.stringify(checkCertificateResult); await R.store(tls_info_bean);