Thanks for the suggestion, Alan. I've rewritten my script in Perl but I'm still having the same issue. In my log I see two pairs for User-Name:

rlm_perl: Added pair User-Name = MyOldUsername
rlm_perl: Added pair User-Name = MyNewUsername

So how to I make rlm_perl change/overwrite the value of User-Name rather than add a second User-Name pair? I tried returning updated rather than ok, but that didn't seem to make any difference. In my script I have

$RAD_REPLY{'User-Name'} = 'MyNewUsername';

Is there maybe an operator besides = that I should use?



On Wed, Mar 6, 2013 at 10:27 AM, Alan DeKok <aland@deployingradius.com> wrote:
Brian Wallen wrote:
> I have an exec script that returns a User-Name. FreeRADIUS passes the
> User-Name to my script (ie MyOldUsername) and my script changes it (ie
> MyNewUsername). In my logs I see
>
>     Exec-Program-Wait: value-pairs: User-Name = MyNewUsername

  The attributes from exec-program-wait are added to the end of the
existing attribute list.  They're not replacing existing ones.

  I suggest using Perl.

  Alan DeKok.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html