Hello Jethro -

There is an example hook in "goodies/hooks.txt" that does the same thing for 
multiple "cisco-avpair" attributes:


----------------------------------------------------------------------

This hook is designed to parse multiple cisco-avpairs.

Contributed by:

[email protected]

All I'm doing here is taking each cisco-avpair attribute from the incoming 
packet and adding new attributes onto the same incoming packet.

eg:
        cisco-avpair = "task_id=62"
        cisco-avpair = "timezone=UTC"
        cisco-avpair = "service=shell"
        cisco-avpair = "priv-lvl=0"
        cisco-avpair = "cmd=exit <cr>"

become:
                task_id = 62
                timezone = UTC
                service = shell
                priv-lvl = 0
                cmd = "exit <cr>"

Hope this assists people in their endeavours!

Cheers
Chris.


radiator.cfg

<Handler>
        PreProcessingHook       file:"%D/createavpairs"
        <AuthBy SQL>
                DBSource        dbi:mysql:radius
                DBUsername      test
                DBAuth          test

                AccountingTable ACCOUNTING
                AcctColumnDef           TIMESTAMP,Timestamp,integer
                AcctColumnDef           NASIP,NAS-IP-Address
                AcctColumnDef           USERNAME,User-Name
                AcctColumnDef           CALLLINGID,Calling-Station-Id
                AcctColumnDef           PRIVLVL,priv-lvl
                AcctColumnDef           CMD,cmd
        </AuthBy>
</Handler>


createavpairs

sub {
        my $p=${$_[0]};
        if (my @avpair = $p->get_attr('cisco-avpair')) {
                foreach my $avpair (@avpair) {
                        $p->add_attr(split('=',$avpair));
                }
        }
}

----------------------------------------------------------------------


You can modify it for Colubris-AVPAIR very easily.

regards

Hugh


On 18 Dec 2012, at 02:09, Jethro R Binks <[email protected]> wrote:

> I have devices which send Radiator multiple instance of a certain 
> attribute in their Access-Request.  I want to print all of the values sent 
> for that attribute, but using a logging clause such as:
> 
>  colubris-avp="%{Colubris-AVPAIR}"
> 
> only shows me the first of the attributes received.
> 
> I went through the reference and couldn't find any recognition of this 
> issue.
> 
> Actually, I only really want one or two of the values to be honest.  So it 
> would be really nice to be able to match on the A/V pair that I really 
> want, so maybe something like:
> 
>  colubris-avp="%{Colubris-AVPAIR:ssid}"
> 
> which will get me the correct string from a packet that looks like this in 
> part:
> 
> AVP: l=113  t=Vendor-Specific(26) v=Colubris(8744)
> VSA: l=14 t=Colubris-AVPair(0): ssid=eduroam
> VSA: l=23 t=Colubris-AVPair(0): incoming-vlan-id=4047
> VSA: l=30 t=Colubris-AVPair(0): group=James Goold Hall (GLD)
> VSA: l=17 t=Colubris-AVPair(0): vsc-unique-id=2
> 
> Any ideas?
> 
> Jethro.
> 
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> Jethro R Binks, Network Manager,
> Information Services Directorate, University Of Strathclyde, Glasgow, UK
> 
> The University of Strathclyde is a charitable body, registered in
> Scotland, number SC015263.
> _______________________________________________
> radiator mailing list
> [email protected]
> http://www.open.com.au/mailman/listinfo/radiator


--

Hugh Irvine
[email protected]

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. 
Full source on Unix, Windows, MacOSX, Solaris, VMS, NetWare etc.

_______________________________________________
radiator mailing list
[email protected]
http://www.open.com.au/mailman/listinfo/radiator

Reply via email to