Change %{Acct-}*x -> %{%{Acct-}:-0}*x
authorAlan T. DeKok <aland@freeradius.org>
Fri, 7 May 2010 07:18:21 +0000 (09:18 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 11 May 2010 13:44:23 +0000 (15:44 +0200)
This allows the calculation to proceed correctly when the attribute
doesn't exist.  This change was made for other databases, and seems
to have been missed for Oracle

raddb/sql/oracle/dialup.conf

index e0ff5b2..31a45bf 100644 (file)
 accounting_update_query = "UPDATE ${acct_table1} \
     SET FramedIPAddress = NULLIF('%{Framed-IP-Address}', ''), \
     AcctSessionTime = '%{Acct-Session-Time}', \
-    AcctInputOctets = '%{Acct-Input-Octets}' + ('%{Acct-Input-Gigawords}' * 4294967296), \
-    AcctOutputOctets = '%{Acct-Output-Octets}' +  ('%{Acct-Output-Gigawords}' * 4294967296) \
+    AcctInputOctets = '%{Acct-Input-Octets}' + ('%{%{Acct-Input-Gigawords}:-0}' * 4294967296), \
+    AcctOutputOctets = '%{Acct-Output-Octets}' +  ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296) \
     WHERE \
     AcctSessionId = '%{Acct-Session-Id}' AND \
     UserName = '%{SQL-User-Name}' AND \
@@ -113,8 +113,8 @@ accounting_update_query_alt = "INSERT into ${acct_table1} (RadAcctId, AcctSessio
     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-Input-Gigawords}' * 4294967296), \
-    '%{Acct-Output-Octets}' +  ('%{Acct-Output-Gigawords}' * 4294967296), \
+    '%{Acct-Input-Octets}' + ('%{%{Acct-Input-Gigawords}:-0}' * 4294967296), \
+    '%{Acct-Output-Octets}' +  ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296), \
     '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', \
     '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{X-Ascend-Session-Svr-Key}')"
 
@@ -126,8 +126,8 @@ accounting_update_query_alt = "INSERT into ${acct_table1} (RadAcctId, AcctSessio
        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}' + ('%{Acct-Input-Gigawords}' * 4294967296), \
-    AcctOutputOctets = '%{Acct-Output-Octets}' +  ('%{Acct-Output-Gigawords}' * 4294967296), \
+    AcctInputOctets = '%{Acct-Input-Octets}' + ('%{%{Acct-Input-Gigawords}:-0}' * 4294967296), \
+    AcctOutputOctets = '%{Acct-Output-Octets}' +  ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296), \
     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}' AND AcctStopTime IS NULL"
 
        # Optional Query - pnixon
@@ -137,8 +137,8 @@ accounting_stop_query_alt = "INSERT into ${acct_table2} (RadAcctId, AcctSessionI
     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-Input-Gigawords}' * 4294967296), \
-    '%{Acct-Output-Octets}' +  ('%{Acct-Output-Gigawords}' * 4294967296), \
+    '%{Acct-Input-Octets}' + ('%{%{Acct-Input-Gigawords}:-0}' * 4294967296), \
+    '%{Acct-Output-Octets}' +  ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296), \
     '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Acct-Terminate-Cause}', '%{Service-Type}', \
     '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time:-0}')"