Add accounting-on / off statements
authorAlan T. DeKok <aland@freeradius.org>
Fri, 10 Aug 2012 09:19:51 +0000 (11:19 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Sat, 11 Aug 2012 07:24:40 +0000 (09:24 +0200)
raddb/mods-available/sql_log

index 81b38d4..3e6bf21 100644 (file)
@@ -41,12 +41,14 @@ sql_log {
         AcctSessionTime, AcctTerminateCause) VALUES                 \
         ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
         '%{Framed-IP-Address}', '%S', '0', '0', '');"
+
        Stop = "INSERT INTO ${acct_table} (AcctSessionId, UserName,  \
         NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
         AcctSessionTime, AcctTerminateCause) VALUES                 \
         ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
         '%{Framed-IP-Address}', '0', '%S', '%{Acct-Session-Time}',  \
         '%{Acct-Terminate-Cause}');"
+
        Alive = "INSERT INTO ${acct_table} (AcctSessionId, UserName, \
         NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
         AcctSessionTime, AcctTerminateCause) VALUES                 \
@@ -64,5 +66,27 @@ sql_log {
         (username, pass, reply, authdate) VALUES                    \
         ('%{User-Name}', '%{User-Password:-Chap-Password}',         \
         '%{reply:Packet-Type}', '%S');"
+
+       Accounting-On = "UPDATE ${acct_table} \
+         SET \
+            acctstoptime       =  '%S', \
+            acctsessiontime    =  unix_timestamp('%S') - \
+                                  unix_timestamp(acctstarttime), \
+            acctterminatecause =  '%{Acct-Terminate-Cause}', \
+            acctstopdelay      =  %{%{Acct-Delay-Time}:-0} \
+         WHERE acctstoptime IS NULL \
+         AND nasipaddress      =  '%{NAS-IP-Address}' \
+         AND acctstarttime     <= '%S'""
+
+       Accounting-Off = "UPDATE ${acct_table} \
+         SET \
+            acctstoptime       =  '%S', \
+            acctsessiontime    =  unix_timestamp('%S') - \
+                                  unix_timestamp(acctstarttime), \
+            acctterminatecause =  '%{Acct-Terminate-Cause}', \
+            acctstopdelay      =  %{%{Acct-Delay-Time}:-0} \
+         WHERE acctstoptime IS NULL \
+         AND nasipaddress      =  '%{NAS-IP-Address}' \
+         AND acctstarttime     <= '%S'""
 }