Thanks. In case of counters how can I use the policy? Because I have to specify the db in sql_module_instance sqlcounter dailycountertime{ sql_module_instance = db1 dialect = mysql counter_name = Daily-Session-Time check_name = Max-Daily-Session reply_name = Session-Timeout key = User-Name reset = daily query = "SELECT SUM(acctsessiontime - GREATEST((%%b - UNIX_TIMESTAMP(acctstarttime)), 0)) FROM radacct WHERE username = '%{${key}}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%%b'" } 2017-09-28 23:57 GMT+02:00 Alan DeKok <aland@deployingradius.com>:
On Sep 28, 2017, at 3:50 PM, Ti Ti <tt91em@gmail.com> wrote:
Hello, I'm using unlang to discriminate the database to use as described in the code below. Is there a method to use variables so avoid the redundant check of
NAS-Id?
You can't mix multiple regular expressions and get multiple different outputs. The regular expression libraries don't allow it.
If you want to use the same set of "if" statements in multiple places, use policies. Add raddb/policy.d/check-nas-id, and put this into it:
policy check-nas-id { if (&NAS-Identifier =~ /test/i) { db1 } if (&NAS-Identifier =~ /test2/i) { db2 } }
Then everywhere you need that set of "if" statements, just use:
check-nas-id
Alan DeKok.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/ list/users.html