Revision 0d33f1fc
Added by Renato Botelho almost 12 years ago
etc/inc/captiveportal.inc | ||
---|---|---|
952 | 952 |
$rules = "add {$ruleno} pipe {$pipeup} ip from any to any MAC any {$macent['mac']}\n"; |
953 | 953 |
$ruleno++; |
954 | 954 |
$rules .= "add {$ruleno} pipe {$pipedown} ip from any to any MAC {$macent['mac']} any\n"; |
955 |
} else |
|
955 |
} else {
|
|
956 | 956 |
$rules = "add {$ruleno} deny ip from any to any MAC {$macent['mac']} any\n"; |
957 |
$blockedmacs = captiveportal_read_blockedmacs_db(); |
|
958 |
$blockedmacs[] = $macent['mac']; |
|
959 |
captiveportal_write_blockedmacs_db($blockedmacs); |
|
960 |
} |
|
957 | 961 |
|
958 | 962 |
return $rules; |
959 | 963 |
} |
... | ... | |
979 | 983 |
$rules .= "pipe delete " . $pipeno . "\n"; |
980 | 984 |
$rules .= "pipe delete " . ++$pipeno . "\n"; |
981 | 985 |
} |
986 |
} else { |
|
987 |
$blockedmacs = captiveportal_read_blockedmacs_db(); |
|
988 |
foreach ($blockedmacs as $idx => $blockedmac) |
|
989 |
if ($blockedmac == $macent['mac']) |
|
990 |
unset($blockedmacs[$idx]); |
|
991 |
captiveportal_write_blockedmacs_db($blockedmacs); |
|
982 | 992 |
} |
983 | 993 |
|
984 | 994 |
return $rules; |
... | ... | |
2087 | 2097 |
unlock($cpumaclck); |
2088 | 2098 |
} |
2089 | 2099 |
|
2100 |
function captiveportal_read_blockedmacs_db() { |
|
2101 |
global $g, $cpzone; |
|
2102 |
|
|
2103 |
$cpumaclck = lock("captiveblockedmacs{$cpzone}"); |
|
2104 |
if (file_exists("{$g['vardb_path']}/captiveportal_blockedmacs_{$cpzone}.db")) { |
|
2105 |
$blockedmacs = file("{$g['vardb_path']}/captiveportal_blockedmacs_{$cpzone}.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); |
|
2106 |
if (!$blockedmacs) |
|
2107 |
$blockedmacs = array(); |
|
2108 |
} else |
|
2109 |
$blockedmacs = array(); |
|
2110 |
|
|
2111 |
unlock($cpumaclck); |
|
2112 |
return $blockedmacs; |
|
2113 |
} |
|
2114 |
|
|
2115 |
function captiveportal_write_blockedmacs_db($blockedmacs) { |
|
2116 |
global $g, $cpzone; |
|
2117 |
|
|
2118 |
$cpumaclck = lock("captiveblockedmacs{$cpzone}", LOCK_EX); |
|
2119 |
@file_put_contents("{$g['vardb_path']}/captiveportal_blockedmacs_{$cpzone}.db", implode("\n", $blockedmacs)); |
|
2120 |
unlock($cpumaclck); |
|
2121 |
} |
|
2122 |
|
|
2090 | 2123 |
function captiveportal_send_server_accounting($off = false) { |
2091 | 2124 |
global $cpzone, $config; |
2092 | 2125 |
|
Also available in: Unified diff
When block a MAC address, add it to a DB to make it possible to redirect it to a URL