On 27/02/18 14:09, Alan DeKok wrote:
That makes a BIG difference. Which means that the speed of running Perl or Python code itself doesn't matter, since Python spends most of it's time waiting for a lock.
So for anything that might scale to lots of users - perl is the way to go.
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.
Sounds, err, interesting....
And if you're sending email, you're MUCH better off doing that out of band. i.e. have FR write the information to a file / DB, etc. Then, another process can read that file and send the email.
Sending the email fro Python code inside of FreeRADIUS means that your RADIUS server will go down as soon as there's a problem with email.
Right.... seems to have worked reasonably well with the exec module but I guess that's because it's in another process.