Hi mate
I have already reported this error in the forum.
When you create "Profiles in time" and the user connects via the "login page" FreeRADIUS from this error.
Below I have uploaded my Virtual Machine with Radiusdesk 1064 version of "Mediafire"
Clean install with OS 6 and Debian Apache2, Php5, Mysql, Radiusdesk.
Same operation was also performed on the operating system Ubuntu.
I also have performed a clean install with Radiusdesk and Nginx, but the bug in FreeRADIUS is always present.
The freeradius bug is also present on your virtual machine that you have attached the website "Radiusdesk."
--- policy.conf.orig 2015-01-12 06:53:16.000000000 +0200
+++ policy.conf 2015-01-22 15:51:58.991066903 +0200
@@ -136,21 +136,21 @@
# we can now use it in a query
if("%{control:Rd-Tmp-Avail-Time}"){ #This indicates it it a device!
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)) FROM radacct WHERE callingstationid='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
+ Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0) FROM radacct WHERE callingstationid='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
else{
#Here we need to see if the counter is to be applied on the device level and there is a device present in the request
if((control:Rd-Mac-Counter-Time)&&(request:Calling-Station-Id)){
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0))\
+ Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0)\
FROM radacct WHERE username='%{request:User-Name}' AND callingstationid='%{request:Calling-Station-Id}' \
AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
else{
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0))\
+ Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0)\
FROM radacct WHERE username='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
~~~~~~~
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi mate
I have already reported this error in the forum.
When you create "Profiles in time" and the user connects via the "login page" FreeRADIUS from this error.
Link Image: http://www.mediafire.com/convkey/f50b/7db22xnnv99osbvfg.jpg?size_id=6
I have use your example:
I create Profile:
Rd-Total-Time /Check /120
Rd-Reset-Type-Time /Check /daily
Rd-Cap-Type-Time /Check /hard
Fall-Through /Reply /Yes
I change only 3600 ------>120
This not function, Freeradius to error look image:
http://www.mediafire.com/convkey/9901/dira3t7ncs1j33rfg.jpg?size_id=6
Why ?
Hi Dirk
Below I have uploaded my Virtual Machine with Radiusdesk 1064 version of "Mediafire"
Clean install with OS 6 and Debian Apache2, Php5, Mysql, Radiusdesk.
Same operation was also performed on the operating system Ubuntu.
I also have performed a clean install with Radiusdesk and Nginx, but the bug in FreeRADIUS is always present.
The freeradius bug is also present on your virtual machine that you have attached the website "Radiusdesk."
Link my VM (Radiusdesk with Apache2):- http://www.mediafire.com/download/kzb71250w269i7m/RadiusDesk_rv_1064_Apache.ova
Tests were performed with virtual machines and real machines.
Fix for this bug:
~~~~~~
--- policy.conf.orig 2015-01-12 06:53:16.000000000 +0200
+++ policy.conf 2015-01-22 15:51:58.991066903 +0200
@@ -136,21 +136,21 @@
# we can now use it in a query
if("%{control:Rd-Tmp-Avail-Time}"){ #This indicates it it a device!
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)) FROM radacct WHERE callingstationid='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
+ Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0) FROM radacct WHERE callingstationid='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
else{
#Here we need to see if the counter is to be applied on the device level and there is a device present in the request
if((control:Rd-Mac-Counter-Time)&&(request:Calling-Station-Id)){
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0))\ + Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0)\ FROM radacct WHERE username='%{request:User-Name}' AND callingstationid='%{request:Calling-Station-Id}' \ AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
else{
update control {
- Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0))\ + Rd-Used-Time := "%{sql:SELECT IFNULL(SUM(acctsessiontime - GREATEST((%{control:Rd-Start-Time} - UNIX_TIMESTAMP(acctstarttime)), 0)),0)\ FROM radacct WHERE username='%{request:User-Name}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%{control:Rd-Start-Time}'}"
}
}
~~~~~~~
Great!
I'm going to apply that patch as soon as there is some spare time.
Many many thanks :-)
FYI:
system@ubuntu:/var/www/cake2/rd_cake/Setup/Radius$ svn commit -m "Apply counter patch from Atomic - Many thanks"
Password:
Sending Radius/raddb_rd.tar.gz
Transmitting file data .
Committed revision 1252.