Hi Mike,

I got a problem when running multiple instances of Radiator with
external Database, Oracle, to enforce Simultaneous-Use limits. The
problem only exist when "Fork" is used in the config.

For environment, the Radiator runs in a Solaris machine with Oracle
sqlnet to access the Oracle serve. The sid and tables are created in the
Oracle server without problem. The Perl module DBI-1.11 and
DBD-Oracle-1.02 are installed. The version of Oracle is 8.0.5. The
config files are as follow:

# radius.cfg
.
.
.
<Realm DEFAULT>
    <AuthBy FILE>
        Filename /usr/local/etc/config
#      Fork
    </AuthBy>
        AcctLogFileName %L/detail
</Realm>

<Realm defaultrealm>
    <AuthBy SYSTEM>
        UseGetspnam
        Identifier System
        DefaultReply Service-Type = Framed,\
           Framed-Protocol = PPP
     </AuthBy>
</Realm>

<SessionDatabase SQL>
    DBSource dbi:Oracle:radius
    DBUsername userid
    DBAuth  password
</SessionDatabase>



#config
DEFAULT
Auth-Type=System,Group=g1,NAS-IP-Address=206.161.55.24,Simultaneous-Use=1

DEFAULT
Auth-Type=System,Group=g2,NAS-IP-Address=206.161.55.24,Simultaneous-Use=1

DEFAULT
Auth-Type=System,Group=g3,NAS-IP-Address=206.161.55.24,Simultaneous-Use=1

The configuration above has no problem without the "Fork".

However, when I put back the keyword "Fork", I would get the following
error messages inside the xterm which start the Radiator:

DBD::Oracle::db do failed: ORA-03113: end-of-file on communication
channel (DBD ERROR: OCIStmtExecute) at
/usr/local/lib/perl5/site_perl/Radius/SqlDb.pm line 230.

DBD::Oracle::db disconnect failed: ORA-12545: Connect failed because
target host or object does not exist (DBD ERROR: OCISessionEnd) at
/usr/local/lib/perl5/site_perl/Radius/SqlDb.pm line 244.

The above message would print continuously when a new user is getting
connected.

The logfile with trace 4 has the following message:

*** Received from 206.161.55.24 port 33100 ....
Code:       Access-Request
Identifier: 183
Authentic:  1234567890123456
Attributes:
 User-Name = "t1c"
 Service-Type = Framed-User
 NAS-IP-Address = 206.161.55.24
 NAS-Port = 1234
 NAS-Port-Type = Async
 Framed-IP-Address = 206.161.55.24
 User-Password =
""<132>w<184><228>{<198><170>os<163><211><214><4><211><219>"

Fri Jul  9 13:53:58 1999: DEBUG: Handling request with Handler
'Realm=DEFAULT'
Fri Jul  9 13:53:58 1999: DEBUG: Handling with Radius::AuthFILE
Fri Jul  9 13:53:58 1999: DEBUG: Radius::AuthFILE looks for match with
t1c
Fri Jul  9 13:53:58 1999: DEBUG: Radius::AuthFILE looks for match with
DEFAULT
Fri Jul  9 13:53:58 1999: DEBUG: Handling with Radius::AuthSYSTEM
Fri Jul  9 13:53:58 1999: DEBUG: getpwnam got t1c, ZJgPkhMU6EVy., 62360,
111, , , Test Account, /export/home/t1c, /usr/bin/ksh
Fri Jul  9 13:53:58 1999: DEBUG: Radius::AuthSYSTEM looks for match with
t1c
Fri Jul  9 13:53:58 1999: DEBUG: Query is: select NASIDENTIFIER,
NASPORT, ACCTSESSIONID from RADONLINE where USERNAME='t1c'

Fri Jul  9 13:53:58 1999: DEBUG: Radius::AuthSYSTEM ACCEPT:
Fri Jul  9 13:53:58 1999: DEBUG: Radius::AuthFILE ACCEPT:
Fri Jul  9 13:53:58 1999: DEBUG: Access accepted for t1c
Fri Jul  9 13:53:58 1999: DEBUG: Packet dump:
*** Sending to 206.161.55.24 port 33100 ....
Code:       Access-Accept
Identifier: 183
Authentic:  1234567890123456
Attributes:
 Service-Type = Framed
 Framed-Protocol = PPP

Fri Jul  9 13:53:58 1999: DEBUG: Packet dump:
*** Received from 206.161.55.24 port 33100 ....
Code:       Accounting-Request
Identifier: 184
Authentic:
<236><202><156><0><203><203><31>S<6><31><200>T<253>><239><182>
Attributes:
 User-Name = "t1c"
 Service-Type = Framed-User
 NAS-IP-Address = 206.161.55.24
 NAS-Port = 1234
 NAS-Port-Type = Async
 Acct-Session-Id = "1"
 Acct-Status-Type = Start
 Framed-IP-Address = 206.161.55.24

Fri Jul  9 13:53:58 1999: DEBUG: Handling request with Handler
'Realm=DEFAULT'
Fri Jul  9 13:53:58 1999: DEBUG: Handling with Radius::AuthFILE
Fri Jul  9 13:53:58 1999: DEBUG: Accounting accepted
Fri Jul  9 13:53:58 1999: DEBUG: Packet dump:
*** Sending to 206.161.55.24 port 33100 ....
Code:       Accounting-Response
Identifier: 184
Authentic:
<236><202><156><0><203><203><31>S<6><31><200>T<253>><239><182>
Attributes:

Fri Jul  9 13:53:58 1999: DEBUG:  Adding session for t1c, 206.161.55.24,
1234
Fri Jul  9 13:53:58 1999: DEBUG: do query is: delete from RADONLINE
where NASIDENTIFIER='206.161.55.24' and NASPORT=1234

Fri Jul  9 13:53:58 1999: DEBUG: do query is: insert into RADONLINE
(USERNAME, NASIDENTIFIER, NASPORT, ACCTSESSIONID, TIME_STAMP,
FRAMEDIPADDRESS, NASPORTTYPE, SERVICETYPE) values ('t1c',
'206.161.55.24', 1234, '1', 931499638, '206.161.55.24', 'Async',
'Framed-User')

Fri Jul  9 13:53:58 1999: DEBUG: Packet dump:
*** Received from 206.161.55.24 port 33100 ....
Code:       Accounting-Request
Identifier: 185
Authentic:
<22><200><241><178><140>*<145><3><174><175><230><147>0<235><224><226>
Attributes:
 User-Name = "t1c"
 Service-Type = Framed-User
 NAS-IP-Address = 206.161.55.24
 NAS-Port = 1234
 NAS-Port-Type = Async
 Acct-Session-Id = "1"
 Acct-Status-Type = Stop
 Framed-IP-Address = 206.161.55.24
 Acct-Delay-Time = 0
 Acct-Session-Time = 1000
 Acct-Input-Octets = 20000
 Acct-Output-Octets = 30000

Fri Jul  9 13:53:58 1999: DEBUG: Handling request with Handler
'Realm=DEFAULT'
Fri Jul  9 13:53:58 1999: DEBUG: Handling with Radius::AuthFILE
Fri Jul  9 13:53:58 1999: DEBUG: Accounting accepted
Fri Jul  9 13:53:58 1999: DEBUG: Packet dump:
*** Sending to 206.161.55.24 port 33100 ....
Code:       Accounting-Response
Identifier: 185
Authentic:
<22><200><241><178><140>*<145><3><174><175><230><147>0<235><224><226>
Attributes:

Fri Jul  9 13:53:58 1999: DEBUG: Child reaped
Fri Jul  9 13:53:58 1999: DEBUG:  Deleting session for t1c,
206.161.55.24, 1234
Fri Jul  9 13:53:58 1999: DEBUG: do query is: delete from RADONLINE
where NASIDENTIFIER='206.161.55.24' and NASPORT=1234

Fri Jul  9 13:53:58 1999: DEBUG: Child reaped
Fri Jul  9 13:53:58 1999: ERR: do failed for 'delete from RADONLINE
where NASIDENTIFIER='206.161.55.24' and NASPORT=1234': ORA-03113:
end-of-file on communication channel (DBD ERROR: OCIStmtExecute)
Fri Jul  9 13:53:58 1999: DEBUG: Child reaped
Fri Jul  9 13:53:58 1999: DEBUG: Child reaped
Fri Jul  9 13:53:58 1999: DEBUG: Child reaped
Fri Jul  9 13:59:11 1999: DEBUG: Reading users file
/usr/local/etc/config
Fri Jul  9 13:59:12 1999: INFO: Server started
Fri Jul  9 13:59:30 1999: DEBUG: Packet dump:

Then, the Radiator stop to enforce Simultaneous-Use limits. When I start
the Sqlplus and query the database table radonline, nothing is inside
the table even a user still login.

--
Cheers,

Anthony Chan
Sun Professional Services Hong Kong
22/F Shui On Centre,
8 Harbour Road, Wanchai,
Hong Kong

Phone: (852) 2820-0674
Fax  : (852) 2802-8655



===
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