From: Michael Tremer Date: Wed, 26 Feb 2020 19:21:42 +0000 (+0100) Subject: openvpn: Store connection times in ASCII timestamps X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fopenvpn-analytics;p=people%2Fms%2Fipfire-2.x.git openvpn: Store connection times in ASCII timestamps This format seems to be a lot easier to handle in SQLite queries. Signed-off-by: Michael Tremer --- diff --git a/src/scripts/openvpn-metrics b/src/scripts/openvpn-metrics index 30b3932c5a..ac0cab9095 100755 --- a/src/scripts/openvpn-metrics +++ b/src/scripts/openvpn-metrics @@ -114,8 +114,8 @@ class OpenVPNMetrics(object): db.executescript(""" CREATE TABLE IF NOT EXISTS sessions( common_name TEXT NOT NULL, - connected_at INTEGER NOT NULL, - duration INTEGER, + connected_at TEXT NOT NULL, + disconnected_at TEXT, bytes_received INTEGER, bytes_sent INTEGER ); @@ -144,7 +144,7 @@ class OpenVPNMetrics(object): c = self.db.cursor() c.execute("INSERT INTO sessions(common_name, connected_at) \ - VALUES(?, ?)", (common_name, time_unix)) + VALUES(?, DATETIME(?, 'unixepoch'))", (common_name, time_unix)) self.db.commit() def client_disconnect(self, args): @@ -159,8 +159,9 @@ class OpenVPNMetrics(object): % (common_name, duration, bytes_received, bytes_sent)) c = self.db.cursor() - c.execute("UPDATE sessions SET duration = ?, bytes_received = ?, \ - bytes_sent = ? WHERE common_name = ? AND duration IS NULL", + c.execute("UPDATE sessions SET disconnected_at = DATETIME(connected_at, '+' || ? || ' seconds'), \ + bytes_received = ?, bytes_sent = ? \ + WHERE common_name = ? AND disconnected_at IS NULL", (duration, bytes_received, bytes_sent, common_name)) self.db.commit()