Freeradius SQLCounter

时间:2015-03-12 15:15:29

标签: sql freeradius

我使用Freeradius的SQL模块来检查用户是否达到了它的每周数据限制,因为我使用此查询:

SELECT (IFNULL(SUM(AcctInputOctets), 0) + IFNULL(SUM(AcctOutputOctets), 0)) as used_data FROM (SELECT * FROM radacct b WHERE username = '%{%k}' AND DATE_FORMAT(acctstarttime, '%Y-%u') = DATE_FORMAT(CURDATE(), '%Y-%u') GROUP BY acctuniqueid) a

现在'%{%k}'被Freeradius替换为用户'用户名,但%u也被替换,这不应该发生,因为它应该由SQL处理以使用周数。

Freeradius没有触及

%Y

有关如何进行查询的任何想法,以便Freeradius不会逃避这个?

2 个答案:

答案 0 :(得分:1)

正确的转义序列是%%u%%阻止它被解释为单个字母扩展。

答案 1 :(得分:0)

你应该像这样使用 %{用户名称}