diff options
Diffstat (limited to 'etc/inc/captiveportal.inc')
-rw-r--r-- | etc/inc/captiveportal.inc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index 736763b..e653500 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -450,7 +450,8 @@ function captiveportal_prune_old() { else $idletimeout = 0; - if (!$timeout && !$idletimeout && !isset($config['captiveportal']['reauthenticate']) && !isset($config['captiveportal']['radiussession_timeout'])) + if (!$timeout && !$idletimeout && !isset($config['captiveportal']['reauthenticate']) && + !isset($config['captiveportal']['radiussession_timeout']) && !isset($config['voucher']['enable'])) return; $captiveportallck = lock('captiveportal'); @@ -506,6 +507,14 @@ function captiveportal_prune_old() { } } + /* if vouchers are configured, activate session timeouts */ + if (!$timedout && isset($config['voucher']['enable']) && !empty($cpdb[$i][7])) { + if (time() >= ($cpdb[$i][0] + $cpdb[$i][7])) { + $timedout = true; + $term_cause = 5; // Session-Timeout + } + } + /* if radius session_timeout is enabled and the session_timeout is not null, then check if the user should be logged out */ if (!$timedout && isset($config['captiveportal']['radiussession_timeout']) && !empty($cpdb[$i][7])) { if (time() >= ($cpdb[$i][0] + $cpdb[$i][7])) { |