upgrade unlang from 2.1.12 to 3.0.14

Alan DeKok aland at deployingradius.com
Wed Jul 5 13:22:16 CEST 2017


On Jul 5, 2017, at 3:07 AM, <adrian.p.smith at bt.com> <adrian.p.smith at bt.com> wrote:
> We have config similar to:
> 
> if ( !(Cisco-SSG-Service-Info) && ("%{Tunnel-Type}" != "VLAN") ) {

  First, you don't have to quote everything.  Just:

	... (Tunnel-Type != VLAN)

  will work.

> and
> 
> if ( ("%{Acct-Status-Type}" == "Stop") && ("%{Tunnel-Type}" == "VLAN") && ("%{client:operator}" != "WLC") ) {
>  ...

  The same applies here.  Attributes and their values don't need to be quoted.  Only string expansions.

> But are seeing error messages such as:
> 
> ERROR: Failed retrieving values required to evaluate condition

  Then the attributes being looked at don't exist in the packet

> So questions are:
> 
> 1. Testing presence of an attribute I think is now "if ( &Cisco-SSG-Service-Info )" ?

  Yes.

> 2. Can I test presence of and value of an attribute of a variable at the same time, i.e. "if (&Cisco-SSG-Service-Info = "fred" )" ?

  You can do that, but if Cisco-SSG-Service-Info doesn'tt exist, it will result in the above error.

> 3. How can I now do "client:operator" ?

  That still works.

  Alan DeKok.




More information about the Freeradius-Users mailing list