Hmm..  Let's try this again.  I apologize for repeating all of the
detail here....

> >   #<Handler NAS-Address-Port-List=%D/ports.isdn,Chassis-Call-Slot=6>
> >   <Handler Client-Id=208.153.18.227,Chassis-Call-Slot=6>
> >   <Handler Client-Id=208.153.18.227>
> > 
> > The first item is commented out because it kills radius 
> > with the message
> >  Can't call method "log" on unblessed reference at 
> > /usr/local/lib/perl5/site_perl/5.005/Radius/AuthGeneric.pm line 644.
> > 
> 
> You will not be able to use the NAS-Address-Port-List=%D/ports.isdn construct,
> as Radiator expects to do a one-to-one match on the attribute in the packet and
> whatever you specify on the right side of the "=".

Then I'm afraid I misunderstood the documentation.  It seems to
indicate that this is a valid check item, and that handlers can
therefore use it.  Here are the salient bits:

>From 6.13 <Handler attribute=value,attribute=value, ....>
---------------------------------------------------------
    In <Handler checklist >, the checklist expression is a list of
    request attributes that must all match before this Handler will
    be used to handle the request. The format is exactly the same as
    a list of check items in a user file: a list of attribute=value
    pairs, separated by commas. See Section 13.1 for a description of
    all the check items you can use. 

>From 13.1 Check items
---------------------
    13.1.14 NAS-Address-Port-List 
    Specifies the name of a file that contains a list of permitted
    NAS address/port combinations. See Section 15.7 for the Portlist
    file format.
     : : :

> It shouldn'd kill Radiator though - I'll look at it a bit later.

Sounds good.

> You also can't specify two Handler clauses one after the other as you have
> showon above. Handlers must be complete clauses, like this:
> 
> <Handler ....>
>       <AuthBy ....
>               ....
>       </AuthBy>
> </Handler>

I know that....  A little further down in the document I showed the
full text of those clauses.  I had thought it would be clearer if I
first showed a summary of the Handler check-items that I'd tried. 
(Obviusly, I was mistaken).  Incidentally, I only intend to have one
handler for this; I have currently have several in a row just to show
what Radiator does with each of them.

> Also - what version of Radiator are you running and what
> dictionary? My standard dictionary for Radiator 2.14.1 shows the
> following: 
> 
>       VENDORATTR  429 USR-Chassis-Call-Slot   36889   integer  
> 
> In other words, Chassis-Call-Slot does not exist and this will
> certainly cause problems in your Handler. 

Both the 14.1 release and the 14.1 patch versions of dictionary.usr
define Chassis-Call-Slot in favor of USR-Chassis-Call-Slot.  But even if it weren't 
standard, it *is* being printed in my log file by Radiator (as you see below), so it 
would have to exist in my 
dictionary.

Here, for the record, was the original message:

-------------- [ original message ] -----------

We have just put up the latest Radiator code, and have 
completely revamped our config to take advantage of the
nifty new stuff.  But we're having problems with accounting
packets.  Radiator gets the packets, but according to "snoop"
it never replies to them. 

   Note:  this means that the problem is _not_ with the NAS.
   It never gets any ACKs because Radiator isn't sending any.
   So the NAS (correctly) keeps resending the packets.

Here are the salient portions of our config.

  <Client xxxxx>
        Secret  xxxxx
        IgnoreAcctSignature
        DupInterval 0
  </Client>

The IgnoreAcctSignature and DupInterval lines are there 
for debugging only; they should go away when everything's 
working.

  # Handle All the Accounting requests
  <Handler Acct-Status-Type=/.+/>
        AcctLogFileName %L/%R%c-%Y%m%d
        AccountingHandled
  </Handler>

This is the first handler in the config file.
According to the log, it is properly intercepting
the accounting packets.

Finally, here is our PreClientHook:

sub{
  ## lc() the username and remove junk characters.
  ## If the user has entered a realm, normalize it.

  # We don't need to re-create this hash for every packet....
  if (!defined %main::loa_realm2class) {
    %main::loa_realm2class = (
                'realm1'            =>  'class1',
                'realm2'            =>  'class2',
                'realm3'            =>  'class2',
                 : : :                   : : :
                );
  }

  my $p = ${$_[0]};
  my ($user, $realm);
  ($user = lc $p->getUserName) =~ tr/[\\,*\$:'"\x00-\x20\x7F-\x1FF]//d;
  ($user, $realm) = split ('@', $user);

  if ($realm) {
    $realm = ( $main::loa_realm2class{$realm}  or  $realm);
    $p->changeUserName("$user\@$realm");
  }
}

---------

And here is a bit from the log file.  The daemon has 
just been killed and restarted....

Fri Jan  7 01:25:40 2000: DEBUG: Reading users file /usr/local/etc/raddb/users.isdn
Fri Jan  7 01:25:40 2000: DEBUG: Reading users file /usr/local/etc/raddb/users.isdn
Fri Jan  7 01:25:42 2000: INFO: Server started
Fri Jan  7 01:25:43 2000: DEBUG: Packet dump:
*** Received from 209.113.155.4 port 1651 ....
Code:       Accounting-Request
Identifier: 36
Authentic:  <3><221>d<237><140><171><152><147>VKov<219>}<171><139>
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Stop
        Acct-Session-Time = 1553
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Acct-Input-Octets = 20479
        Acct-Output-Octets = 274291
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Acct-Terminate-Cause = ACCT_TERM_USER_REQUEST
        Livingston = "User Request - PPP Term Req"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 10699
        Proxy-State = 
