2015-03-12 4 views
1

Я использую модуль SQL в FreeRadius, чтобы проверить, если пользователь достиг его недельный лимит данных, для этого я использую этот запрос:FreeRadius SQLCounter

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-код должен обрабатывать номер недели.

%Y не тронут Freeradius.

Любые идеи о том, как сделать запрос, чтобы Freeradius не избежал этого?

+0

Хм, дважды процитировать '" 'вместо одинарные кавычки' ' 'удостоверились FreeRadius не будет касаться переменной. Рассмотрим ее решить. – Sander

ответ

1

Правильная escape-последовательность - %%u. %% не позволяет интерпретировать его как однобуквенное расширение.

0

Вы должны использовать Как это % {User-Name}

+0

nas_query = «SELECT id, nasname, shortname, type, secret, server FROM $ {nas_table}" – Gowthaman

Смежные вопросы