evaluating unlang IF with sql results

Phil Mayers p.mayers at imperial.ac.uk
Fri Jun 14 15:16:36 CEST 2013


On 14/06/13 13:29, Bill Schoolfield wrote:
> Actually this particular issue was the parenthesis around the number. I
> had added
> them in the expression to make sure the math occurred before the logical
> comparison.
>
> Without them though, unlang's IF seems to evaluate the first expression
> (a subtraction)
> and ignores things afterwards. So the IF always evaluated to true.

I'm not sure I understand this. But the current unlang parser can be a 
bit picky.

>
> I've concluded that the use of IF with multiple expressions won't work.
> So I have move
> this logic to perl.

There are other options. Specifically I often think it's better to 
expand to intermediate variables, then do logic on them:

update request {
   Tmp-Integer-0 := "%{expr: ...}"
   Tmp-Integer-1 := "%{expr: ...}"
}
if (Tmp-Integer-0 > Tmp-Integer-1) {
   ...
}


More information about the Freeradius-Users mailing list