diff --git a/logviewer/view_log.cgi b/logviewer/view_log.cgi index 0934cc671..a9e68feef 100755 --- a/logviewer/view_log.cgi +++ b/logviewer/view_log.cgi @@ -145,7 +145,7 @@ if (!$follow) { print "
"; local $tailcmd = $config{'tail_cmd'} || "tail -n LINES"; $tailcmd =~ s/LINES/$lines/g; - my $safe_proc_out; + my ($safe_proc_out, $safe_proc_out_got); if ($filter ne "") { # Are we supposed to filter anything? Then use grep. local @cats; @@ -179,11 +179,14 @@ if (!$follow) { $fcmd = "$cat | grep -i -a $eflag $dashflag $filter ". "| $tailcmd"; } - $got = &proc::safe_process_exec($fcmd, - 0, 0, STDOUT, undef, 1, 0, undef, 1); + open(my $output_fh, '>', \$safe_proc_out); + $safe_proc_out_got = &proc::safe_process_exec( + $fcmd, 0, 0, $output_fh, undef, 1, 0, undef, 1); + close($output_fh); + print $safe_proc_out if ($safe_proc_out !~ /-- No entries --/m); } else { - $got = undef; + $safe_proc_out_got = undef; } } else { # Not filtering .. so cat the most recent non-empty file @@ -223,17 +226,17 @@ if (!$follow) { } if ($fullcmd) { open(my $output_fh, '>', \$safe_proc_out); - $got = &proc::safe_process_exec( + $safe_proc_out_got = &proc::safe_process_exec( $fullcmd, 0, 0, $output_fh, undef, 1, 0, undef, 1); close($output_fh); print $safe_proc_out if ($safe_proc_out !~ /-- No entries --/m); } else { - $got = undef; + $safe_proc_out_got = undef; } } print "$text{'view_empty'}\n" - if (!$got || $safe_proc_out =~ /-- No entries --/m); + if (!$safe_proc_out_got || $safe_proc_out =~ /-- No entries --/m); print "\n"; } # Progressive output