rlm_sqlcounter: Max-Daily-Session.

Russell Mike radius.sir at gmail.com
Tue May 13 10:36:51 CEST 2014


it is important to take your time, look and work carefully. i sent you
correct counter but you did not use it. I can still see wrong query in your
"dailycounter" file, use this counter. i also indicated in my mail earlier
that there is something wrong in the query. You did not check it ? compare
with my email i sent earlier ? this is not good. Put your little efforts as
well before you can solve this problem.

sqlcounter dailycounter{
    counter_name = "Daily-Session-Time"
        check_name = "Max-Daily-Session"
        reply_name = "Session-Timeout"
    sql_module_instance = "sql"
        key = "User-Name"
        reset = "daily"
        cache-size = 5000
        query = "SELECT IFNULL(TIME_TO_SEC(TIMEDIFF(NOW(),
MIN(AcctStartTime))),0) FROM radacct WHERE UserName='%{%k}' ORDER BY
AcctStartTime LIMIT 1;"
}

Thanks / --RM


On Tue, May 13, 2014 at 8:08 AM, * <zhex900 at gmail.com> wrote:

> I checked, it is in one line. I have attached the sqlcounter file.
>
> Jake He
>
>
> On Tue, May 13, 2014 at 3:55 PM, Russell Mike <radius.sir at gmail.com>wrote:
>
>> Hi
>>
>>
>> On Tue, May 13, 2014 at 1:31 AM, * <zhex900 at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I followed your instructions. Now I get the following errors:
>>>
>>> (2)   [-sql] = ok
>>> (2)   [expiration] = noop
>>> (2)   [logintime] = noop
>>> (2) WARNING: pap : Auth-Type already set.  Not setting to PAP
>>> (2)   [pap] = noop
>>> (2) dailycounter : Entering module authorize code
>>> (2) ERROR: dailycounter : %{sql:SELECT SUM(acctsessiontime) FROM radacct
>>> WHERE username = '%{User-Name}' AND acctstarttime BETWEEN
>>> FROM_UNIXTIME('%b') AND FROM_UNIXTIME('%e')}
>>> (2) ERROR: dailycounter :
>>>                                                                           ^
>>> Invalid variable expansion
>>> (2)   [dailycounter] = fail
>>> (2)  } #  authorize = fail
>>> (2) Using Post-Auth-Type Reject
>>>
>>> /etc/freeradius/mods-enabled/sqlcounter
>>>
>>> sqlcounter dailycounter{
>>>         counter_name = "Daily-Session-Time"
>>>         check_name = "Max-Daily-Session"
>>>         reply_name = "Session-Timeout"
>>>         sql_module_instance = "sql"
>>>         key = "User-Name"
>>>         reset = "daily"
>>>         cache-size = 5000
>>>         query = "SELECT SUM(acctsessiontime) FROM radacct WHERE username
>>> = '%{${
>>> key}}' AND acctstarttime BETWEEN FROM_UNIXTIME('%b') AND
>>> FROM_UNIXTIME('%e')"
>>> }
>>>
>>> Could you please make sure if the above query is in one line or use "\"
>>> to break the line. it is indicating some wrong expression in the query.
>>> carefully check your daily counter. it would work.
>>>
>>> On Mon, May 12, 2014 at 11:27 PM, Russell Mike <radius.sir at gmail.com>wrote:
>>>
>>>> Do the following
>>>>
>>>>
>>>> STEP 1:
>>>>
>>>> nano counters.conf
>>>>
>>>> sqlcounter dailycounter {
>>>>
>>>>                 counter-name = "Daily-Session-Time"
>>>>
>>>>                 check-name = "Max-Daily-Session"
>>>>
>>>>                 reply-name = "Session-Timeout"
>>>>
>>>>                 sqlmod-inst = "sql"
>>>>
>>>>                 key = "User-Name"
>>>>
>>>>                 reset = "daily"
>>>>
>>>>                 cache-size = 5000
>>>>
>>>>                 query = "SELECT SUM(acctsessiontime) FROM radacct WHERE
>>>> username = '%{%k}' AND acctstarttime BETWEEN FROM_UNIXTIME('%b') AND
>>>> FROM_UNIXTIME('%e')"
>>>>
>>>> }
>>>>
>>>>
>>>> STEP 2:
>>>>
>>>> nano radiusd.conf
>>>>
>>>> instantiate {
>>>>
>>>>         dailycounter
>>>>
>>>> }
>>>>
>>>>
>>>> STEP 3:
>>>>
>>>> nano sites-available/default
>>>>
>>>> authorize {
>>>>
>>>>  dailycounter
>>>>
>>>> }
>>>>
>>>> STEP 4:
>>>>
>>>> accounting {
>>>>
>>>> sql
>>>>
>>>> }
>>>>
>>>> STEP 5: LOOK, THIS MUST BE *CHECK & REPLY* ITEM NOT CHECK ONLY. BOB IS
>>>> ALLOWED FOR 60 MINUTES, VALUE IS IN SECONDS.
>>>>
>>>> Max-Daily-Session := 3600
>>>>
>>>>
>>>> STEP 6: Restart Radius Daemon
>>>> RM --
>>>>
>>>>
>>>> On Mon, May 12, 2014 at 11:28 AM, * <zhex900 at gmail.com> wrote:
>>>>
>>>>>  Hi,
>>>>>
>>>>> I have to follow this tutorial to get the the session limit working.
>>>>> But looking at the debug output it seems the sql counter is not executed.
>>>>> No Session-Timeout is sent to NAS as well.
>>>>>
>>>>> Accounting is working fine. I can see all the accounting information
>>>>> radacct time.
>>>>>
>>>>> Here is my configuration. Please let me know if I should provide more
>>>>> information.
>>>>>
>>>>> Jake He
>>>>>
>>>>> FreeRADIUS V. 3
>>>>>
>>>>> mods-enabled/sqlcounter
>>>>>
>>>>> sqlcounter noresetcounter {
>>>>>         sql_module_instance = sql
>>>>>         #dialect = ${sql_module_instance}.dialect
>>>>>         dialect = mysql
>>>>>         counter_name = Daily-Session-Time
>>>>>         check_name = Max-Daily-Session
>>>>>         reply_name = Session-Timeout
>>>>>         key = User-Name
>>>>>         reset = never
>>>>>         query = “SELECT SUM(AcctSessionTime) FROM radacct where
>>>>> UserName=’%{%k}’”
>>>>> }
>>>>>
>>>>> sites-enabled/default:
>>>>>
>>>>> authorize {
>>>>>
>>>>> preprocess
>>>>> chap
>>>>> mschap
>>>>> suffix
>>>>> eap
>>>>> files
>>>>> sql
>>>>> pap
>>>>> noresetcounter
>>>>> }
>>>>>
>>>>> radcheck:
>>>>> Max-Daily-Session:=60 for the user bob
>>>>>
>>>>> -
>>>>> List info/subscribe/unsubscribe? See
>>>>> http://www.freeradius.org/list/users.html
>>>>>
>>>>
>>>>
>>>> -
>>>> List info/subscribe/unsubscribe? See
>>>> http://www.freeradius.org/list/users.html
>>>>
>>>
>>>
>>> -
>>> List info/subscribe/unsubscribe? See
>>> http://www.freeradius.org/list/users.html
>>>
>>
>>
>> -
>> List info/subscribe/unsubscribe? See
>> http://www.freeradius.org/list/users.html
>>
>
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20140513/d6c33505/attachment-0001.html>


More information about the Freeradius-Users mailing list