-----Original Message----- From: freeradius-users-bounces+frank.ranner=defence.gov.au@lists.fre eradius.org [mailto:freeradius-users-bounces+frank.ranner=defence.gov.au@l ists.freeradius.org] On Behalf Of Mother Sent: Sunday, 16 December 2007 06:28 To: freeradius-users@lists.freeradius.org Subject: Problem using Freeradius with Oracle
Hi all,
My setup is FreeBSD 6.2, with Freeradius 1.1.7 installed using Ports (I had to hack the configure so it would be built with Oracle, as there is no option in the Ports make, but I digress...).
I have everything working now, but when the accounting stop message is received, the SQL call causes Oracle to balk. The call (with non-relevant portions removed) is:
UPDATE radacct SET ... AcctInputOctets = '0' << 32 | '0', AcctOutputOctets = '0' << 32 | '0', ... WHERE ...
Now, Acc[input/output]Octets as I see in oraclesql.conf is derived like this:
AcctInputOctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | '%{%{Acct-Input-Octets}:-0}'
So it seems (AFAIK) that it's attempting to bit-shift the Gigawords and Octets received from the NAS.
Oracle doesn't seem to do bit shift. You can multiply by 2^32 instead. AcctInputOctets = '%{%{Acct-Input-Gigawords}:-0}' * 4294967296 + '%{%{Acct-Input-Octets}:-0}' Oracle supports up to 38 digit numbers. Regards Frank Ranner