Hi, I've sent this mail before but for some unknown reason it seems I was kicked out 
of the list for some time now and had to re-susbcribe.
So if you are seing this mail repeated I'm realy sorry...
My original message follows:

===============================================
Hello,

I found what I think is a bug (or is it a feature? :) ) in module AuthRADIUS.pm 
shipped with version 2.19 of Radiator.
The behaviour that I think is wrong is that when it first tries to forward an 
accounting (stop) packet it must set the delay time. And it does so by calculating 
delay time as (now - time the packet
+was first received).
Now this totaly discards any AcctDelayTime that the packet might already have on it.
This is an issue because if we have a proxy chain (as is our case) and we try to rate 
the users according to the time of day that they connected and disconnected, zeroing 
the acct delay on a proxy
+can put the user on a diferent rate time zone.
To correct this issue I did a little hack on AuthRADIUS.pm that sets things straight 
on a one shot basis, but maybe you think that this is ugly and prefer to revise the 
code to do it better? It
+shouldn't be very straightforward though, as you recalculate the delay time everytime 
+you retry the packet and by then you have no ideia what the original AcctDelayTime 
+was to begin with...
Anyway, here is my patch:
------------------------------------------------
*** AuthRADIUS-orig.pm  Thu Feb  7 15:48:52 2002
--- AuthRADIUS-new.pm   Thu Feb  7 15:48:27 2002
***************
*** 211,220 ****
--- 211,223 ----
      $fp->add_attr_list($p);

      if ($fp->code eq 'Accounting-Request')
      {
        # Change or set the Acct-Delay
+       # Somewhat ugly hack. We must not discard previous delay time that might exist.
+       my $origdelay = $p->getAttrByNum($Radius::Radius::ACCT_DELAY_TIME);
+       $p->{RecvTime} = $p->{RecvTime} - $origdelay if $origdelay;
        $fp->changeAttrByNum($Radius::Radius::ACCT_DELAY_TIME,
                             time - $p->{RecvTime});
      }
      else
      {
------------------------------------------------

Regards,
Nuno Nunes

-- 
Nuno Nunes ([EMAIL PROTECTED])
PGP Public Key: http://nunonunes.online.pt/pubkey.txt
NOVIS - Engenharia/Redes T�cnicas
Edif�cio Novis
Estrada da Outurela, 118  - A
2795-606 Carnaxide
tel: +351-210104426 | fax: +351-210104301

Attachment: msg10592/pgp00000.pgp
Description: PGP signature

Reply via email to