Dear All
I am running freeradius-0.9.3 at my redhat 9 machine. rlm_sqlcounter module is also installed. at radius log shows that module is successfully loaded. Sat Apr 10 13:53:43 2004 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked but seems to me rlm_sqlcounter is not working properly. counter is not resetting the user as well as not rejecting though his maximum sessiontime has been finished. So whats wrong with my configuration. Can anyone help me out of this problem. I have put attribte at my mysql database mysql> select * from radcheck where username='testshuvo'; | id | UserName | Attribute | Value | op | +------+-----------+-----------------+-------+----+ | 6471 | testshuvo | User-Password | 12345 | := | | 6476 | testshuvo | Max-All-Session | 11000 | := | +------+-----------+-----------------+-------+----+ here is my configuration files #/etc/raddb/sqlcounter.conf #-----# sqlcounter noresetcounter { counter-name = Max-All-Session-Time check-name = Max-All-Session sqlmod-inst = sql key = User-Name reset = never query = "Select sum(AcctSessionTime) from radacct where username='%(%k)'" } sqlcounter dailycounter { driver = "rlm_sqlcounter" counter-name = Daily-Session-Time check-name = Max-Daily-Session sqlmod-inst = sqlcca3 key = User-Name reset = daily query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'" } sqlcounter monthlycounter { counter-name = Monthly-Session-Time check-name = Max-Monthly-Session sqlmod-inst = sqlcca3 key = User-Name reset = monthly query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'" } #-----# #/etc/raddb/radiusd.conf prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = /usr/sbin logdir = ${localstatedir}/log/radius raddbdir = ${sysconfdir}/raddb radacctdir = ${logdir}/radacct confdir = ${raddbdir} run_dir = ${localstatedir}/run/radiusd log_file = ${logdir}/radius.log libdir = /usr/lib pidfile = ${run_dir}/radiusd.pid user = radiusd group = radiusd max_request_time = 30 delete_blocked_requests = no cleanup_delay = 5 max_requests = 1024 bind_address = * port = 0 hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes log_stripped_names = no log_auth = no log_auth_badpass = no log_auth_goodpass = no usercollide = no lower_user = no lower_pass = no nospace_user = no nospace_pass = no checkrad = ${sbindir}/checkrad security { max_attributes = 200 reject_delay = 1 status_server = no } proxy_requests = yes $INCLUDE ${confdir}/proxy.conf $INCLUDE ${confdir}/clients.conf snmp = no $INCLUDE ${confdir}/snmp.conf thread pool { start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 10 max_requests_per_server = 0 } modules { $INCLUDE ${confdir}/sqlcounter.conf pap { encryption_scheme = crypt } chap { authtype = CHAP } pam { pam_auth = radiusd } unix { cache = no cache_reload = 600 #passwd = /etc/passwd shadow = /etc/shadow #group = /etc/group radwtmp = ${logdir}/radwtmp } eap { default_eap_type = md5 timer_expire = 60 md5 { } leap { } } mschap { authtype = MS-CHAP } realm realmslash { format = prefix delimiter = "/" } realm suffix { format = suffix delimiter = "@" } realm realmpercent { format = suffix delimiter = "%" } preprocess { huntgroups = ${confdir}/huntgroups hints = ${confdir}/hints with_ascend_hack = no ascend_channels_per_line = 23 with_ntdomain_hack = no with_specialix_jetstream_hack = no with_cisco_vsa_hack = no } files { usersfile = ${confdir}/users acctusersfile = ${confdir}/acct_users compat = no } detail { detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d detailperm = 0600 } acct_unique { key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP- Address, NAS-Port-Id" } $INCLUDE ${confdir}/sql.conf radutmp { filename = ${logdir}/radutmp username = %{User-Name} case_sensitive = yes check_with_nas = yes perm = 0600 callerid = "yes" } radutmp sradutmp { filename = ${logdir}/sradutmp perm = 0644 callerid = "no" } attr_filter { attrsfile = ${confdir}/attrs } counter daily { filename = ${raddbdir}/db.daily key = User-Name count-attribute = Acct-Session-Time reset = daily counter-name = Daily-Session-Time check-name = Max-Daily-Session allowed-servicetype = Framed-User cache-size = 5000 } always fail { rcode = fail } always reject { rcode = reject } always ok { rcode = ok simulcount = 0 mpp = no } expr { } digest { } exec { wait = yes input_pairs = request } exec echo { wait = yes program = "/bin/echo %{User-Name}" input_pairs = request output_pairs = reply } ippool main_pool { range-start = 192.168.1.1 range-stop = 192.168.3.254 netmask = 255.255.255.0 cache-size = 800 session-db = ${raddbdir}/db.ippool ip-index = ${raddbdir}/db.ipindex override = no } } instantiate { expr # daily } authorize { preprocess # eap suffix # files sql chap mschap noresetcounter dailycounter monthlycounter } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } # unix eap # pam } preacct { preprocess suffix #files } accounting { acct_unique detail sql # radutmp } session { sql } post-auth { } pre-proxy { } post-proxy { eap } here is the debugging log for your understanding modcall: group preacct returns noop for request 2 modcall: entering group accounting for request 2 rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request, unique ID MAY be inconsistent rlm_acct_unique: Hashing ',Client-IP-Address = 202.22.200.41,NAS-IP-Address = 202.22.201.4,Acct-Session-Id = "820001CC",User-Name = "testshuvo"' rlm_acct_unique: Acct-Unique-Session-ID = "43eb944ab525f0bf". modcall[accounting]: module "acct_unique" returns ok for request 2 radius_xlat: '/var/log/radius/radacct/202.22.200.41/detail-20040410' rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/radius/radacct/202.22.200.41/detail-20040410 modcall[accounting]: module "detail" returns ok for request 2 radius_xlat: 'testshuvo' rlm_sql (sql): sql_set_user escaped user --> 'testshuvo' radius_xlat: 'INSERT into radacct (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values ('', '820001CC', '43eb944ab525f0bf', 'testshuvo', 'NULL', '202.22.201.4', '18', 'Async', '2004-04-10 14:16:19', '0', '0', 'RADIUS', '', '', '0', '0', '', '', '', 'Framed- User', 'PPP', '202.22.204.61', '0', '0')' radius_xlat: '/var/log/radius/sqltrace.sql' rlm_sql (sql): Reserving sql socket id: 1 rlm_sql_mysql: query: INSERT into radacct (RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values ('', '820001CC', '43eb944ab525f0bf', 'testshuvo', 'NULL', '202.22.201.4', '18', 'Async', '2004-04-10 14:16:19', '0', '0', 'RADIUS', '', '', '0', '0', '', '', '', 'Framed- User', 'PPP', '202.22.204.61', '0', '0') rlm_sql (sql): Released sql socket id: 1 modcall[accounting]: module "sql" returns ok for request 2 modcall: group accounting returns ok for request 2 Sending Accounting-Response of id 25 to 202.22.200.41:1646 Proxy-State = 0x33303139 Finished request 2 Going to the next request --- Walking the entire request list --- Waking up in 4 seconds... --- Walking the entire request list --- Cleaning up request 1 ID 85 with timestamp 4077ad51 Waking up in 2 seconds... --- Walking the entire request list --- Cleaning up request 2 ID 25 with timestamp 4077ad53 Nothing to do. Sleeping until we see a request. rad_recv: Accounting-Request packet from host 202.22.200.41:1646, id=26, length=160 Acct-Session-Id = "820001CC" User-Name = "testshuvo" NAS-IP-Address = 202.22.201.4 NAS-Port = 18 NAS-Port-Type = Async Acct-Status-Type = Stop Acct-Session-Time = 11 Acct-Authentic = RADIUS Acct-Input-Octets = 2044 Acct-Output-Octets = 1199 Acct-Terminate-Cause = User-Request LE-Terminate-Detail = "User Request - PPP Term Req" Service-Type = Framed-User Framed-Protocol = PPP Framed-IP-Address = 202.22.204.61 Acct-Delay-Time = 0 Proxy-State = 0x33303161 modcall: entering group preacct for request 3 modcall[preacct]: module "preprocess" returns noop for request 3 rlm_realm: No '@' in User-Name = "testshuvo", looking up realm NULL rlm_realm: Found realm "NULL" rlm_realm: Adding Stripped-User-Name = "testshuvo" rlm_realm: Proxying request from user testshuvo to realm NULL rlm_realm: Adding Realm = "NULL" rlm_realm: Accounting realm is LOCAL. modcall[preacct]: module "suffix" returns noop for request 3 modcall: group preacct returns noop for request 3 modcall: entering group accounting for request 3 rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request, unique ID MAY be inconsistent rlm_acct_unique: Hashing ',Client-IP-Address = 202.22.200.41,NAS-IP-Address = 202.22.201.4,Acct-Session-Id = "820001CC",User-Name = "testshuvo"' rlm_acct_unique: Acct-Unique-Session-ID = "43eb944ab525f0bf". modcall[accounting]: module "acct_unique" returns ok for request 3 radius_xlat: '/var/log/radius/radacct/202.22.200.41/detail-20040410' rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/radius/radacct/202.22.200.41/detail-20040410 modcall[accounting]: module "detail" returns ok for request 3 radius_xlat: 'testshuvo' rlm_sql (sql): sql_set_user escaped user --> 'testshuvo' radius_xlat: 'UPDATE radacct SET AcctStopTime = '2004-04-10 14:16:29', AcctSessionTime = '11', AcctInputOctets = '2044', AcctOutputOctets = '1199', AcctTerminateCause = 'User-Request', AcctStopDelay = '0', ConnectInfo_stop = '' WHERE AcctSessionId = '820001CC' AND UserName = 'testshuvo' AND NASIPAddress = '202.22.201.4' AND AcctStopTime = 0' radius_xlat: '/var/log/radius/sqltrace.sql' rlm_sql (sql): Reserving sql socket id: 0 rlm_sql_mysql: query: UPDATE radacct SET AcctStopTime = '2004-04-10 14:16:29', AcctSessionTime = '11', AcctInputOctets = '2044', AcctOutputOctets = '1199', AcctTerminateCause = 'User-Request', AcctStopDelay = '0', ConnectInfo_stop = '' WHERE AcctSessionId = '820001CC' AND UserName = 'testshuvo' AND NASIPAddress = '202.22.201.4' AND AcctStopTime = 0 rlm_sql (sql): Released sql socket id: 0 modcall[accounting]: module "sql" returns ok for request 3 modcall: group accounting returns ok for request 3 Sending Accounting-Response of id 26 to 202.22.200.41:1646 Proxy-State = 0x33303161 Finished request 3 Going to the next request --- Walking the entire request list --- Waking up in 6 seconds... --- Walking the entire request list --- Cleaning up request 3 ID 26 with timestamp 4077ad5d Nothing to do. Sleeping until we see a request. waiting for your quick response regarding this matter. thanks and regards ------------------------------------------------- This mail sent through IMP: http://mail.accesstel.net/ - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html