Conditional statements in dialup.conf?
Alan DeKok
aland at deployingradius.com
Wed Oct 22 16:34:03 CEST 2014
James Wood wrote:
> On all NAS’s apart from Mikrotik routers, when the radius accounting
> packets are sent, the correct figures are in the Acct-Input-Octets and
> Acct-Output-Octets respectively.
OK.
> When using Mikrotik, they switch those around (i.e. the download octets
> are upload and vice versa), and because I use an SQL DB, it means that
> the values are also stored the wrong way round, as the queries in
> dialup.conf are fixed to insert in to the same columns.
So... fix the values *before* you put them into SQL.
> So, I’m looking to detect a Mikrotik accounting request and then change
> the columns round so that the DB is always correct.
That is completely backwards. Don't fix the columns. Fix the
accounting packet in the "preacct" section:
if (Mikrotik-Host-IP) {
update request {
Tmp-Integer-0 := "%{Acct-Input-Octets}
Tmp-Integer-1 := "%{Acct-Output-Octets}
}
update request {
Acct-Input-Octets = "%{Tmp-Integer-0}"
Acct-Output-Octets = "%{Tmp-Integer-01}"
}
}
> I’ve tried doing this inside the dialup.conf but not sure it accepts
> conditional statements inside there.
It doesn't. See "man unlang". The documentation says where you can
put conditions.
Alan DeKok.
More information about the Freeradius-Users
mailing list