[email protected] wrote:
Hello to Alan and the rest of the list. I wanted to report this to the
bug tracker but it appears to be down right now so I am sending it to
the list.
I had a situation where I needed to remove all of the attributes from a
reply except for Service-Type to one specific client. Unlang seemed to
be perfect for this. It should be as simple as the following.
if (Client-IP-Address == "192.168.10.20") {
update reply {
Framed-Protocol == ''
Framed-IP-Address == 0.0.0.0
Framed-IP-Netmask == 0.0.0.0
Idle-Timeout == 999
Session-Timeout == 999
Port-Limit == 999
Cisco-AVPair == ''
Service-Type := Authenticate-Only
}
}
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
Ivan,
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.
The -= operator removes the attribute if the attribute AND its value
match the reply. Since the values can vary with different users and
groups in our systerm, this operator is also not appropriate.
The == operator removes the attribute if the attribute and its value DO
NOT match the reply. In my examples you will see that the values for
those attributes are unusual values which will probably never be set by
our user profiles. Since there is no operator or command in unlang to
remove an attribute regardless of value, this was the best alternative
that I could design.
According to what I have read, my configuration is correct, both in
function and in syntax. It just crashes the server :-O
Jim L.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html