From cf349b192ffc710c9054d21073fad2da65fba9f2 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 25 May 2021 11:18:27 +0200 Subject: [PATCH] ET-Pro Telemetry - prevent old data from being flushed to Proofpoint when the state got lost or the script hasn't executed for a longer period of time. --- security/etpro-telemetry/Makefile | 2 +- .../opnsense/scripts/etpro_telemetry/send_telemetry.py | 2 +- .../opnsense/scripts/etpro_telemetry/telemetry/state.py | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/security/etpro-telemetry/Makefile b/security/etpro-telemetry/Makefile index 6c41f6a7c..6c596634b 100644 --- a/security/etpro-telemetry/Makefile +++ b/security/etpro-telemetry/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= etpro-telemetry -PLUGIN_VERSION= 1.4 +PLUGIN_VERSION= 1.5 PLUGIN_REVISION= 2 PLUGIN_COMMENT= ET Pro Telemetry Edition PLUGIN_MAINTAINER= ad@opnsense.org diff --git a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/send_telemetry.py b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/send_telemetry.py index 7ee104393..dea1240b7 100755 --- a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/send_telemetry.py +++ b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/send_telemetry.py @@ -51,7 +51,7 @@ parser.add_argument('-l', '--log', help='log directory containing eve.json files default="/var/log/suricata/") parser.add_argument('-s', '--state', help='persistent state (and lock) filename', default="/usr/local/var/run/et_telemetry.state") -parser.add_argument('-d', '--days', help='Maximum number of days to look back on initial run', type=int, default=2) +parser.add_argument('-d', '--days', help='Maximum number of days to look back', type=float, default=1) parser.add_argument('-D', '--direct', help='do not sleep before send (disable traffic spread)', action="store_true", diff --git a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/state.py b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/state.py index 40df17ae9..8303f1535 100755 --- a/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/state.py +++ b/security/etpro-telemetry/src/opnsense/scripts/etpro_telemetry/telemetry/state.py @@ -46,12 +46,14 @@ class Telemetry: :return: datetime """ self._file_handle.seek(0) + file_handle_stamp = None + max_age = datetime.datetime.now() - datetime.timedelta(days=self._init_last_days) try: - result = datetime.datetime.fromtimestamp(float(self._file_handle.readline())) + file_handle_stamp = datetime.datetime.fromtimestamp(float(self._file_handle.readline())) except ValueError: - result = datetime.datetime.now() - datetime.timedelta(days=self._init_last_days) + return max_age - return result + return max(file_handle_stamp, max_age) def set_last_update(self, stamp): """ set last timestamp