From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Christian Ebner <c.ebner@proxmox.com>
Cc: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [PATCH common 1/1] tools: Add callback based filtering for firewall logfiles
Date: Wed, 11 Jan 2023 09:42:38 +0100 (CET) [thread overview]
Message-ID: <1795541389.4375.1673426558540@webmail.proxmox.com> (raw)
In-Reply-To: <1254893564.4367.1673426193964@webmail.proxmox.com>
> On 01/11/2023 9:36 AM CET Christian Ebner <c.ebner@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.bumiller@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.ebner@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...
prev parent reply other threads:[~2023-01-11 8:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-09 15:07 [pve-devel] [PATCH common firewall] Optonal `since` and `until` firewall log filtering Christian Ebner
2023-01-09 15:07 ` [pve-devel] [PATCH firewall 1/1] api: Add optional parameters `since` and `until` for timestamp filter Christian Ebner
2023-01-09 15:07 ` [pve-devel] [PATCH common 1/1] tools: Add callback based filtering for firewall logfiles Christian Ebner
2023-01-10 12:36 ` Wolfgang Bumiller
2023-01-11 8:36 ` Christian Ebner
2023-01-11 8:42 ` Wolfgang Bumiller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1795541389.4375.1673426558540@webmail.proxmox.com \
--to=w.bumiller@proxmox.com \
--cc=c.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.