> On 01/11/2023 9:36 AM CET Christian Ebner <c.eb...@proxmox.com> wrote: > > > Thank you for the detailed review Wolfgang, I am still unsure about one of > your comments, see below. Maybe you could clarify. > > Thx. > > > On 10.01.2023 13:36 CET Wolfgang Bumiller <w.bumil...@proxmox.com> wrote: > > > > > > On Mon, Jan 09, 2023 at 04:07:06PM +0100, Christian Ebner wrote: > > > This patch introduces callback based filtering functionality for firewall > > > logs. > > > In addition, the contents of rotated logfiles are included by setting the > > > `include_rotated_logs` flag. > > > > > > Signed-off-by: Christian Ebner <c.eb...@proxmox.com> > > > --- > > > src/PVE/Tools.pm | 108 +++++++++++++++++++++++++++++++++++++++-------- > > > 1 file changed, 91 insertions(+), 17 deletions(-) > > > > > > diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm > > > index cdbee6d..cafc2f7 100644 > > > --- a/src/PVE/Tools.pm > > > +++ b/src/PVE/Tools.pm > > > @@ -17,6 +17,7 @@ use IO::Handle; > > > use IO::Pipe; > > > use IO::Select; > > > use IO::Socket::IP; > > > +use IO::Zlib; > > > use IPC::Open3; > > > use JSON; > > > use POSIX qw(EINTR EEXIST EOPNOTSUPP); > > > @@ -1265,29 +1266,19 @@ sub split_args { > > > return $str ? [ Text::ParseWords::shellwords($str) ] : []; > > > } > > > > > > -sub dump_logfile { > > > - my ($filename, $start, $limit, $filter) = @_; > > > - > > > - my $lines = []; > > > - my $count = 0; > > > - > > > - my $fh = IO::File->new($filename, "r"); > > > - if (!$fh) { > > > - $count++; > > > - push @$lines, { n => $count, t => "unable to open file - $!"}; > > > - return ($count, $lines); > > > - } > > > +sub dump_logfile_by_filehandle { > > > + my ($fh, $start, $limit, $filter, $count, $lines, $read_until_end) = > > > @_; > > > > ^ I think it'll be easier if we move start, limit, count and lines into > > a `$state` hash, and keep $read_until_end internal here. > > This way we don't need to pass them back and forth via paramters & > > return values. > > > > We can pull them out as needed here and also do the defaults, eg. > > > > my $limit = ($state->{limit} //= 50); > > my $count = ($state->{count} //= 0); > > my $lines = ($state->{lines} //= []); > > my $read_until_end = $limit == 0; > > > I don't see why $start should only be set to a value != 0 (if given anyway) > for the first file. > > The line/count the output should start from might be located in any file. So > my $start = ($state->{start} //= 0); > would make more sense to me, or am I missing something?
Yeah sorry I somehow missed the interaction with $count... _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel