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

Alex Zetaeffesse fzetafs at gmail.com
Wed Apr 26 15:40:30 UTC 2023


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