(RADIATOR) Renaming cisco-avpair

Hugh Irvine hugh at open.com.au
Thu Nov 7 01:00:22 CST 2002


Hello German -

If you call $p->get_attr(..) in a list context instead of a scalar 
context, you will get the complete list.

Have a look at the code in Radius/AttrVal.pm.

regards

Hugh


On Thursday, November 7, 2002, at 07:56 AM, GermanG wrote:

> Hello,
>
> I would like to save Radius accounting tickets from a Cisco AS5300 in 
> a SQL
> database but Cisco AS5300 is sending multiple attributes cisco-avpair. 
> I
> would like to save all cisco-avpair so I need to rename them.
> For example,
> An original cisco-avpair like this:
> cisco-avpair = "connect-progress=41"
> I want it like this:
> cisco-avpair-connect-progress = "41"
> or just
> connect-progress = "41"
>
> I made a hook (based on /goddies/hooks.txt) for add a new attribute 
> for each
> cisco-avpair.
> But this hook only catch the first cisco-avpair and I can not find the 
> way
> to analize the rest of cisco-avpair.
>
> Hook code:
> ############################
> # -*- mode: Perl -*-
> # Converts cisco-avpair into different attributes
> #
> sub
> {
>     my $p = ${$_[0]};
>     my $ciscoavpair;
>     my $ciscoavpair_name;
>     my $ciscoavpair_value;
>     if ($ciscoavpair = $p->get_attr('cisco-avpair'))
>     {
> $ciscoavpair =~ /=/;
> $ciscoavpair_name = $`;
> $ciscoavpair_value = $';
> $p->add_attr("cisco-avpair-$ciscoavpair_name", $ciscoavpair_value)
>     }
>     return;
> }
> #
> ############################
>
> I´ve read the "sub get_attr" from /Radius/AttrVal.pm and found that if 
> you
> ask for
> an attribute in a scalar context only returns the first one (that´s my
> case!).
> How can I ask for an attribute in another way? (maybe as an array but, 
> How?)
> Does anyboby have anything that could help on this?
>
> I´ve tried with a "while" instead of an "if" , the result was a loop 
> with
> the same (first) cisco-avpair.
> If I add a "->delete_attr" after the add, the result (as said in
> /Radius/AttrVal.pm ) deletes all cisco-avpair.
>
>
> Best Regards,
> German Gatica
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.
>
>

NB: I am travelling this week, so there may be delays in our 
correspondence.

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list