If statement regex match with multiple similar attributes
jberry at plus.net
jberry at plus.net
Thu Jan 8 11:03:07 CET 2015
> Is upgrading your FreeRADIUS a possibility? Starting from version 3,
> there is a foreach statement in unlang, that can loop through the
>results.
Sadly not. We are planning to do this but have custom modules at the
moment which need to be purged/rewritten but this is good knowledge for
when we do!
> Otherwise, if it is always the second Class, you could use
> %{reply:Class[1]}, but this feels a bit like a hack. There are some
> hints about this in the man page of unlang.
I will have to go with this for now. I did find a further improvement to
this that works so replying to the list in case anyone else finds it
useful:
if( "%{reply:Class[*]}" =~ /.*0x434653494421.*/ ) {
update reply {
...
}
}
This assesses the array containing all Class attrs as a string (I think)
so providing you are looking for something you know is going to be unique
it works a treat:
++? if ("%{reply:Class[*]}" =~ /.*0x434653494421.*/ )
expand: %{reply:Class[*]} ->
0x5030323a3***************************************
0x434653494421****************
? Evaluating ("%{reply:Class[*]}" =~ /.*0x434653494421.*/) -> TRUE
P.s. Sorry if I messed up anyones threading, had the list in digest mode
and couldn¹t work out how to reply!
Many thinks
--
Josh Berry
Senior Systems Engineer
Plusnet PLC | www.plus.net
Phone: 01142 733547
Registered Office: The Balance | 2 Pinfold Street | Sheffield | S1 2GU
Registered in England no: 3279013
More information about the Freeradius-Users
mailing list