rlm_perl behavior
Borislav Dimitrov
b.dimitrov at ngsystems.net
Wed Apr 15 20:42:06 CEST 2009
Hi,
On 15.04.2009, at 20:31, Alan DeKok wrote:
> Borislav Dimitrov wrote:
>> Anyways my main trouble is being unable to use multiple rlm_perl
>> instances like this (I've put the comments to illustrate the
>> flexibility
>> of using *_clones which is now gone):
>
> Ah... OK. That was *not* the intent of the change. I'll take a look
> at fixing it for the next release.
Cool! This is very comforting. If removing the separate "thread" pool
for the perl interpreters is done with the intend to sacrifice some
flexibility in order to simplify, refactor and make the code more
efficient (mainly the memory footprint) it's fine. And after all with
the new behavior it will be possible to achieve parallelism with the
radiusd's thread pool, instead of using *_clones. This is fine and I'm
sure that it'll become one of the wonderful enhancements I've seen
through the years (I've been a happy user for about 4 years now.
Fantastic product btw!). But my problems is being unable to
instantiate two or more instances with the well known syntax:
module_name instance_name {
}
... that is (in my /rlm_perl's/ case):
perl inst1 {
}
perl inst2 {
}
... and then - in say accounting - I fork the processing with a switch
on the NAS-IP routing it to a given instance:
accounting { # if cond inst1 else inst2 ...} # for example
This is what I'm unable to do with the new 2.1.4 and it is a huge
concern for me and our company, leaving us with the only option to
downgrade since right now we don't have the time to modify our or
rlm_perl's code. I tried several different ways to achieve the above
like: using the instantiate {} section, putting files named inst1 and
inst2 in the modules directory with the rlm_perl configurations in
each one, putting it all together in radiusd.conf etc... and it didn't
work. Please let me know if I'm doing something wrong but if it is a
"bug", I'm starting to think that many users will be happy (people do
different setups using this technique like using different DB handles
in the instances to achieve load-balancing etc).
Let the source be with you all and happy hacking ;-)
More information about the Freeradius-Users
mailing list