summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Smith <colin@pfsense.org>2005-04-06 01:11:03 +0000
committerColin Smith <colin@pfsense.org>2005-04-06 01:11:03 +0000
commitcbca24721d771c523c394798e8b31f5cf04d6a1e (patch)
treef609ed123a80e3affcd439325ef432b4a6883850
parentc669ba562c3ac7fcb1024202dbd3980c3a2f59b3 (diff)
downloadpfsense-cbca24721d771c523c394798e8b31f5cf04d6a1e.zip
pfsense-cbca24721d771c523c394798e8b31f5cf04d6a1e.tar.gz
Support multiple "grep" statements. This should really be replaced by a preg_match or equivalent.
-rwxr-xr-xusr/local/www/guiconfig.inc25
1 files changed, 20 insertions, 5 deletions
diff --git a/usr/local/www/guiconfig.inc b/usr/local/www/guiconfig.inc
index cf592fe..4108ff9 100755
--- a/usr/local/www/guiconfig.inc
+++ b/usr/local/www/guiconfig.inc
@@ -458,15 +458,30 @@ function dump_clog($logfile, $tail, $grepfor = "", $grepinvert = false, $withori
$sor = isset($config['syslog']['reverse']) ? "-r" : "";
if($grepfor <> "") {
- if($grepinvert == true) {
- exec("/usr/sbin/clog {$logfile} | /usr/bin/grep -v {$grepfor} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
- } else {
- exec("/usr/sbin/clog {$logfile} | /usr/bin/grep {$grepfor} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
- }
+ $size = count($grepfor);
+ foreach($grepfor as $agrep) {
+ if($grepinvert[$size - count($grepfor)] == true) {
+ if($size > 1) {
+ $grep .= "grep -v {$agrep} | ";
+ } else {
+ $grep .= "grep -v {$agrep}";
+ }
+ $size--;
+ } else {
+ if($size > 1) {
+ $grep .= "grep {$agrep} | ";
+ } else {
+ $grep .= "grep {$agrep}";
+ }
+ $size--;
+ }
+ }
+ exec("/usr/sbin/clog {$logfile} | {$grep} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
} else {
exec("/usr/sbin/clog {$logfile} | /usr/bin/tail {$sor} -n {$tail}", $logarr);
}
foreach ($logarr as $logent) {
+ print $logent[0];
$logent = preg_split("/\s+/", $logent, 6);
echo "<tr valign=\"top\">\n";
OpenPOWER on IntegriCloud