sql_log and Accounting On/Off

Stefan Winter stefan.winter at restena.lu
Fri Aug 10 11:11:23 CEST 2012


Hi,

>> Anyway, adding an example would still be nice :-)
> 
> Submit a patch, or edit the wiki? :D

Here goes a unified diff - took the statement from sql/mysql/dialup.conf.

Greetings,

Stefan Winter

--- sql_log.orig        2012-08-10 11:05:49.690247808 +0200
+++ sql_log     2012-08-10 11:08:51.280864849 +0200
@@ -36,18 +36,42 @@
         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                 \
         ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
         '%{Framed-IP-Address}', '0', '0', '%{Acct-Session-Time}','');"

+       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'""
+
        Post-Auth = "INSERT INTO ${postauth_table}                   \
         (username, pass, reply, authdate) VALUES                    \
         ('%{User-Name}', '%{User-Password:-Chap-Password}',         \



-- 
Stefan WINTER
Ingenieur de Recherche
Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et
de la Recherche
6, rue Richard Coudenhove-Kalergi
L-1359 Luxembourg

Tel: +352 424409 1
Fax: +352 422473

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20120810/3424a84a/attachment.pgp>


More information about the Freeradius-Users mailing list