Recently I decided to move the users from ldap to a db, where accounting is already being stored. After populating the tables, apropiately modifying radiusd.conf and rechecking it was all correct I found this error which has showed up in the list before:
> rlm_sql: Pairs do not match [test1] > rlm_sql: Released sql socket id: 3 > modcall[authorize]: module "sql" returns notfound > modcall: group authorize returns ok > auth: No authenticate method (Auth-Type) configuration found for the request: > Rejecting the user > auth: Failed to validate the user. The problem is that the queries in authorize_check_query and authorize_reply_query do not bring by default the operator present in the table, thus forcing the server to use ==. By using this default operator, the behaviour goes "see if there are already attributes in the check (or reply) list with this values" instead of the intended "add this attributes/values to the check (or reply) list". That is why the sometimes proposed solution "change the operator to := instead of ==" does not work; anyway the queries are not bringing it in. Adding Op to the list of columns selected in both queries solves the problem. My 2 cents. P.D. From the latest CVS version, this issue has been solved for mssql and mysql but postgresql.conf still is incorrect. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
