diff options
author | Jim P <jim@pingle.org> | 2013-03-15 06:40:43 -0700 |
---|---|---|
committer | Jim P <jim@pingle.org> | 2013-03-15 06:40:43 -0700 |
commit | 628a5dc927f546cd3d3c185ce8a687844994b78d (patch) | |
tree | 2c9afeda7c411c2e429975f73a2409b53bc9317b /etc | |
parent | e46adb09139f38295e0d249b41bb253be2b6477d (diff) | |
parent | 74c6d36f098ad7541a9c7253ddb3fd73e8dd3f82 (diff) | |
download | pfsense-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.inc | 12 |
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; } |