On 02/27/18 14:09, Alan DeKok wrote:
Use the native DB query functions in FreeRADIUS. It's MUCH faster that way.
i.e. do any and all DB queries via "update" sections, and assign the values to temporary attributes. Then, run the *logic* in Python. i.e. have the python code do if / then / else checks, but don't have it to DB connectivity.
Hi, we are trying to pursue this approach. I am trying to figure out how to get multiple values out of the database. I have got this: update control { DL-Device-Vendor := "%{sql:SELECT devicevendor FROM userinfo \ WHERE username='%{request:User-Name}' }" } (NB no line break in reality). working inside a post-auth block inside /etc/freeradius/sites-enabled /default. (In that I run freeradius -X and see the query running in the debug output). Now what I want is to run a longer and more complicated query and set up multiple attributes. (Our current post-auth script pulls some 13 items out of the database). The only thing I have found on this so far is this page on github: https://github.com/FreeRADIUS/freeradius-server/issues/984 So I tried this : map sql "SELECT devicevendor FROM userinfo WHERE \ username='{request:User-Name}'" { XL-Device-Vendor := 'devicevendor' } and got this error: Expecting section start brace '{' after "map sql" (Also tried with 'mysql' rather than 'sql' - which should it be, anyway?) How do I go about this?