// See RFC2866 for this.
}
-function RADIUS_ACCOUNTING_STOP($ruleno,$username,$sessionid,$start_time,$radiusip,$radiusport,$radiuskey,$clientip,$clientmac,$interimupdate=false, $radius_term_cause = 1) {
+function RADIUS_ACCOUNTING_STOP($ruleno,$username,$sessionid,$start_time,$radiusip,$radiusport,$radiuskey,$clientip,$clientmac, $term_cause = 1, $interimupdate=false,$stop_time = null) {
# $debug = 1 ;
global $config;
+ $stop_time = (empty($stop_time)) ? time() : $stop_time;
exec("/bin/hostname", $nasHostname) ;
if(!$nasHostname[0])
$nasHostname[0] = "quewall" ;
$nas_port = $ruleno - 10000;
$nas_mac = get_interface_mac($config['interfaces']['wan']['if']);
$ip_exp=explode(".",$clientip);
+ $session_time = $stop_time - $start_time;
$radiusvendor = $config['captiveportal']['radiusvendor'] ? $config['captiveportal']['radiusvendor'] : null;
switch($radiusvendor) {
40,6,0,0,0,$acctstatustype, // Acct Status Type
45,6,0,0,0,1, // Acct RADIUS Authenticated
44,2+strlen($sessionid),$sessionid, // Acct Session ID
- 49,6,$radius_term_cause, // Acct Terminate = User Request
- 46,6,time() - $start_time, // Session Time
+ 49,6,$term_cause, // Acct Terminate
+ 46,6,$session_time, // Session Time
42,6,$input_bytes, // Input Octets
47,6,$input_pkts, // Input Packets
52,6,$input_gigawords, // Input Gigawords
40,6,0,0,0,$acctstatustype, // Acct Status Type
45,6,0,0,0,1, // Acct RADIUS Authenticated
44,2+strlen($sessionid),$sessionid, // Acct Session ID
- 49,6,$radius_term_cause, // Acct Terminate = User Request
- 46,6,time() - $start_time, // Session Time
+ 49,6,$term_cause, // Acct Terminate = User Request
+ 46,6,$session_time, // Session Time
42,6,$input_bytes, // Input Octets
47,6,$input_pkts, // Input Packets
52,6,$input_gigawords, // Input Gigawords