blob: 67c7f359de775d876e9f4bcbc23b9a11df9db14d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#
# This query properly handles calls that span from the
# previous reset period into the current period but
# involves more work for the SQL server than those
# below
#
query = "\
SELECT SUM(acctsessiontime - GREATEST((%%b - UNIX_TIMESTAMP(acctstarttime)), 0)) \
FROM radacct \
WHERE username = '%{${key}}' \
AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%%b'"
#
# This query ignores calls that started in a previous
# reset period and continue into into this one. But it
# is a little easier on the SQL server
#
#query = "\
# SELECT SUM(acctsessiontime) \
# FROM radacct \
# WHERE username = '%{${key}}' \
# AND acctstarttime > FROM_UNIXTIME('%%b')"
#
# This query is the same as above, but demonstrates an
# additional counter parameter '%%e' which is the
# timestamp for the end of the period
#
#query = "\
# SELECT SUM(acctsessiontime) \
# FROM radacct \
# WHERE username = '%{${key}}' \
# AND acctstarttime BETWEEN FROM_UNIXTIME('%%b') AND FROM_UNIXTIME('%%e')"
#
# This query allows retrieving the entries based on a
# period that resets on a particular day of the month.
#
#reset_day = 21
#query = "\
# SELECT SUM(acctsessiontime) FROM radacct WHERE username = '%{${key}}' AND \
# IF (DAY(CURDATE()) >= ${reset_day}, \
# acctstarttime > DATE(DATE_FORMAT(NOW(), '%Y-%m-${reset_day}')), \
# acctstarttime > DATE(DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-${reset_day}')) \
# )"
#
|