postfix/postfix.patch.pfls

Fri, 03 Aug 2012 20:11:53 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 03 Aug 2012 20:11:53 +0200
changeset 470
f8813e60f168
child 495
01294b31a79e
permissions
-rw-r--r--

Neutralize buggy code causing OpenPKG to have 'fatal problems' in
spite of correct installation, configuration, and operation. An
administrator suffering from this failure is even unable to
uninstall the flawed software.

     1 This patch makes Pflogsumm working with the particular format
     2 of the OSSP fsl based Postfix logfile and additionally allows
     3 one to specify a more flexible data format.
     5 Index: pflogsumm.1
     6 --- pflogsumm.1.orig	2007-04-06 16:11:28 +0200
     7 +++ pflogsumm.1	2007-04-06 17:35:12 +0200
     8 @@ -172,6 +172,8 @@
     9  .Vb 2
    10  \&    -d today       generate report for just today
    11  \&    -d yesterday   generate report for just "yesterday"
    12 +\&    -d YYYY-MM-DD  generate report for just "YYYY-MM-DD"
    13 +\&                   (Really takes string Date::Parse will handle)
    14  .Ve
    15  .PP
    16  .Vb 1
    17 Index: pflogsumm.pl
    18 --- pflogsumm.pl.orig	2008-06-29 15:46:01 +0200
    19 +++ pflogsumm.pl	2008-06-29 19:39:07 +0200
    20 @@ -10,7 +10,7 @@
    22  =head1 SYNOPSIS
    24 -    pflogsumm.pl -[eq] [-d <today|yesterday>] [-h <cnt>] [-u <cnt>]
    25 +    pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [-h <cnt>] [-u <cnt>]
    26  	[--verp_mung[=<n>]] [--verbose_msg_detail] [--iso_date_time]
    27  	[-m|--uucp_mung] [-i|--ignore_case] [--smtpd_stats] [--mailq]
    28  	[--problems_first] [--rej_add_from] [--no_bounce_detail]
    29 @@ -37,6 +37,9 @@
    31      -d today       generate report for just today
    32      -d yesterday   generate report for just "yesterday"
    33 +    -d YYYY-MM-DD  generate report for just "YYYY-MM-DD"
    34 +                   (Actually this will take any date string
    35 +                   parsable by the perl Date::Parse module)
    37      -e             extended (extreme? excessive?) detail
    39 @@ -359,6 +362,7 @@
    40  use strict;
    41  use locale;
    42  use Getopt::Long;
    43 +use Date::Parse;
    44  eval { require Date::Calc };
    45  my $hasDateCalc = $@ ? 0 : 1;
    47 @@ -542,8 +546,8 @@
    48      my $logRmdr;
    49      next unless((($msgMonStr, $msgDay, $msgHr, $msgMin, $msgSec, $logRmdr) =
    50  	/^(...) +(\d+) (..):(..):(..) \S+ (.+)$/o) == 6);
    51 -    unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 ||
    52 -           (($cmd, $qid) = $logRmdr =~ m#^((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2)
    53 +    unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 ||
    54 +           (($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2)
    55      {
    56  	#print UNPROCD "$_";
    57  	next;
    58 @@ -1406,11 +1410,11 @@
    59  	# Back up to yesterday
    60  	$time -= ((localtime($time))[2] + 2) * 3600;
    61      } elsif($dateOpt ne "today") {
    62 -	die "$usageMsg\n";
    63 +	$time = str2time($dateOpt);
    64      }
    65      my ($t_mday, $t_mon) = (localtime($time))[3,4];
    67 -    return sprintf("%s %2d", $monthNames[$t_mon], $t_mday);
    68 +    return sprintf("%s %02d", $monthNames[$t_mon], $t_mday);
    69  }
    71  # if there's a real domain: uses that.  Otherwise uses the IP addr.

mercurial