1.1 --- a/postfix/postfix.patch.pfls Wed Aug 08 20:36:32 2012 +0200 1.2 +++ b/postfix/postfix.patch.pfls Thu Aug 09 00:41:14 2012 +0200 1.3 @@ -1,32 +1,28 @@ 1.4 -This patch makes Pflogsumm working with the particular format 1.5 -of the OSSP fsl based Postfix logfile and additionally allows 1.6 -one to specify a more flexible data format. 1.7 - 1.8 Index: pflogsumm.1 1.9 ---- pflogsumm.1.orig 2007-04-06 16:11:28 +0200 1.10 -+++ pflogsumm.1 2007-04-06 17:35:12 +0200 1.11 -@@ -172,6 +172,8 @@ 1.12 - .Vb 2 1.13 - \& -d today generate report for just today 1.14 - \& -d yesterday generate report for just "yesterday" 1.15 -+\& -d YYYY-MM-DD generate report for just "YYYY-MM-DD" 1.16 -+\& (Really takes string Date::Parse will handle) 1.17 - .Ve 1.18 - .PP 1.19 - .Vb 1 1.20 +--- pflogsumm.1.orig 2012-02-05 23:34:29.000000000 +0100 1.21 ++++ pflogsumm.1 2012-02-06 08:49:47.000000000 +0100 1.22 +@@ -171,6 +171,8 @@ 1.23 + \& 1.24 + \& \-d today generate report for just today 1.25 + \& \-d yesterday generate report for just "yesterday" 1.26 ++\& \-d YYYY-MM-DD generate report for just "YYYY-MM-DD" 1.27 ++\& (Really takes string Date::Parse will handle) 1.28 + \& 1.29 + \& \-\-deferral\-detail <cnt> 1.30 + \& 1.31 Index: pflogsumm.pl 1.32 ---- pflogsumm.pl.orig 2008-06-29 15:46:01 +0200 1.33 -+++ pflogsumm.pl 2008-06-29 19:39:07 +0200 1.34 +--- pflogsumm.pl.orig 2012-02-05 23:25:25.000000000 +0100 1.35 ++++ pflogsumm.pl 2012-02-06 20:53:39.000000000 +0100 1.36 @@ -10,7 +10,7 @@ 1.37 1.38 =head1 SYNOPSIS 1.39 1.40 -- pflogsumm.pl -[eq] [-d <today|yesterday>] [-h <cnt>] [-u <cnt>] 1.41 -+ pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [-h <cnt>] [-u <cnt>] 1.42 - [--verp_mung[=<n>]] [--verbose_msg_detail] [--iso_date_time] 1.43 - [-m|--uucp_mung] [-i|--ignore_case] [--smtpd_stats] [--mailq] 1.44 - [--problems_first] [--rej_add_from] [--no_bounce_detail] 1.45 -@@ -37,6 +37,9 @@ 1.46 +- pflogsumm.pl -[eq] [-d <today|yesterday>] [--detail <cnt>] 1.47 ++ pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [--detail <cnt>] 1.48 + [--bounce-detail <cnt>] [--deferral-detail <cnt>] 1.49 + [-h <cnt>] [-i|--ignore-case] [--iso-date-time] [--mailq] 1.50 + [-m|--uucp-mung] [--no-no-msg-size] [--problems-first] 1.51 +@@ -43,6 +43,9 @@ 1.52 1.53 -d today generate report for just today 1.54 -d yesterday generate report for just "yesterday" 1.55 @@ -34,9 +30,9 @@ 1.56 + (Actually this will take any date string 1.57 + parsable by the perl Date::Parse module) 1.58 1.59 - -e extended (extreme? excessive?) detail 1.60 + --deferral-detail <cnt> 1.61 1.62 -@@ -359,6 +362,7 @@ 1.63 +@@ -398,6 +401,7 @@ 1.64 use strict; 1.65 use locale; 1.66 use Getopt::Long; 1.67 @@ -44,28 +40,28 @@ 1.68 eval { require Date::Calc }; 1.69 my $hasDateCalc = $@ ? 0 : 1; 1.70 1.71 -@@ -542,8 +546,8 @@ 1.72 - my $logRmdr; 1.73 - next unless((($msgMonStr, $msgDay, $msgHr, $msgMin, $msgSec, $logRmdr) = 1.74 - /^(...) +(\d+) (..):(..):(..) \S+ (.+)$/o) == 6); 1.75 -- unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 1.76 +@@ -639,8 +643,8 @@ 1.77 + --$msgMon; 1.78 + } 1.79 + 1.80 +- unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 1.81 - (($cmd, $qid) = $logRmdr =~ m#^((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) 1.82 -+ unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 1.83 ++ unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)(?:/(?:smtps|submission))?/([^\[:]*).*?: ([^:\s]+)#o) == 2 || 1.84 + (($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2) 1.85 { 1.86 #print UNPROCD "$_"; 1.87 next; 1.88 -@@ -1406,11 +1410,11 @@ 1.89 +@@ -1514,11 +1518,11 @@ 1.90 # Back up to yesterday 1.91 $time -= ((localtime($time))[2] + 2) * 3600; 1.92 } elsif($dateOpt ne "today") { 1.93 - die "$usageMsg\n"; 1.94 + $time = str2time($dateOpt); 1.95 } 1.96 - my ($t_mday, $t_mon) = (localtime($time))[3,4]; 1.97 + my ($t_mday, $t_mon, $t_year) = (localtime($time))[3,4,5]; 1.98 1.99 -- return sprintf("%s %2d", $monthNames[$t_mon], $t_mday); 1.100 -+ return sprintf("%s %02d", $monthNames[$t_mon], $t_mday); 1.101 +- return sprintf("%s %2d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); 1.102 ++ return sprintf("%s %02d", $monthNames[$t_mon], $t_mday), sprintf("%04d-%02d-%02d", $t_year+1900, $t_mon+1, $t_mday); 1.103 } 1.104 1.105 # if there's a real domain: uses that. Otherwise uses the IP addr.