Semantics of !~ operator

Alan DeKok aland at
Wed Apr 29 15:59:20 CEST 2015

On Apr 29, 2015, at 2:01 AM, Gerald Vogt <vogt at> wrote:
>>   This configuration is the same as:
>> 	update request {
>> 		Called-Station-SSID := "outer.request:Called-Station-SSID"
>> 	}
> No. It's not. It definitively not the same. The former does basically nothing. Called-Station-SSID gets no value assigned. The latter assigns the string contained in quotes.

  OK... I've spent a fair bit of time looking into this.  I am interested in making FreeRADIUS better, after all.

> + 	update request {
> + 		Called-Station-SSID !* ANY
> + 		Called-Station-SSID := outer.Called-Station-SSID

  That's wrong.  It's not a valid attribute reference.

  Most of the rest of the changes are needlessly complicated.  You don't need to delete the Called-Station-SSID and then re-add it.  You can just use ":=", as that's it's documented behaviour.

  You don't need to check for the existence of the Called-Station-Id, you can just use it in the Reply-Message

  And it works in my tests, with the exception of the wrong attribute reference above.

  You're using 3.0.4.  It works in 3.0.8.  Upgrade.

  Alan DeKok.

More information about the Freeradius-Users mailing list