rlm_perl still looses tags for tagged attributes even after upgrade to 2.1.6

Alexandr Kovalenko alexandr.kovalenko at gmail.com
Wed Aug 26 01:52:14 CEST 2009


UP

On Thu, Aug 20, 2009 at 10:49 AM, Alexandr
Kovalenko<alexandr.kovalenko at gmail.com> wrote:
> Hello,
>
> It has been stated in release notes for FR 2.1.6 that loosing of tags
> for tagged attributes is fixed in rlm_perl in this version, but it is
> not.
>
> Look at the example below:
>
> --------
> $ radiusd -v | head -1
> radiusd: FreeRADIUS Version 2.1.6, for host i386-portbld-freebsd7.2,
> built on Aug 18 2009 at 12:31:54
>
> $ perl -V
> Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
>  Platform:
>   osname=freebsd, osvers=7.2-release-p2, archname=i386-freebsd-64int
>   uname='freebsd mile.office.tsu 7.2-release-p2 freebsd
> 7.2-release-p2 #0: fri jun 26 10:01:50 eest 2009
> root at mile.office.tsu:usrobjusrsrcsysmile i386 '
>   config_args='-sde -Dprefix=/usr/local
> -Darchlib=/usr/local/lib/perl5/5.8.9/mach
> -Dprivlib=/usr/local/lib/perl5/5.8.9
> -Dman3dir=/usr/local/lib/perl5/5.8.9/perl/man/man3
> -Dman1dir=/usr/local/man/man1
> -Dsitearch=/usr/local/lib/perl5/site_perl/5.8.9/mach
> -Dsitelib=/usr/local/lib/perl5/site_perl/5.8.9
> -Dscriptdir=/usr/local/bin
> -Dsiteman3dir=/usr/local/lib/perl5/5.8.9/man/man3
> -Dsiteman1dir=/usr/local/man/man1 -Ui_malloc -Ui_iconv
> -Uinstallusrbinperl -Dcc=cc -Duseshrplib -Dinc_version_list=none
> -Dccflags=-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.9/BSDPAN"
> -Doptimize=-O2 -fno-strict-aliasing -pipe -march=pentium4 -Ud_dosuid
> -Ui_gdbm -Dusethreads=n -Dusemymalloc=y -Duse64bitint'
>   hint=recommended, useposix=true, d_sigaction=define
>   usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
>   useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>   use64bitint=define use64bitall=undef uselongdouble=undef
>   usemymalloc=y, bincompat5005=undef
>  Compiler:
>   cc='cc', ccflags
> ='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.9/BSDPAN" -DHAS_FPSETMASK
> -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
> -I/usr/local/include',
>   optimize='-O2 -fno-strict-aliasing -pipe -march=pentium4',
>   cppflags='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.9/BSDPAN"
> -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
> -I/usr/local/include'
>   ccversion='', gccversion='4.2.1 20070719  [FreeBSD]', gccosandvers=''
>   intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
>   d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>   ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
> Off_t='off_t', lseeksize=8
>   alignbytes=4, prototype=define
>  Linker and Libraries:
>   ld='cc', ldflags =' -Wl,-E  -L/usr/local/lib'
>   libpth=/usr/lib /usr/local/lib
>   libs=-lgdbm -lm -lcrypt -lutil
>   perllibs=-lm -lcrypt -lutil
>   libc=, so=so, useshrplib=true, libperl=libperl.so
>   gnulibc_version=''
>  Dynamic Linking:
>   dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='
> -Wl,-R/usr/local/lib/perl5/5.8.9/mach/CORE'
>   cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib'
>
>
> Characteristics of this binary (from libperl):
>  Compile-time options: MYMALLOC PERL_MALLOC_WRAP USE_64_BIT_INT
>                       USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO
>  Locally applied patches:
>       defined-or
>  Built under freebsd
>  Compiled at Aug 18 2009 14:56:36
>  @INC:
>   /usr/local/lib/perl5/5.8.9/BSDPAN
>   /usr/local/lib/perl5/site_perl/5.8.9/mach
>   /usr/local/lib/perl5/site_perl/5.8.9
>   /usr/local/lib/perl5/5.8.9/mach
>   /usr/local/lib/perl5/5.8.9
>   .
> --------
>
> Following code is used in sub authorize {} in perl module I'm trying to use
> --------
>  if (($RAD_REQUEST{'User-Name'} eq 'admin') and
> ($RAD_REQUEST{'User-Password'} eq 'test')) {
>      $RAD_REPLY{'ERX-Service-Activate:1'} = "telesys";
>      $RAD_REPLY{'ERX-Service-Statistics:1'} = "time-volume";
>      $RAD_REPLY{'ERX-Qos-Parameters'}[0] = "internet_tr_value 2097152";
>      $RAD_REPLY{'ERX-Qos-Parameters'}[1] = "internet_tr_value_in 2097152";
>      $RAD_REPLY{'ERX-Service-Activate:2'} = "deny";
>      $RAD_REPLY{'ERX-Qos-Profile-Name'} = "SP_Tele_Internet";
>      $RAD_REPLY{'Framed-IP-Address'} = '10.0.112.2';
>      $RAD_REPLY{'Framed-IP-Netmask'}= "255.255.255.255";
>      $RAD_REPLY{'ERX-Primary-DNS'} = "1.2.3.4";
>      $RAD_REPLY{'ERX-Secondary-DNS'} = "1.2.3.5";
>      return RLM_MODULE_OK;
>  };
> --------
>
> This gives following results:
>
> # radtest admin test 10.3.1.252 12 huawei
> Sending Access-Request of id 70 to 10.3.1.252 port 1812
>      User-Name = "admin"
>      User-Password = "test"
>      NAS-IP-Address = 10.1.2.13
>      NAS-Port = 12
> rad_recv: Access-Accept packet from host 10.3.1.252 port 1812, id=70, length=188
>      ERX-Qos-Parameters = "internet_tr_value 2097152"
>      ERX-Qos-Parameters = "internet_tr_value_in 2097152"
>      ERX-Service-Activate:0 = "deny"
>      ERX-Service-Activate:0 = "telesys"
>      ERX-Qos-Profile-Name = "SP_Tele_Internet"
>      ERX-Service-Statistics:1 = time-volume
>      ERX-Primary-Dns = 1.2.3.4
>      ERX-Secondary-Dns = 1.2.3.5
>      Framed-IP-Address = 10.0.112.2
>      Framed-IP-Netmask = 255.255.255.255
>
>
> --------
> Output from radiusd -X:
>
> rad_recv: Access-Request packet from host 10.3.1.252 port 52845,
> id=70, length=57
>      User-Name = "admin"
>      User-Password = "test"
>      NAS-IP-Address = 10.1.2.13
>      NAS-Port = 12
> server radoss {
> +- entering group authorize {...}
> ++[preprocess] returns ok
> ++[control] returns ok
> rlm_perl: $VAR1 = {};
> rlm_perl: defined
> rlm_perl: Added pair User-Name = admin
> rlm_perl: Added pair User-Password = test
> rlm_perl: Added pair NAS-Port = 12
> rlm_perl: Added pair NAS-IP-Address = 10.1.2.13
> rlm_perl: Added pair ERX-Qos-Profile-Name = SP_Tele_Internet
> rlm_perl: Added pair ERX-Service-Activate:2 = deny
> rlm_perl: Added pair ERX-Qos-Parameters = internet_tr_value 2097152
> rlm_perl: Added pair ERX-Qos-Parameters = internet_tr_value_in 2097152
> rlm_perl: Added pair ERX-Service-Statistics:1 = time-volume
> rlm_perl: Added pair ERX-Secondary-DNS = 1.2.3.5
> rlm_perl: Added pair Framed-IP-Address = 10.0.112.2
> rlm_perl: Added pair Framed-IP-Netmask = 255.255.255.255
> rlm_perl: Added pair ERX-Service-Activate:1 = telesys
> rlm_perl: Added pair ERX-Primary-DNS = 1.2.3.4
> rlm_perl: Added pair Auth-Type = Perl
> ++[perl] returns ok
> Found Auth-Type = Perl
> +- entering group Perl {...}
> rlm_perl: Added pair User-Name = admin
> rlm_perl: Added pair User-Password = test
> rlm_perl: Added pair NAS-IP-Address = 10.1.2.13
> rlm_perl: Added pair NAS-Port = 12
> rlm_perl: Added pair ERX-Qos-Parameters = internet_tr_value 2097152
> rlm_perl: Added pair ERX-Qos-Parameters = internet_tr_value_in 2097152
> rlm_perl: Added pair ERX-Service-Activate = deny
> rlm_perl: Added pair ERX-Service-Activate = telesys
> rlm_perl: Added pair ERX-Qos-Profile-Name = SP_Tele_Internet
> rlm_perl: Added pair ERX-Service-Statistics:1 = time-volume
> rlm_perl: Added pair ERX-Primary-Dns = 1.2.3.4
> rlm_perl: Added pair ERX-Secondary-Dns = 1.2.3.5
> rlm_perl: Added pair Framed-IP-Address = 10.0.112.2
> rlm_perl: Added pair Framed-IP-Netmask = 255.255.255.255
> rlm_perl: Added pair Auth-Type = Perl
> ++[perl] returns ok
> +- entering group post-auth {...}
> ++[exec] returns noop
> } # server radoss
> Sending Access-Accept of id 70 to 10.3.1.252 port 52845
>      ERX-Qos-Parameters += "internet_tr_value 2097152"
>      ERX-Qos-Parameters += "internet_tr_value_in 2097152"
>      ERX-Service-Activate:0 += "deny"
>      ERX-Service-Activate:0 += "telesys"
>      ERX-Qos-Profile-Name = "SP_Tele_Internet"
>      ERX-Service-Statistics:1 = time-volume
>      ERX-Primary-Dns = 1.2.3.4
>      ERX-Secondary-Dns = 1.2.3.5
>      Framed-IP-Address = 10.0.112.2
>      Framed-IP-Netmask = 255.255.255.255
> Finished request 0.
> Going to the next request
> Waking up in 4.9 seconds.
> Cleaning up request 0 ID 70 with timestamp +4
> Ready to process requests.
>
> --
> Alexandr Kovalenko
> http://uafug.org.ua/
>



-- 
Alexandr Kovalenko
http://uafug.org.ua/




More information about the Freeradius-Users mailing list