Fix to call check right away

https://github.com/webmin/webmin/pull/2170#discussion_r1616387257
This commit is contained in:
Ilia Ross
2024-05-28 00:08:23 +03:00
parent bb7938a0f5
commit dccc3fb10e

View File

@@ -6,37 +6,37 @@ require './logviewer-lib.pl';
&ReadParse();
&foreign_require("proc", "proc-lib.pl");
# Send headers
print "Content-Type: text/plain\n\n";
# System log to follow
my @systemctl_cmds = &get_systemctl_cmds(1);
my ($log) = grep { $_->{'id'} eq $in{'idx'} } @systemctl_cmds;
my $cmd = $log->{'cmd'};
# Disable output buffering
print "Content-Type: text/plain\n\n";
$| = 1;
# Access check
if (!$cmd || $cmd !~ /^journalctl/ ||
!(&can_edit_log($log) && $access{'syslog'})) {
if (!&can_edit_log($log) ||
!$log->{'cmd'} ||
$log->{'cmd'} !~ /^journalctl/) {
print $text{'save_ecannot3'};
exit;
}
# Disable output buffering
$| = 1;
# No lines for real time logs
$cmd =~ s/\s+\-n\s+\d+//;
$log->{'cmd'} =~ s/\s+\-n\s+\d+//;
# Show real time logs
$cmd .= " -f";
$log->{'cmd'} .= " -f";
# Add filter to the command if present
my $filter = $in{'filter'} ? quotemeta($in{'filter'}) : "";
if ($filter) {
$cmd .= " -g $filter";
$log->{'cmd'} .= " -g $filter";
}
# Open a pipe to the journalctl command
my $pid = open(my $fh, '-|', "$cmd") ||
print &text('save_ecannot4', $cmd).": $!";
my $pid = open(my $fh, '-|', $log->{'cmd'}) ||
print &text('save_ecannot4', $log->{'cmd'}).": $!";
# Read and output the log
while (my $line = <$fh>) {