diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-09-12 09:43:16 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-09-12 09:43:16 -0300 |
commit | 8d5ddc09316362c582bece0e0533fd0f74c9aa01 (patch) | |
tree | c4f934c9bb272cc4393b0cf05b252033eb74e46e /usr/local/captiveportal | |
parent | 2f1548d69f5ca0e0427caf18e2c391649265bcd7 (diff) | |
download | pfsense-8d5ddc09316362c582bece0e0533fd0f74c9aa01.zip pfsense-8d5ddc09316362c582bece0e0533fd0f74c9aa01.tar.gz |
Redirect blocked macs to desired URL or show an error message
Diffstat (limited to 'usr/local/captiveportal')
-rwxr-xr-x | usr/local/captiveportal/index.php | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/usr/local/captiveportal/index.php b/usr/local/captiveportal/index.php index e859c63..b7c708c 100755 --- a/usr/local/captiveportal/index.php +++ b/usr/local/captiveportal/index.php @@ -105,6 +105,9 @@ if ($macfilter || $passthrumac) { unset($tmpres); } +/* Get blocked macs */ +$blockedmacs = array_flip(captiveportal_read_blockedmacs_db()); + /* find out if we need RADIUS + RADIUSMAC or not */ if (file_exists("{$g['vardb_path']}/captiveportal_radius_{$cpzone}.db")) { $radius_enable = TRUE; @@ -136,6 +139,13 @@ setTimeout('window.close();',5000) ; EOD; captiveportal_disconnect_client($_POST['logout_id']); +} else if ($macfilter && $clientmac && isset($blockedmacs[$clientmac])) { + captiveportal_logportalauth($clientmac,$clientmac,$clientip,"Blocked MAC address"); + if (!empty($cpcfg['blockedmacsurl'])) + portal_reply_page($cpcfg['blockedmacsurl'], "redir"); + else + portal_reply_page($redirurl, "error", "This MAC address has been blocked"); + } else if ($clientmac && $radmac_enable && portal_mac_radius($clientmac,$clientip, $radiusctx)) { /* radius functions handle everything so we exit here since we're done */ |