R: Sql Counter reads only the first 4 digits
Mauro Iorio - Smart Soft s.r.l.
m.iorio at smartsoft.it
Wed May 20 14:44:10 CEST 2009
>
> What happens when you replace that SELECT statement with a hard-coded
> number, like 123456? Does it still truncate the result?
>
> Alan DeKok.
>
Yes, it does. Check the following output:
-----------------------------------------
rlm_sqlcounter: Entering module authorize code
sqlcounter_expand: 'SELECT 123456 FROM radacct WHERE
UserName='%{User-Name}''
[sessioncounter] expand: SELECT 123456 FROM radacct WHERE
UserName='%{Use
r-Name}' -> SELECT 123456 FROM radacct WHERE UserName='mauro'
sqlcounter_expand: '%{sql:SELECT 123456 FROM radacct WHERE
UserName='mauro'}'
[sessioncounter] sql_xlat
[sessioncounter] expand: %{User-Name} -> mauro
[sessioncounter] sql_set_user escaped user --> 'mauro'
[sessioncounter] expand: SELECT 123456 FROM radacct WHERE
UserName='mauro
' -> SELECT 123456 FROM radacct WHERE UserName='mauro'
[sessioncounter] expand: /usr/var/log/radius/sqltrace.sql ->
/usr/var/log
/radius/sqltrace.sql
rlm_sql (sql): Reserving sql socket id: 3
query: SELECT 123456 FROM radacct WHERE UserName='mauro'
[sessioncounter] sql_xlat finished
rlm_sql (sql): Released sql socket id: 3
[sessioncounter] expand: %{sql:SELECT 123456 FROM radacct WHERE
UserName=
'mauro'} -> 1234
rlm_sqlcounter: Check item is greater than query result
rlm_sqlcounter: Authorized user mauro, check_item=3600, counter=1234
rlm_sqlcounter: Sent Reply-Item for user mauro, Type=Session-Timeout,
value=2366
++[sessioncounter] returns ok
WARNING: Please update your configuration, and remove 'Auth-Type = Local'
WARNING: Use the PAP or CHAP modules instead.
User-Password in the request is correct.
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 213 to 192.168.4.203 port 44967
Session-Timeout = 2366
Finished request 0.
-----------------------------------------
But when I use isql or tsql tools and runs the same query I get (since I
have 12 records in radacct):
SQL> select 123456 from radacct where username = 'mauro'
+------------+
| |
+------------+
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
| 123456 |
+------------+
SQLRowCount returns 12
12 rows fetched
So I think everything about unixodbc drivers is working properly.
Mauro Iorio.
More information about the Freeradius-Users
mailing list