Skip Menu |

This queue is for tickets about the Net-Radius-Client CPAN distribution.

Report information
The Basics
Id: 80447
Status: new
Priority: 0/
Queue: Net-Radius-Client

People
Owner: Nobody in particular
Requestors: norguhtar [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 0.03
Fixed in: (no value)



Subject: Add support multiple attributes in clients
Module not correct work with multiple attributes. RADIUS support send many attributes with others values in one packet. For example speed for SmartEdge 100 (Redback): 'Dynamic-QoS-Param' => [ 'police-class-rate cls-local rate-absolute 40960', 'police-class-burst cls-local 5242880', 'meter-class-rate cls-local rate-absolute 40960', 'meter-class-burst cls-local 5242880', 'police-class-rate cls-inet rate-absolute 40960', 'police-class-burst cls-inet 5242880', 'meter-class-rate cls-inet rate-absolute 40960', 'meter-class-burst cls-inet 5242880' ] But now Net::Radius::Client send only first value. Net::Radius::Packet already support this feature. I just fix put value in packet for vsa and standard package (it's realy support it see RFC2138)
Subject: fix-multi-attributes.patch
diff -ruN Radius.orig/Client.pm Radius/Client.pm --- Radius.orig/Client.pm 2008-06-18 00:59:54.000000000 +0600 +++ Radius/Client.pm 2012-10-28 17:21:48.000000000 +0600 @@ -71,12 +71,16 @@ foreach my $vs (keys %$argref) { foreach my $a (keys %{$argref->{$vs}}) { if ($vs) { - $req->set_vsattr($vs, $a, @{$argref->{$vs}->{$a}}); + foreach my $value (@{$argref->{$vs}->{$a}}) { + $req->set_vsattr($vs, $a, $value); + } } else { if ($a eq 'User-Password') { $password = $argref->{$vs}->{$a}[0]; } else { - $req->set_attr($a, $argref->{$vs}->{$a}[0]); + foreach my $value (@{$argref->{$vs}->{$a}}) { + $req->set_attr($a, $value); + } } } }