Hello all,
I use freeradius0.3+redhat6.2+oracle8.1.6! Debug message is:
rad_recv: Accounting-Request packet from host 127.0.0.1:1025, id=81, length=48
User-Name = "test1"
NAS-IP-Address = 192.168.0.100
Acct-Status-Type = Start
Acct-Session-Id = "0"
Acct-Authentic = RADIUS
rlm_sql: Reserving sql socket id: 4
radius_xlat: 'test1'
sql_escape in: 'test1'
sql_escape out: 'test1'
sql_set_user: escaped user --> 'test1'
radius_xlat: 'INSERT into radacct (RadAcctId, AcctSessionId, AcctUniqueId, User
Name, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime,
AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOc
tets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, S
erviceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) valu
es('', '0', '', 'test1', '', '192.168.0.100', '', '', TO_DATE('2001-10-19 14:53:
00','-MM-DD HH24:MI:SS'), '', '0', 'RADIUS', '', '', '0', '0', '', '', '', '
', '', '', '', '0')'
rlm_sql: Released sql socket id: 4
modcall[accounting]: module "sql" returns ok
rad_recv: Accounting-Request packet from host 127.0.0.1:1025, id=82, length=78
User-Name = "test1"
NAS-IP-Address = 192.168.0.100
Acct-Status-Type = Stop
Acct-Session-Id = "0"
Acct-Authentic = RADIUS
Acct-Input-Octets = 8000
Acct-Output-Octets = 16000
Acct-Input-Packets = 10
Acct-Output-Packets = 20
Acct-Session-Time = 100
rlm_sql: Reserving sql socket id: 4
radius_xlat: 'test1'
sql_escape in: 'test1'
sql_escape out: 'test1'
sql_set_user: escaped user --> 'test1'
radius_xlat: 'UPDATE radacct SET AcctStopTime = TO_DATE('2001-10-19 14:55:13','
-MM-DD HH24:MI:SS'), AcctSessionTime = '100', AcctInputOctets = '8000', Acct
OutputOctets = '16000', AcctTerminateCause = '', AcctStopDelay = '', ConnectInfo
_stop = '' WHERE AcctSessionId = '0' AND UserName = 'test1' AND NASIPAddress = '
192.168.0.100''
MASTER: exit on signal (11)
###
Then I modified src/modules/rlm_sql/drivers/rlm_sql_oracle/sql_oracle.c
1.
int sql_init_socket(SQLSOCK *sqlsocket, SQL_CONFIG *config) {
rlm_sql_oracle_sock *oracle_sock;
sqlsocket->conn = (rlm_sql_oracle_sock *)rad_malloc(sizeof(rlm_sql_oracl
e_sock));
/*test 2001/10/19*/
memset(sqlsocket->conn,0,sizeof(rlm_sql_oracle_sock));
oracle_sock = sqlsocket->conn;
2.int sql_free_result(SQLSOCK *sqlsocket, SQL_CONFIG *config) {
int i=0;
int num_fields;
rlm_sql_oracle_sock *oracle_sock = sqlsocket->conn;
num_fields = sql_num_fields(sqlsocket, config);
if (num_fields >= 0) {/*modified sql_num_fields to num_fields*/
for(i=0; i < num_fields; i++) {
free(oracle_sock->results[i]);
}
free(oracle_sock->results);
}
oracle_sock->results=NULL;
return 0;
}
run radiusd success!
21CNÍøÂç²úÆ·³ÏÕ÷´úÀí
http://agent.21cn.com
ÏëÃâÊܹã¸æÐŵÄɧÈÅ£¬ÇëÂíÉÏÉý¼¶Îª21CN¾¼ÃÓÊÓû§¡£
http://news.21cn.com/cgibin/urlhit2-mcounter.php3?url=http://member.21cn.com/economy/upgrade.php&rd=1
²»¿´ÊÇÄãµÄ´í£¬²»ÔÙ¿´ÊÇÎÒµÄ´í¡£
http://adinfo.21cn.com
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html