tnt@kalik.net wrote:
Read man unlang again. See what does == do. Perhaps you want:
if (Client-IP-Address == "192.168.10.20") { update reply { Service-Type == Authenticate-Only } }
Or you want to use -= on multiple attributes.
Ivan Kalik Kalik Informatika ISP
Please read man unlang again, Neither of your examples are appropriate for my purposes. "Service-Type == Authenticate-Only" would remove the Service-Type attribute if its value is not Authenticate-Only. I do not want to remove the Service-Type attribute at all. I want to set its value to Authenticate-Only which is why I used the := operator.
So do:
if (Client-IP-Address == "192.168.10.20") { update reply { Service-Type:= Authenticate-Only Service-Type == Authenticate-Only } }
The == operator removes the attribute if the attribute and its value DO NOT match the reply.
It removes *all* the attributes and values that do not match. That *is* what you want - to keep that Service-Type and remove all other attributes regardless of value?
Listing two attributes with == is pointless - it will delete the whole list.
Ivan Kalik Kalik Informatika ISP
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
The == operator does _not_ remove all attributes. It only affects the attribute named on the left of this operator. It does not delete or affect any other attributes in the request. See example below. update request { Idle-Timeout == 999 } Will remove all non-matching attributes. So it will remove Idle-Timeout = 0 Idle-Timeout = 1 Idle-Timeout = 1000 It will not remove Idle-Timeout = 999 I have tested this extensively on my system with debug -X. I know this is how this configuration works because I can see the results in the debug output. Jim L.