summaryrefslogtreecommitdiffstats
path: root/etc/inc/filter_log.inc
diff options
context:
space:
mode:
authorN0YB <Al_Stu@Frontier.com>2013-03-15 02:17:33 -0700
committerN0YB <Al_Stu@Frontier.com>2013-03-15 02:17:33 -0700
commit74c6d36f098ad7541a9c7253ddb3fd73e8dd3f82 (patch)
tree0400db01bbb0c8f09d1d5bb18be3d9a5e633a947 /etc/inc/filter_log.inc
parentd632dd5aa9f4809e187475c367f3f1eaf444d8c3 (diff)
downloadpfsense-74c6d36f098ad7541a9c7253ddb3fd73e8dd3f82.zip
pfsense-74c6d36f098ad7541a9c7253ddb3fd73e8dd3f82.tar.gz
System Firewall Log Filtering by Fields
Previous filter form retained for raw logs view.
Diffstat (limited to 'etc/inc/filter_log.inc')
-rw-r--r--etc/inc/filter_log.inc12
1 files changed, 11 insertions, 1 deletions
diff --git a/etc/inc/filter_log.inc b/etc/inc/filter_log.inc
index 974dcdf..85548da 100644
--- a/etc/inc/filter_log.inc
+++ b/etc/inc/filter_log.inc
@@ -92,7 +92,17 @@ function match_filter_line($flent, $filtertext = "") {
function match_filter_field($flent, $fields) {
foreach ($fields as $field) {
if ($fields[$field] == "All") continue;
- if ( !(in_arrayi($flent[$field], explode(",", str_replace(" ", ",", $fields[$field]))) ) ) return false;
+ if ((strpos($fields[$field], '!') === 0)) {
+ $fields[$field] = substr($fields[$field], 1);
+ if (preg_match("/act/i", $field)) {
+ if ( (in_arrayi($flent[$field], explode(",", str_replace(" ", ",", $fields[$field]))) ) ) return false;
+ } else if ( (preg_match("/{$fields[$field]}/i", $flent[$field])) ) return false;
+ }
+ else {
+ if (preg_match("/act/i", $field)) {
+ if ( !(in_arrayi($flent[$field], explode(",", str_replace(" ", ",", $fields[$field]))) ) ) return false;
+ } else if ( !(preg_match("/{$fields[$field]}/i", $flent[$field])) ) return false;
+ }
}
return true;
}
OpenPOWER on IntegriCloud