[EXT] Re: Integration GO language into Freeradius

Brian Julin BJulin at clarku.edu
Mon Mar 21 14:13:58 UTC 2022


Martin Gignac <martin.gignac at gmail.com> wrote:
> The documentation for rlm_exec states
> that "This module is useful for gluing third-party programs into
> FreeRADIUS. However, executing programs is very slow. The exec module
> may look like it works for one or two tests, but in a live situation
> it can cause the server to become unresponsive under load. The perl
> module is recommended for general-purpose computing.", so I don't know
> how performant it is compared with rlm_rest.

rlm_perl uses a Perl ecosystem library which actually fires up a Perl interpreter and
runs all it's init code until it is just about to start running a script, then freezes that
state in memory ready to run code.  It can then fork copies of that state off.
That's why it is performant.  You'd need to find something like that for GO... but if it
is a compiled language that's less likely to exist since there is less need for that than
there is for an interpreted language like Perl5.

(Writing that makes me wonder if there would be a way to do a "pre_exec" on
generic stuff run by rlm_exec, if the executed code was cooperative enough
to wait on a socket after loading and before proceeding.)


More information about the Freeradius-Users mailing list