rlm_sql.c in 2.0.0-pre2
Phil Mayers
p.mayers at imperial.ac.uk
Sat Jul 7 22:39:27 CEST 2007
> You can pull out all rows relating to the groups a user is a member of,
> and process them on the RADIUS server using the group name as a key.
> This could be done in one query if you were feeling adventurous, or
> probably more easily with two.
That's a very reasonable suggestion, and would not I suspect be hard to
code. However, I think it would prevent certain types of dynamic
processing in the SQL side, so it would ideally be an optional
configuration e.g. "bulk_query_groups = yes/no" or something.
> Another possible alternative improvement using the current scheme,would
> be to bring all the rows relating to a group down, then evaluate them,
> and only continue querying if fall-through was true, or the check items
> didn't match.
Good suggestion - but it already does that. See lines 610 (the "for"
loop dependent on the dofallthrough flag being 1) and 665/699 (setting
of the dofallthrough flag based on the per-group Fall-Through reply
items) of rlm_sql.c in todays CVS checkout.
I'm fairly sure the CVS module has done that for months
> >
> Our SQL server is running on the campus webserver, it's horribly
> overloaded and horribly slow.
Then frankly I'm surprised you aren't experiencing more problems
>
> Don't get me wrong, I appreciate you fixing the horribly broken SQL
> code, I was just suggesting some things that might improve efficiency.
I didn't fix it - the only code I've ever contributed to FreeRadius has
been tiny 1-liners in the bug tracker. I was speaking up in support of
whoever did.
More information about the Freeradius-Users
mailing list