try appending the following snippet to the end of the SQL statement: ; SELECT COUNT(*) col FROM dual WHERE 1=1; the result is numeric 1 is returned, and the requirement that something must return is satisfied. I believe there may be some other statement you can append instead to "query the result of the last operation", which may be more appropriate, however, I don't know the exact syntax. On 1/14/2011 18:02, Bishal Pun wrote:
Hello Edi, Enclosing sql statement inside empty if gives same error:
if(User-Name){ if("%{sql: UPDATE radacct set AcctStopTime=ADDDATE(AcctStartTime,INTERVAL AcctSessionTime SECOND), AcctTerminateCause='Clear-Stale Session' WHERE UserName='%{User-Name}' and CallingStationId='%{Calling-Station-Id}' and AcctStopTime is NULL}"){ } } Sat Jan 15 07:43:33 2011 : Auth: Login OK: [test] (from client nagios port 0) Sat Jan 15 07:44:47 2011 : Error: rlm_sql_mysql: MYSQL Error: No Fields Sat Jan 15 07:44:47 2011 : Error: rlm_sql_mysql: MYSQL error: Sat Jan 15 07:44:47 2011 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3 Sat Jan 15 07:44:47 2011 : Error: rlm_sql (sql): failed after re-connect
On Fri, Jan 14, 2011 at 6:19 PM, Eddie Stassen <estassen@gmail.com <mailto:estassen@gmail.com>> wrote:
On Fri, Jan 14, 2011 at 1:57 PM, Johan Meiring <jmeiring@pcservices.co.za <mailto:jmeiring@pcservices.co.za>> wrote: > On 2011/01/14 12:50 PM, Bishal Pun wrote: >> >> Alan, >> >> While running that command in mysql it clear the session of user. But >> with >> radius unlang it is giving error in radius log. >> > > I might be wrong, but as far as I know rlm_mysql expects something to come > back from the query. > > Can't think of a solution though unless rlm_mysql will allow somehting like > > "%{sql: SELECT 1; UPDATE radacct set > AcctStopTime=ADDDATE(AcctStartTime,INTERVAL > AcctSessionTime SECOND), AcctTerminateCause='Clear-Stale Session' WHERE > UserName='%{User-Name}' and CallingStationId='%{Calling-Station-Id}' and > AcctStopTime is null}" > > --
Enclosing the UPDATE in an empty 'if' works:
if ("%{sql: UPDATE ...}") { }
That prevents the rlm_sql_mysql module from looking for returned fields.
Eddie
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html