Support 64bit values (Over 4GB of traffic)
authorpnixon <pnixon>
Fri, 13 Jul 2007 10:33:23 +0000 (10:33 +0000)
committerpnixon <pnixon>
Fri, 13 Jul 2007 10:33:23 +0000 (10:33 +0000)
raddb/oraclesql.conf
raddb/sql.conf

index ebbc7b7..48b6080 100644 (file)
@@ -148,23 +148,55 @@ sql {
 accounting_update_query = "UPDATE ${acct_table1} \
     SET FramedIPAddress = NULLIF('%{Framed-IP-Address}', ''), \
     AcctSessionTime = '%{Acct-Session-Time}', \
-    AcctInputOctets = '%{Acct-Input-Octets}', \
-    AcctOutputOctets = '%{Acct-Output-Octets}' \
+    AcctInputOctets     = '%{%{Acct-Input-Gigawords}:-0}'  << 32 | \
+                          '%{%{Acct-Input-Octets}:-0}', \
+    AcctOutputOctets    = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+                          '%{%{Acct-Output-Octets}:-0}' \
     WHERE \
     AcctSessionId = '%{Acct-Session-Id}' AND \
     UserName = '%{SQL-User-Name}' AND \
     NASIPAddress= '%{NAS-IP-Address}' AND \
     AcctStopTime IS NULL" 
 
-       accounting_update_query_alt = "INSERT into ${acct_table1} (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay) values('', '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port-Id}', '%{NAS-Port-Type}', NULL, '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')"
+accounting_update_query_alt = "INSERT into ${acct_table1} (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay) \
+    VALUES('', '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
+    '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port-Id}', \
+    '%{NAS-Port-Type}', NULL, '%{Acct-Session-Time}', '%{Acct-Authentic}', '', \
+    '%{%{Acct-Input-Gigawords}:-0}' << 32 | '%{%{Acct-Input-Octets}:-0}', \
+    '%{%{Acct-Output-Gigawords}:-0}' << 32 | '%{%{Acct-Output-Octets}:-0}', \
+    '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', \
+    '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')"
 
        accounting_start_query = "INSERT into ${acct_table1} (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('', '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port-Id}', '%{NAS-Port-Type}', TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), NULL, '0', '%{Acct-Authentic}', '%{Connect-Info}', '', '0', '0', '%{Called-Station-Id}', '%{Calling-Station-Id}', '', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')"
 
-       accounting_start_query_alt  = "UPDATE ${acct_table1} SET AcctStartTime = TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}' AND AcctStopTime IS NULL"
+accounting_start_query_alt  = "UPDATE ${acct_table1} SET AcctStartTime = TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}' AND AcctStopTime IS NULL"
 
-       accounting_stop_query = "UPDATE ${acct_table2} SET AcctStopTime = TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}', AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}' AND AcctStopTime IS NULL"
-
-       accounting_stop_query_alt = "INSERT into ${acct_table2} (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('', '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port-Id}', '%{NAS-Port-Type}', NULL, TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Connect-Info}', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')"
+accounting_stop_query = "UPDATE ${acct_table2} \
+    SET AcctStopTime = TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), \
+    AcctSessionTime = '%{Acct-Session-Time}', \
+    AcctInputOctets     = '%{%{Acct-Input-Gigawords}:-0}'  << 32 | \
+                          '%{%{Acct-Input-Octets}:-0}', \
+    AcctOutputOctets    = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+                          '%{%{Acct-Output-Octets}:-0}' \
+    AcctTerminateCause = '%{Acct-Terminate-Cause}', \
+    AcctStopDelay = '%{Acct-Delay-Time}', \
+    ConnectInfo_stop = '%{Connect-Info}' \
+    WHERE AcctSessionId = '%{Acct-Session-Id}' \
+    AND UserName = '%{SQL-User-Name}' \
+    AND NASIPAddress = '%{NAS-IP-Address}' \
+    AND AcctStopTime IS NULL"
+
+accounting_stop_query_alt = "INSERT into ${acct_table2} \
+    (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) \
+    VALUES('', '%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
+    '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port-Id}', \
+    '%{NAS-Port-Type}', NULL, TO_DATE('%S','yyyy-mm-dd hh24:mi:ss'), \
+    '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Connect-Info}', \
+    '%{%{Acct-Input-Gigawords}:-0}' << 32 | '%{%{Acct-Input-Octets}:-0}', \
+    '%{%{Acct-Output-Gigawords}:-0}' << 32 | '%{%{Acct-Output-Octets}:-0}', \
+    '%{Called-Station-Id}', '%{Calling-Station-Id}', \
+    '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}', \
+    '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')"
 
        #######################################################################
        # Simultaneous Use Checking Queries
