Strangeness in work 'radgroup_check_query' through 'rlm_sql_unixodbc'
vanish
vanishox at coltel.ru
Tue Jan 12 11:36:18 CET 2016
Hello, need help.
1. i have a test-machine with Ubuntu 14.04, Freeradius-server v2.1.12
and Informix Database Server v 10.00.
2. i use rlm_sql_unixodbc to connect Informix server.
3. When freeradius sends next simple request in Informix:
group_membership_query = "select 'simult' groupname from TABLE(SET {1})"
gets the answer:
- rlm_sql_unixodbc: 07009 [unixODBC][Informix][Informix
ODBC Driver]Invalid descriptor index.
This request works in isql:
SQL> select 'simult' groupname from TABLE(SET {1});
+----------+
| groupname|
+----------+
| simul |
+----------+
4. Here the debug with '-X' option:
Ready to process requests.
rad_recv: Access-Request packet from host 10.10.10.10 port 47385,
id=240, length=58
User-Name = "test"
CHAP-Password = 0xf05090f9d0fd90909fdfdg112
Framed-Protocol = PPP
# Executing section authorize from
file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++? if (Framed-Protocol == PPP)
? Evaluating (Framed-Protocol == PPP) -> TRUE
++? if (Framed-Protocol == PPP) -> TRUE
++- entering if (Framed-Protocol == PPP) {...}
[chap] Setting 'Auth-Type := CHAP'
+++[chap] returns ok
++- if (Framed-Protocol == PPP) returns ok
++[mschap] returns noop
[sql] expand: %{User-Name} -> test
[sql] sql_set_user escaped user --> 'test'
rlm_sql (sql): Reserving sql socket id: 3
[sql] expand: SELECT first 1 1 id, '%{SQL-User-Name}' username,
'Password' attribute, trim(p.password) value, '==' op FROM acc a inner
join details p on a.acc_id = p.acc_id WHERE username =
'%{SQL-User-Name}'
->
SELECT first 1 1 id, 'test' username, 'Password' attribute,
trim(p.password) value, '==' op FROM acc a inner join details p on
a.acc_id = p.acc_id WHERE username = 'test'
WARNING: Found User-Password == "...".
WARNING: Are you sure you don't mean Cleartext-Password?
WARNING: See "man rlm_pap" for more information.
[sql] User found in radcheck table
[sql] expand: select 1 id, a.control username, 'Cisco-Account-Info'
attribute, r.value value, '=' op from acc a inner join acc_b b on
a.acc_id = b.acc_id inner join tq_p tp on tp.id = a.tq_p_id
............... and so on...............
[sql] expand: select 'simult' groupname from TABLE(SET {1}) -> select
'simult' groupname from TABLE(SET {1})
rlm_sql_unixodbc: 07009 [unixODBC][Informix][Informix ODBC
Driver]Invalid descriptor index. <---- Problem !!!!
rlm_sql (sql): Released sql socket id: 3
............... and so on...............
5. Others sql queries from dialup.conf such as:
- nas_query
- authorize_check_query
- authorize_reply_query
works well.
6. Is this bug only for group_membership_query? Does anyone experienced
this ?
--
============================================
С уважением, Богучарский Иван Владимирович.
Начальник СУТС ОРЭТС и ШПД ЗАО "Коламбия-Телеком".
тел. 8-937-084-25-89.
More information about the Freeradius-Users
mailing list