8u<135><28><216>)L<18><4>$f<0>I\<221><174><31>P<204><141>&<165>}\<219><19><217><174>

Fri Jan  7 01:25:43 2000: DEBUG: Check if Handler Acct-Status-Type=/.+/ should be used 
to handle this request
Fri Jan  7 01:25:43 2000: DEBUG: dump:Code:       Accounting-Request
Identifier: 36
Authentic:  <3><221>d<237><140><171><152><147>VKov<219>}<171><139>
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Stop
        Acct-Session-Time = 1553
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Acct-Input-Octets = 20479
        Acct-Output-Octets = 274291
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Acct-Terminate-Cause = ACCT_TERM_USER_REQUEST
        Livingston = "User Request - PPP Term Req"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 10699
        Proxy-State = 
8u<135><28><216>)L<18><4>$f<0>I\<221><174><31>P<204><141>&<165>}\<219><19><217><174>

Fri Jan  7 01:25:43 2000: DEBUG: Handling request with Handler 'Acct-Status-Type=/.+/'
Fri Jan  7 01:25:43 2000: DEBUG: Deleting session for [EMAIL PROTECTED], 
216.41.76.18, 4
Fri Jan  7 01:25:43 2000: DEBUG: Packet dump:
*** Received from 209.113.155.4 port 1651 ....
Code:       Accounting-Request
Identifier: 36
Authentic:  <3><221>d<237><140><171><152><147>VKov<219>}<171><139>
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Stop
        Acct-Session-Time = 1553
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Acct-Input-Octets = 20479
        Acct-Output-Octets = 274291
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Acct-Terminate-Cause = ACCT_TERM_USER_REQUEST
        Livingston = "User Request - PPP Term Req"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 10699
        Proxy-State = 
8u<135><28><216>)L<18><4>$f<0>I\<221><174><31>P<204><141>&<165>}\<219><19><217><174>

Fri Jan  7 01:25:43 2000: DEBUG: Check if Handler Acct-Status-Type=/.+/ should be used 
to handle this request
Fri Jan  7 01:25:43 2000: DEBUG: dump:Code:       Accounting-Request
Identifier: 36
Authentic:  <3><221>d<237><140><171><152><147>VKov<219>}<171><139>
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Stop
        Acct-Session-Time = 1553
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Acct-Input-Octets = 20479
        Acct-Output-Octets = 274291
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Acct-Terminate-Cause = ACCT_TERM_USER_REQUEST
        Livingston = "User Request - PPP Term Req"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 10699
        Proxy-State = 
8u<135><28><216>)L<18><4>$f<0>I\<221><174><31>P<204><141>&<165>}\<219><19><217><174>

Fri Jan  7 01:25:43 2000: DEBUG: Handling request with Handler 'Acct-Status-Type=/.+/'
Fri Jan  7 01:25:43 2000: DEBUG: Deleting session for [EMAIL PROTECTED], 
216.41.76.18, 4
Fri Jan  7 01:25:44 2000: DEBUG: Packet dump:
*** Received from 209.113.155.4 port 1651 ....
Code:       Accounting-Request
Identifier: 37
Authentic:  <237><161>Q<131><13><176><208><28>j.cJP<160><246>[
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Start
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 12252
        Proxy-State = 
8u<135><28><216>)L<18><4>$0<0>6!<215><144><7>G1-<2>o<143><163>1<209>i)

Fri Jan  7 01:25:44 2000: DEBUG: Check if Handler Acct-Status-Type=/.+/ should be used 
to handle this request
Fri Jan  7 01:25:44 2000: DEBUG: dump:Code:       Accounting-Request
Identifier: 37
Authentic:  <237><161>Q<131><13><176><208><28>j.cJP<160><246>[
Attributes:
        Acct-Session-Id = "1C002EBF"
        User-Name = "[EMAIL PROTECTED]"
        Client-Id = 216.41.76.18
        NAS-Port = 4
        NAS-Port-Type = Async
        Acct-Status-Type = Start
        Acct-Authentic = RADIUS
        Connect_Info = 858862128
        Called-Station-Id = "9783364950"
        Calling-Station-Id = "9787775389"
        Class = "cybertours.com"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 216.41.76.164
        Acct-Delay-Time = 12252
        Proxy-State = 
8u<135><28><216>)L<18><4>$0<0>6!<215><144><7>G1-<2>o<143><163>1<209>i)

Fri Jan  7 01:25:44 2000: DEBUG: Handling request with Handler 'Acct-Status-Type=/.+/'
Fri Jan  7 01:25:44 2000: DEBUG: Adding session for [EMAIL PROTECTED], 216.41.76.18, 
4

Phil Freed <[EMAIL PROTECTED]>

===
Archive at http://www.thesite.com.au/~radiator/
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.

Reply via email to