From c6f4a4c8ab53f87edc3bd893f4ab3a829546e31d Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Fri, 24 Apr 2020 18:54:40 +0200 Subject: [PATCH] api tracker: raise parameter exception if endtime was older than starttime Signed-off-by: Thomas Lamprecht --- src/PMG/API2/MailTracker.pm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/PMG/API2/MailTracker.pm b/src/PMG/API2/MailTracker.pm index 0d5f9fd..d512dd9 100644 --- a/src/PMG/API2/MailTracker.pm +++ b/src/PMG/API2/MailTracker.pm @@ -11,12 +11,21 @@ use Encode; use PVE::Tools; use PVE::SafeSyslog; use PVE::RESTHandler; +use PVE::Exception qw(raise_param_exc); use PVE::JSONSchema qw(get_standard_option); use PMG::RESTEnvironment; use base qw(PVE::RESTHandler); +my $get_start_end_time = sub { + my ($param) = @_; + my $start = $param->{starttime} // (time - 86400); + my $end = $param->{endtime} // ($start + 86400); + raise_param_exc({'endtime' => "must be newer than 'starttime'"}) if $start > $end; + return ($start, $end); +}; + my $statmap = { 2 => 'delivered', 4 => 'deferred', @@ -321,8 +330,7 @@ __PACKAGE__->register_method({ my $args = []; - my $start = $param->{starttime} // (time - 86400); - my $end = $param->{endtime} // ($start + 86400); + my ($start, $end) = $get_start_end_time->($param); push @$args, '-s', $start; push @$args, '-e', $end; @@ -392,8 +400,7 @@ __PACKAGE__->register_method({ my $args = ['-v']; - my $start = $param->{starttime} // (time - 86400); - my $end = $param->{endtime} // ($start + 86400); + my ($start, $end) = $get_start_end_time->($param); push @$args, '-s', $start; push @$args, '-e', $end; -- 2.39.5