Possible bug in unlang?
Phil Mayers
p.mayers at imperial.ac.uk
Thu Jul 31 15:45:26 CEST 2008
Alan DeKok wrote:
> Phil Mayers wrote:
>> I've had a dig in the guts of radius_xlat (yikes, complex) and done some
>> testing with "user\random" e.g.:
>>
>> update reply {
>> # works
>> My-Attr-1 = "%{User-Name}"
>
> How is that different from %{request:User-Name}, which didn't seem to
> work?
Hmm. That's a good point.
>
>> # fails, "user\random" turns to "user<cr>andom"
>> My-Attr-1 = "%{SQL-User-Name}"
>
> I'd like to see the debug output...
Sure:
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1 port 32938, id=252,
length=41
User-Name = "IC\\rmtw"
NAS-Port = 5060
NAS-IP-Address = 127.0.0.1
+- entering group authorize
expand: %{NAS-IP-Address} -> 127.0.0.1
expand: %{NAS-IP-Address} -> 127.0.0.1
hints: Matched DEFAULT at 35
expand: %{Client-IP-Address} -> 127.0.0.1
expand: %{Client-IP-Address} -> 127.0.0.1
expand: %{Client-IP-Address} -> 127.0.0.1
expand: %{Client-IP-Address} -> 127.0.0.1
expand: %{Client-IP-Address} -> 127.0.0.1
++[preprocess] returns ok
expand: %{User-Name} -> IC\rmtw
WARNING: Deprecated conditional expansion ":-". See "man unlang" for
details
WARNING: Deprecated conditional expansion ":-". See "man unlang" for
details
expand: %{Stripped-User-Name:-%{User-Name:-none}} -> IC\rmtw
rlm_sql (sql): - sql_xlat
WARNING: Deprecated conditional expansion ":-". See "man unlang" for
details
WARNING: Deprecated conditional expansion ":-". See "man unlang" for
details
expand: %{Stripped-User-Name:-%{User-Name:-none}} -> IC\rmtw
rlm_sql (sql): sql_set_user escaped user --> 'IC\rmtw'
expand: select '%{SQL-User-Name}' -> select 'IC=0Dmtww'
rlm_sql (sql): Reserving sql socket id: 31
rlm_sql_postgresql: Status: PGRES_TUPLES_OK
rlm_sql_postgresql: query affected rows = 1 , fields = 1
rlm_sql (sql): - sql_xlat finished
rlm_sql (sql): Released sql socket id: 31
expand: %{sql:select '%{SQL-User-Name}'} -> IC=0Dmtww
++[reply] returns ok
++[control] returns ok
rad_check_password: Found Auth-Type Accept
rad_check_password: Auth-Type = Accept, accepting the user
Sending Access-Accept of id 252 to 127.0.0.1 port 32938
ICzone = "IC\rmtw"
ICbuilding = "IC\rmtw"
ICgroup = "IC=0Dmtww"
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 252 with timestamp +0
Ready to process requests.
Ok, so I'm wrong - looking closer, the radius_xlat inside "sql_set_user"
is definitely succeeding:
rlm_sql (sql): sql_set_user escaped user --> 'IC\rmtw'
...but then the final query which is passed into SQL is wrong:
expand: select '%{SQL-User-Name}' -> select 'IC=0Dmtww'
...so maybe it's the bit that handles xlatname:string?
More information about the Freeradius-Users
mailing list