[RADIATOR] Accounting Hook ?
Patrik Forsberg
patrik.forsberg at globalconnect.se
Fri Feb 18 07:20:32 UTC 2022
Hm weird I tried that and it didn't work .. guess I'll have another crack at it ??
(sorry about IPO-Command.. thought I replaced them all with Annex-CLI-Command!)
Thanks for the $request->dump() thing.. that'll help with debugging ??
---
Best Regards,
Patrik
> -----Original Message-----
> From: radiator <radiator-bounces at lists.open.com.au> On Behalf Of Heikki
> Vatiainen
> Sent: den 17 februari 2022 18:15
> To: radiator at lists.open.com.au
> Subject: Re: [RADIATOR] Accounting Hook ?
>
> On 17.2.2022 17.13, Patrik Forsberg wrote:
>
> > The extra data seem to be injected into the accounting package but the
> AcctLogFileName doesn’t pick it up but if I do a <AcctLog FILE> and reference
> it in the Handler it shows up in the accounting record!
>
> I can confirm this. <AcctLog ...> clauses run the same time as <AuthLog ..>
> clauses which is when a reply is sent.
>
> > Guessing AcctLogFileName picks up its data before the hook gets to insert
> its data.
> > (Tried it in PreProcessingHook as well with the same result)
>
> I'd say changes done by PreProcessingHook should have been visible with
> output generated by AcctLogFileName.
>
> Here's what I used for testing, first config:
>
> <Handler>
> PreProcessingHook file:"%D/hook_compile-command-record.pl"
> AcctLogFileName %L/acctlog
> AccountingHandled
> </Handler>
>
>
> Then your hook slightly modified:
>
> # Works as PreProcessingHook or PreAuthHook use strict; sub {
> my $me = 'hook_compile-command-record.pl';
>
> # Often named as $p and $rp
> my ($request, $reply) = (${$_[0]}, ${$_[1]});
> my $command = '';
>
> $command = $request->get_attr('Juniper-Interactive-Command');
> main::log($main::LOG_DEBUG, "$me - command: $command", $request);
>
> $request->change_attr('Annex-CLI-Command', $command);
>
> my $tmp1 = $request->get_attr('Annex-CLI-Command');
> main::log($main::LOG_DEBUG, "$me - command: $tmp1", $request);
>
> $reply->change_attr('IPO-Command', $command);
>
> return;
> }
>
> It's not mandatory to pass the request object to logging, but it's helps when
> PacketTrace, LogTraceId and others are enabled. That is, it helps logger when
> selective logging is needed.
>
> In acctlog I can see something like this:
>
> Juniper-Interactive-Command = "abc 123 xyz"
> Annex-CLI-Command = "abc 123 xyz"
>
> and IPO-Command would be sent out if it were in the dictionary.
>
> The packet dump that shows the incoming messages is done much earlier
> than the hook runs. If you'd want to dump the message from a hook too, use
> something like this:
>
> main::log($main::LOG_DEBUG, "$me - modified request:\n" .
> $request->dump(), $request);
>
>
> Thanks,
> Heikki
>
> --
> Heikki Vatiainen
> OSC, makers of Radiator
> Visit radiatorsoftware.com for Radiator AAA server software
> _______________________________________________
> radiator mailing list
> radiator at lists.open.com.au
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.o
> pen.com.au%2Fmailman%2Flistinfo%2Fradiator&data=04%7C01%7Cpatr
> ik.forsberg%40globalconnect.se%7C01db26be514844e8602008d9f239525e%7
> Cdfbb0d3b8276458197a42b844a84ea35%7C0%7C0%7C637807150418305439%
> 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLC
> JBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=dEiFTGczYQnIx4h3Dp
> B2ISzMLikWTWGeFN%2Bq5MuA0ec%3D&reserved=0
More information about the radiator
mailing list