Freeradius sql_counter:分享账号

时间:2012-06-12 09:00:20

标签: sql counter session-timeout freeradius

我正在使用freeradius sqlcounter模块。我将帐户的Max-All-Session设置为180秒,因此用户将在超时时注销。当有两个用户使用此帐户时,如果两个用户的访问时间总和达到180秒,我想让他们退出。但是,它们都有180秒。我尝试了以下配置,query将返回帐户的总访问时间。 IFZERO(a,b)函数返回a,如果a == 0,则返回b。但它没有用。我也想知道,因为在设置query之前,原始0始终返回acctsessiontime,该模块如何知道超时发生?

#/etc/freeradius/sql/mysql/counter.conf
sqlcounter noresetcounter {
    counter-name = Max-All-Session-Time 
            check-name = Max-All-Session 
            sqlmod-inst = sql 
            key = User-Name 
            reset = never 
    #query = "SELECT IFNULL(SUM(AcctSessionTime),0) FROM radacct WHERE UserName='%{%k}'" <= origin one
    query = "SELECT IFZERO(SUM(IFZERO(AcctSessionTime, NOW() - acctstarttime)),0) FROM radacct WHERE UserName='%{%k}'" 
} 

0 个答案:

没有答案