]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add AcctUpdateTime and AcctInterval to MS SQL accounting tables
authorNick Porter <nick@portercomputing.co.uk>
Fri, 1 Apr 2022 14:30:22 +0000 (15:30 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Mon, 4 Apr 2022 10:39:50 +0000 (11:39 +0100)
To bring them in line with other databases

raddb/mods-config/sql/main/mssql/queries.conf
raddb/mods-config/sql/main/mssql/schema.sql

index 8eac4177cbe4703f2df4ff5c24739e28482159c8..9b9df1725fbfbfb40fcfbe0aa39c0cf0861c8680 100644 (file)
@@ -222,6 +222,11 @@ accounting {
                        query = "\
                                UPDATE ${....acct_table1} \
                                SET \
+                                       AcctInterval = DATEDIFF(second, CASE WHEN AcctUpdateTime > 0 THEN AcctUpdateTime ELSE AcctStartTime END, ${....event_timestamp}), \
+                                       AcctUpdateTime = ${....event_timestamp}, \
+                                       AcctSessionTime = '%{Acct-Session-Time}', \
+                                       AcctInputOctets = convert(bigint, '%{%{Acct-Input-Gigawords}:-0}' * POWER(2.0, 32)) | '%{%{Acct-Input-Octets}:-0}', \
+                                       AcctOutputOctets = convert(bigint, '%{%{Acct-Output-Gigawords}:-0}' * POWER(2.0, 32)) | '%{%{Acct-Output-Octets}:-0}', \
                                        FramedIPAddress = '%{Framed-IP-Address}', \
                                        FramedIPv6Address = '%{Framed-IPv6-Address}', \
                                        FramedIPv6Prefix = '%{Framed-IPv6-Prefix}', \
@@ -240,6 +245,8 @@ accounting {
                                        NASIPAddress, \
                                        NASPortId, \
                                        NASPortType, \
+                                       AcctStartTime, \
+                                       AcctUpdateTime, \
                                        AcctSessionTime, \
                                        AcctAuthentic, \
                                        ConnectInfo_start, \
@@ -264,6 +271,8 @@ accounting {
                                        '%{NAS-IP-Address}', \
                                        '%{%{NAS-Port-ID}:-%{NAS-Port}}', \
                                        '%{NAS-Port-Type}', \
+                                       ${....event_timestamp}, \
+                                       ${....event_timestamp}, \
                                        '%{Acct-Session-Time}', \
                                        '%{Acct-Authentic}', \
                                        '', \
index 7eeb61ff4a9e6a37a90376c0db0cbfe8156427db..9168e5aa443a18da6a8cbbe1d6ea9b4f51e9d085 100644 (file)
@@ -28,7 +28,9 @@ CREATE TABLE [radacct] (
        [NASPortId] [varchar] (15) NULL,
        [NASPortType] [varchar] (32) NULL,
        [AcctStartTime] [datetime] NOT NULL,
+       [AcctUpdateTime] [datetime] NOT NULL,
        [AcctStopTime] [datetime] NOT NULL,
+       [AcctInterval] [bigint] NULL,
        [AcctSessionTime] [bigint] NULL,
        [AcctAuthentic] [varchar] (32) NULL,
        [ConnectInfo_start] [varchar] (32) NULL,
@@ -61,6 +63,7 @@ ALTER TABLE [radacct] WITH NOCHECK ADD
        CONSTRAINT [DF_radacct_NASPortId] DEFAULT (null) FOR [NASPortId],
        CONSTRAINT [DF_radacct_NASPortType] DEFAULT (null) FOR [NASPortType],
        CONSTRAINT [DF_radacct_AcctStartTime] DEFAULT ('1900-01-01 00:00:00') FOR [AcctStartTime],
+       CONSTRAINT [DF_radacct_AcctUpdateTime] DEFAULT ('1900-01-01 00:00:00') FOR [AcctUpdateTime],
        CONSTRAINT [DF_radacct_AcctStopTime] DEFAULT ('1900-01-01 00:00:00') FOR [AcctStopTime],
        CONSTRAINT [DF_radacct_AcctSessionTime] DEFAULT (null) FOR [AcctSessionTime],
        CONSTRAINT [DF_radacct_AcctAuthentic] DEFAULT (null) FOR [AcctAuthentic],