rlm_exec does not change already existing attributes
Joe Maimon
jmaimon at ttec.com
Mon Apr 24 13:15:30 CEST 2006
Dmitry Lyubimkov wrote:
> In the rlm_exec module for change of attributes according to result of
> script it is used
>
> if (output_pairs) pairmove(output_pairs, &answer);
>
> in function
>
> static int exec_dispatch(void *instance, REQUEST *request)
>
> But function pairmove in valuepair.c does only the following
>
> /*
> * Move attributes from one list to the other
> * if not already present.
> */
> void pairmove(VALUE_PAIR **to, VALUE_PAIR **from)
>
> I.e. if such attribute does not exist that it will be added, and if
> already exists, will take place nothing.
> As result using an external script we can only add new attributes, but
> we can not change existing attributes!
> How to change User-Name in Radius request?
> Is it possible to change existing attributes in the simple way without
> change of the module rlm_exec code?
>
> Dmitry
if you keep reading in that function you will find that certain
operators produce different behavior.
Furthermore, if you look at the server's version of valuepair.c (not
lib/valuepair.c but main/valuepair.c ) you might decide to patch your
version of rlm_exec to use pairxlatmove() instead.
My local radiusd runs with this patches which further extends/corrects
pairxlatmove()
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 030-substar_regex.patch
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20060424/faf9055b/attachment.ksh>
More information about the Freeradius-Users
mailing list