[email protected] 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.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html