I think the hook belongs to the Realm and Handler statements.
/Ingvar

-----Original Message-----
From: Lisa Goulet [mailto:[EMAIL PROTECTED]]
Sent: den 17 november 2000 16:22
To: [EMAIL PROTECTED]
Subject: (RADIATOR) PreHandlerHook



Hi all,

I've implemented a PreHandlerHook for filtering out Calling-Station-Id. I
used the code in one of the postings. It doesn't seem to be doing the
filtering, there is no indication of the code being executed in the logfile.
There are know errors when the radiator starts up. 

Here's the radmin.cfg file:

Foreground
LogDir          .
DbDir           .

Trace   4

# Secrets between clients
<Client DEFAULT>
        Secret  xxxxxxxx

         PreHandlerHook sub { \
            my $calledid = ${$_[0]}->get_attr('Calling-Station-Id');\
            if (${calledid} =~ /207505640|207505641/) {\
               ${$_[0]}->add_attr('backbone','baduser'); return;\
            }\
         } 
</Client>


# Database for clients
<ClientListSQL>
        DBSource        dbi:Pg:dbname=radmin;host=xxx.xxx.xxx.xxx
        DBUsername      radmin
        DBAuth  xxxxxx
</ClientListSQL>


# IP address allocation
<AddressAllocator SQL>
        Identifier      SQLAllocator

        DBSource        dbi:Pg:dbname=radmin;host=xxx.xxx.xxx.xxx
        DBUsername      radmin
        DBAuth  xxxxxx
        DefaultLeasePeriod      86400

        <AddressPool 207500370-213.35.248.144>
               Subnetmask      255.255.255.255
               DNSServer       62.58.62.133
               Range           213.35.224.1 213.35.224.100
       </AddressPool>

</AddressAllocator>

<AuthBy RADMIN>
        Identifier      CheckRADMIN
        # Change DBSource, DBUsername, DBAuth for your database
        # See the reference manual. You will also have to
        # change the one in <SessionDatabse SQL> below
        # so its the same
        DBSource        dbi:Pg:dbname=radmin;host=xxx.xxx.xxx.xxx
        DBUsername      radmin
        DBAuth  xxxxxx

        # You can add to or change these if you want, but you
        # will probably want to change the database schema first
        AccountingTable RADUSAGE
        AcctColumnDef   USERNAME,User-Name
        AcctColumnDef   TIME_STAMP,Timestamp,integer
        AcctColumnDef   ACCTSTATUSTYPE,Acct-Status-Type,integer
        AcctColumnDef   ACCTDELAYTIME,Acct-Delay-Time,integer
        AcctColumnDef   ACCTINPUTOCTETS,Acct-Input-Octets,integer
        AcctColumnDef   ACCTOUTPUTOCTETS,Acct-Output-Octets,integer
        AcctColumnDef   ACCTSESSIONID,Acct-Session-Id
        AcctColumnDef   ACCTSESSIONTIME,Acct-Session-Time,integer
        AcctColumnDef   ACCTTERMINATECAUSE,Acct-Terminate-Cause,integer
        AcctColumnDef   FRAMEDIPADDRESS,Framed-IP-Address
        AcctColumnDef   NASIDENTIFIER,NAS-Identifier
        AcctColumnDef   NASIDENTIFIER,NAS-IP-Address
        AcctColumnDef   NASPORT,NAS-Port,integer
        AcctColumnDef   DNIS,Called-Station-Id

        # This updates the time and octets left
        # for this user
        AcctSQLStatement update RADUSERS set \
                TIMELEFT=TIMELEFT-0%{Acct-Session-Time}, \
                OCTETSINLEFT=OCTETSINLEFT-0%{Acct-Input-Octets}, \
                OCTETSOUTLEFT=OCTETSOUTLEFT-0%{Acct-Output-Octets} where \
                USERNAME='%n'

        # These are the classic things to add to each users
        # reply to allow a PPP dialup session. It may be
        # different for your NAS. This will add some
        # reply items to everyone's reply
        AddToReply Framed-Protocol = PPP,\
                Framed-IP-Netmask = 255.255.255.255,\
                Framed-Routing = None,\
                Service-Type = Framed-User,\
                Ascend-Client-Primary-DNS = 62.58.62.132,\
                Framed-MTU = 1500
</AuthBy>


<SessionDatabase SQL>
        # This database spec usually should be exactly the same
        # as in <AuthBy RADMIN> above
        DBSource        dbi:Pg:dbname=radmin;host=xxx.xxx.xxx.xxx
        DBUsername      radmin
        DBAuth          xxxxxx 
</SessionDatabase>


# check based on DNIS
<Realm DEFAULT>
        # check each in the list
        AuthByPolicy ContinueWhileAccept

        # check port limits
        <AuthBy PORTLIMITCHECK>
                LimitQuery select maxports from portlimits \
                    where DNIS='%{Called-Station-Id}'
                CountQuery select COUNT(*) from RADONLINE \
                    where DNIS='%{Called-Station-Id}'
        </AuthBy>

        # allocate ip addresses
        <AuthBy DYNADDRESS>
                Allocator SQLAllocator
                PoolHint %{Called-Station-Id}-%{NAS-IP-Address}
        </AuthBy>

        # radmin does the rest (user, password etc)
        AuthBy CheckRADMIN
</Realm> 




===
Archive at http://www.starport.net/~radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.

===
Archive at http://www.starport.net/~radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.

Reply via email to