"switch" statement": would you know a more compact statement?

Alex Zetaeffesse fzetafs at gmail.com
Wed Apr 26 17:18:27 UTC 2023


Sorry, me again.

While reading this

https://networkradius.com/doc/3.0.10/unlang/regex.html

I noticed the i for matching the regex in a non case-sensitive way.
I played a bit and then I tried sending a request as
user at tenAnt101.bic.local; the catch-group was tenAnt101 and there was still
a match for >> realm "tenant101" << in the proxy.conf, though the catch was
not based on the case.

So, are all the variables that relate to the username always treated as
case-insensitive?
To which other strings does this rule apply?

Thanks, Alex

On Wed, Apr 26, 2023 at 5:40 PM Alex Zetaeffesse <fzetafs at gmail.com> wrote:

> Thanks Alan,
>
> indeed I should have written (still not using it the right way as you
> pointed out)
>
>         switch "%{User-Name}" {
>                 case "/@tenant101\.bic\.local/" {update
> control{Proxy-To-Realm := "tenant101"}}
>                 case "/@tenant102\.bic\.local/" {update
> control{Proxy-To-Realm := "tenant102"}}
>                 ...
>          }
>
> BTW, I think this is called back-reference, isn't it?
> I'm pointing this out, just for anybody who may read this mail thread
> looking for the same feature.
>
> Thanks for your fast reply!
>
> Alex
>
> On Wed, Apr 26, 2023 at 5:30 PM Alan DeKok <aland at deployingradius.com>
> wrote:
>
>> On Apr 26, 2023, at 11:03 AM, Alex Zetaeffesse <fzetafs at gmail.com> wrote:
>> > Is there a more compact way to state what follows?
>> >
>> >        switch {
>> >                ("%{User-Name}" =~ /@tenant101\.bic\.local/) {update
>> > control{Proxy-To-Realm := "tenant101"}
>>
>>   That's not correct configuration syntax, but OK...
>>
>>   In general things like this are best done with regular expressions.
>> Especially if the data you're trying to use is part of the input packet.
>>
>>         if (&User-Name =~ /([^.]+)\.bic\.local) {
>>                 update control {
>>                         &Proxy-To-Realm := "%{1}"
>>                 }
>>         }
>>
>>   You also don't have to put quotes around references to User-Name.  Just
>> use &User-Name.  This works, and that's what the documentation says to do.
>> I have no idea why so many people use constructs like "%{User-Name}".  It's
>> just not necessary.
>>
>>   Alan DeKok.
>>
>> -
>> List info/subscribe/unsubscribe? See
>> http://www.freeradius.org/list/users.html
>>
>


More information about the Freeradius-Users mailing list