index 9c576ab..99f0194 100644 (file)
@@ -171,24 +171,84 @@ sql {
        #######################################################################
        accounting_onoff_query = "UPDATE ${acct_table1} SET AcctStopTime='%S', AcctSessionTime=unix_timestamp('%S') - unix_timestamp(AcctStartTime), AcctTerminateCause='%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}' WHERE AcctSessionTime=0 AND AcctStopTime=0 AND NASIPAddress= '%{NAS-IP-Address}' AND AcctStartTime <= '%S'"
 
-       accounting_update_query = "UPDATE ${acct_table1} \
-          SET FramedIPAddress = '%{Framed-IP-Address}', \
-          AcctSessionTime = '%{Acct-Session-Time}', \
-          AcctInputOctets = '%{Acct-Input-Octets}', \
-          AcctOutputOctets = '%{Acct-Output-Octets}' \
+        accounting_update_query = " \
+          UPDATE ${acct_table1} \
+          SET \
+             FramedIPAddress = '%{Framed-IP-Address}', \
+             AcctSessionTime     = '%{Acct-Session-Time}', \
+             AcctInputOctets     = '%{%{Acct-Input-Gigawords}:-0}'  << 32 | \
+                                   '%{%{Acct-Input-Octets}:-0}', \
+             AcctOutputOctets    = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+                                   '%{%{Acct-Output-Octets}:-0}' \
           WHERE AcctSessionId = '%{Acct-Session-Id}' \
-          AND UserName = '%{SQL-User-Name}' \
-          AND NASIPAddress= '%{NAS-IP-Address}'"
+          AND UserName        = '%{SQL-User-Name}' \
+          AND NASIPAddress    = '%{NAS-IP-Address}'"
+
+
+        accounting_update_query = " \
+          UPDATE ${acct_table1} \
+          SET \
+             FramedIPAddress = '%{Framed-IP-Address}', \
+             AcctSessionTime     = '%{Acct-Session-Time}', \
+             AcctInputOctets     = '%{%{Acct-Input-Gigawords}:-0}'  << 32 | \
+                                   '%{%{Acct-Input-Octets}:-0}', \
+             AcctOutputOctets    = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+                                   '%{%{Acct-Output-Octets}:-0}' \
+          WHERE AcctSessionId = '%{Acct-Session-Id}' \
+          AND UserName        = '%{SQL-User-Name}' \
+          AND NASIPAddress    = '%{NAS-IP-Address}'"
 
-       accounting_update_query_alt = "INSERT into ${acct_table1} (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S',INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')"
 
        accounting_start_query = "INSERT into ${acct_table1} (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', '%S', '0', '0', '%{Acct-Authentic}', '%{Connect-Info}', '', '0', '0', '%{Called-Station-Id}', '%{Calling-Station-Id}', '', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')"
 
        accounting_start_query_alt  = "UPDATE ${acct_table1} SET AcctStartTime = '%S', AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'"
 
-       accounting_stop_query = "UPDATE ${acct_table2} SET AcctStopTime = '%S', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}', AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'"
 
-       accounting_stop_query_alt = "INSERT into ${acct_table2} (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S', INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Connect-Info}', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')"
+        accounting_stop_query = " \
+          UPDATE ${acct_table2} SET \
+             AcctStopTime       = '%S', \
+             AcctSessionTime    = '%{Acct-Session-Time}', \
+             AcctInputOctets    = '%{%{Acct-Input-Gigawords}:-0}' << 32 | \
+                                  '%{%{Acct-Input-Octets}:-0}', \
+             AcctOutputOctets   = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+                                  '%{%{Acct-Output-Octets}:-0}', \
+             AcctTerminateCause = '%{Acct-Terminate-Cause}', \
+             AcctStopDelay      = '%{%{Acct-Delay-Time}:-0}', \
+             ConnectInfo_stop   = '%{Connect-Info}' \
+          WHERE AcctSessionId   = '%{Acct-Session-Id}' \
+          AND UserName          = '%{SQL-User-Name}' \
+          AND NASIPAddress      = '%{NAS-IP-Address}'"
+
+
+        accounting_stop_query_alt = " \
+          INSERT INTO ${acct_table2} \
+            (AcctSessionId, AcctUniqueId, UserName, \
+             Realm, NASIPAddress, NASPortId, \
+             NASPortType, AcctStartTime, AcctStopTime, \
+             AcctSessionTime, AcctAuthentic, ConnectInfo_start, \
+             ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, \
+             CalledStationId, CallingStationId, AcctTerminateCause, \
+             ServiceType, FramedProtocol, FramedIPAddress, \
+             AcctStartDelay, AcctStopDelay) \
+          VALUES \
+            ('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
+             '%{SQL-User-Name}', \
+             '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', \
+             '%{NAS-Port-Type}', \
+             DATE_SUB('%S', \
+                 INTERVAL (%{%{Acct-Session-Time}:-0} + \
+                 %{%{Acct-Delay-Time}:-0}) SECOND), \
+             '%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '', \
+             '%{Connect-Info}', \
+             '%{%{Acct-Input-Gigawords}:-0}' << 32 | \
+             '%{%{Acct-Input-Octets}:-0}', \
+             '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
+             '%{%{Acct-Output-Octets}:-0}', \
+             '%{Called-Station-Id}', '%{Calling-Station-Id}', \
+             '%{Acct-Terminate-Cause}', \
+             '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', \
+             '0', '%{%{Acct-Delay-Time}:-0}')"
+
 
        #######################################################################
        # Simultaneous Use Checking Queries