[EMAIL PROTECTED] a écrit : >> So In the authorize section i tried to add an update directive where i >> define a variable which has the result of the sql query as value. >> Then i want to concatenate this variable with the value of the Pool-Name >> attribute as defined in the users file and set it as the new value of >> Pool-Name. I think this would work for what i want to do. >> >> update control { >> "%{MANA-DSL-Type}" = mysqldb:"SELECT value FROM radcheck >> WHERE attribute='Subscription-Type' AND username='%{User-Name}'" >> if ("%{MANA-DSL-Type}") { >> Pool-Name := "%{Pool-Name}""%{ADSL-Type}" >> } >> } >> >> > > Ugh. > >
I knew you was going to said that :) > 1. Forget custom dictionaries. Use already defined temporary attributes > from freeradius internal dictionary (ie. Tmp-String-0,..., > Tmp-Integer-0, ... etc.) > > good > 2. "%{}" goes around the value not attribute name: > > Tmp-String-0 = "%{mysqldb:SELECT value FROM...}" > understood > 3. You can't put if inside the control section. You can put update > control inside if section. > > update control { > read temporary value from the database > } > > if(whatever) { > update control { ... > ok here is what i have now: # I want the pool to be the concatenation of pool-name as previously set by huntgroup in # users file, the expanded value of tmp-String-0 and the string "_pool" if possible update control { Tmp-String-0 = "%{mysqldb:SELECT forfait FROM test WHERE username='%{User-Name}'}" Pool-Name := "%{Pool-Name}""%{Tmp-String-0}"_pool } Two problems I can see in the debug output: - 1 - control returns noop (the update control is placed at the end ofthe authorize section after pap), and so nothing happens... - 2 - when expanded "%{Pool-Name}" is empty whereas users as been proceed before the "update control". Any idea? here is the revelant debug: rlm_sql (mysqldb): - sql_xlat expand: %{User-Name} -> scott rlm_sql (mysqldb): sql_set_user escaped user --> 'scott' expand: SELECT forfait FROM test WHERE username='%{User-Name}' -> SELECT forfait FROM test WHERE username='scott' expand: /var/log/freeradius/sqltrace.sql -> /var/log/freeradius/sqltrace.sql rlm_sql (mysqldb): Reserving sql socket id: 4 rlm_sql_mysql: query: SELECT forfait FROM test WHERE username='scott' rlm_sql (mysqldb): - sql_xlat finished rlm_sql (mysqldb): Released sql socket id: 4 expand: %{mysqldb:SELECT forfait FROM test WHERE username='%{User-Name}'} -> ADSL512 expand: %{Pool-Name} -> ++[control] returns noop > Ivan Kalik > Kalik Informatika ISP > > - > List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html > >
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html