On Wed, Mar 23, 2005 at 05:13:14AM +0200, Chris Knipe wrote:
> Lo all,
> 
> This has been to the perl mailing lists as well, there is nothing wrong 
> with the code as far as every one knows... rlm_perl just doesn't like this 
> for some reason....
> 
> Snipets of the script in question:
>        $RAD_REPLY{'Acct-Interim-Interval'} = "300";
>        $RAD_REPLY{'MS-MPPE-Encryption-Policy'} = "1";
>        $RAD_REPLY{'MS-MPPE-Encryption-Types'} = "LS";
>        $RAD_REPLY{'Rate-Limit'} = "256k/512k";
>        $RAD_REPLY{'Recv-Limit'} = $BytesAvail - $BytesUsed;
>        $RAD_REPLY{'Xmit-Limit'} = $BytesAvail - $BytesUsed;
>        $RAD_REPLY{'Reply-Message'} = "You have " . 
> $za->format_bytes($BytesAvail - $BytesUsed) . " available.";
>        $RAD_REPLY{'Session-Timeout'} = "86400";
> 
> Righty.  From the above, EVERYTHING gets returned (radiusd -X reports that 
> rlm_perl added the values) with the EXCEPTION of Recv-Limit and Xmit-Limit. 
> *IF* I add physical values to Recv-Limit, Xmit-Limit, then radiusd -X finds 
> the attributes and add them to the reply packet.
>

Basically rlm_perl expects in a hash value - string not number. for
example '1' instead 1. It is well known issue and will be fixed soon. 

> So basically:
>        $RAD_REPLY{'Recv-Limit'} = $BytesAvail - $BytesUsed;
>        $RAD_REPLY{'Xmit-Limit'} = $BytesAvail - $BytesUsed;
> doesn't work
>        $RAD_REPLY{'Recv-Limit'} = 23423424;
>        $RAD_REPLY{'Xmit-Limit'} = 23234242;
> works
> 
> Strange as well, is that format_bytes successfully completes the formating 
> and the calculation.  Thus, there is also nothing wrong in my code.  A 
> further test I did to verify my code, which also worked (and not on FR - 
> rlm_perl):
> 
> <snip>
> #!/usr/bin/perl
> 
> use strict;
> use warnings;
> 
> use Data::Dumper 'Dumper';
> 
> my( $BytesAvail, $BytesUsed ) = (20971521, 1);
> 
> {
>    my %RAD_REPLY;
>    $RAD_REPLY{'Recv-Limit'} = "20971520";
>    $RAD_REPLY{'Xmit-Limit'} = "20971520";
>    print Dumper \%RAD_REPLY;
> }
> 
> 
> 
> {
>    my %RAD_REPLY;
>    $RAD_REPLY{'Recv-Limit'} = $BytesAvail - $BytesUsed;
>    $RAD_REPLY{'Xmit-Limit'} = $BytesAvail - $BytesUsed;
>    print Dumper \%RAD_REPLY;
> }
> 
> __END__
> </snip>
> 
> also works flawlessly.....
> 
> Hope someone can give me some clarification.....
> 
> --
> Chris. 
> 
> 
> - 
> List info/subscribe/unsubscribe? See 
> http://www.freeradius.org/list/users.html

-- 
Best Regards,
Boian Jordanov
SNE
Orbitel - the Internet Company
tel. +359 2 4004 723

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

Reply via email to