summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorJim P <jim@pingle.org>2013-03-15 06:40:43 -0700
committerJim P <jim@pingle.org>2013-03-15 06:40:43 -0700
commit628a5dc927f546cd3d3c185ce8a687844994b78d (patch)
tree2c9afeda7c411c2e429975f73a2409b53bc9317b /etc
parente46adb09139f38295e0d249b41bb253be2b6477d (diff)
parent74c6d36f098ad7541a9c7253ddb3fd73e8dd3f82 (diff)
downloadpfsense-628a5dc927f546cd3d3c185ce8a687844994b78d.zip
pfsense-628a5dc927f546cd3d3c185ce8a687844994b78d.tar.gz
Merge pull request #483 from N0YB/System_Firewall_Logs_Filtering
System Firewall Log Filtering by Fields
Diffstat (limited to 'etc')
-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