- IED server: improved accuracy of integrity report intervals

pull/347/head
Michael Zillgith 4 years ago
parent bb64d9d8fe
commit c5579758bb

@ -3287,6 +3287,7 @@ processEventsForReport(ReportControl* rc, uint64_t currentTimeInMs)
if (rc->triggerOps & TRG_OPT_INTEGRITY) {
if (rc->intgPd > 0) {
if (currentTimeInMs >= rc->nextIntgReportTime) {
/* send current events in event buffer before integrity report */
@ -3295,12 +3296,24 @@ processEventsForReport(ReportControl* rc, uint64_t currentTimeInMs)
rc->triggered = false;
}
rc->nextIntgReportTime = currentTimeInMs + rc->intgPd;
rc->nextIntgReportTime = rc->nextIntgReportTime + rc->intgPd;
/* check for system time change effects */
if ((rc->nextIntgReportTime < currentTimeInMs) || (rc->nextIntgReportTime > currentTimeInMs + rc->intgPd)) {
rc->nextIntgReportTime = currentTimeInMs + rc->intgPd;
}
enqueueReport(rc, true, false, currentTimeInMs);
rc->triggered = false;
}
else {
/* check for system time change effects */
if ((rc->nextIntgReportTime < currentTimeInMs) || (rc->nextIntgReportTime > currentTimeInMs + rc->intgPd)) {
rc->nextIntgReportTime = currentTimeInMs + rc->intgPd;
}
}
}
}

Loading…
Cancel
Save