From: eldy <> Date: Mon, 13 Sep 2004 19:18:07 +0000 (+0000) Subject: Patch 984087 for new year jump X-Git-Tag: AWSTATS_6_3_RELEASE~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e8aeaefbd0da14c27613bc309772811115c1119;p=thirdparty%2FAWStats.git Patch 984087 for new year jump --- diff --git a/tools/maillogconvert.pl b/tools/maillogconvert.pl index f0eead2c..065615f5 100644 --- a/tools/maillogconvert.pl +++ b/tools/maillogconvert.pl @@ -27,13 +27,28 @@ $DIR $PROG $Extension $Debug %mail %qmaildelivery $help -$mode $year $Debug +$mode $year $lastmon $Debug $NBOFENTRYFOFLUSH $MailType +%MonthNum /; $Debug=0; $NBOFENTRYFOFLUSH=16384; # Nb or records for flush of %entry (Must be a power of 2) $MailType=''; # Mail server family (postfix, sendmail, qmail) +%MonthNum = ( +'Jan'=>1, +'Feb'=>2, +'Mar'=>3, +'Apr'=>4, +'May'=>5, +'Jun'=>6, +'Jul'=>7, +'Aug'=>8, +'Sep'=>9, +'Oct'=>10, +'Nov'=>11, +'Dec'=>12 +); #------------------------------------------------------- @@ -100,7 +115,7 @@ sub trim { $_=shift; # sub OutputRecord { my $year=shift; - my $month=shift; + my $month=shift; # Jan,Feb,... or 1,2,3... my $day=shift; my $time=shift; my $from=shift; @@ -114,18 +129,7 @@ sub OutputRecord { # Clean day and month $day=sprintf("%02d",$day); - if ($month eq 'Jan') { $month = "01"; } - if ($month eq 'Feb') { $month = "02"; } - if ($month eq 'Mar') { $month = "03"; } - if ($month eq 'Apr') { $month = "04"; } - if ($month eq 'May') { $month = "05"; } - if ($month eq 'Jun') { $month = "06"; } - if ($month eq 'Jul') { $month = "07"; } - if ($month eq 'Aug') { $month = "08"; } - if ($month eq 'Sep') { $month = "09"; } - if ($month eq 'Oct') { $month = "10"; } - if ($month eq 'Nov') { $month = "11"; } - if ($month eq 'Dec') { $month = "12"; } + $month=sprintf("%02d",$MonthNum{$month}||$month); # Clean from $from=&CleanEmail($from); @@ -212,6 +216,7 @@ HELPTEXT # # Start Processing Input Logfile # +$lastmon=0; my $numrecord=0; my $numrecordforflush=0; while (<>) { @@ -223,6 +228,16 @@ while (<>) { if (/^__BREAKPOINT__/) { last; } # For debug only + ### ### + my ($mon)=m/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s/; + if ($mon) { + $mon = $MonthNum{$mon}; + if ($mon==12 && $lastmon==1 ){$year--;} + if ($mon==1 && $lastmon==12){$year++;} + $lastmon=$mon; + } + ### ### + if (/^#/) { debug("Comment record"); next; @@ -270,6 +285,7 @@ while (<>) { elsif ($code =~ /<(.*)>/) { $mail{$mailid}{'to'}=&trim($1); } + $mail{$mailid}{'year'}=$year; ### ### $mail{$mailid}{'mon'}=$mon; $mail{$mailid}{'day'}=$day; $mail{$mailid}{'time'}=$time; @@ -290,6 +306,7 @@ while (<>) { $mail{$mailid}{'code'}=999; # Unkown error (bounced) $mail{$mailid}{'to'}=&trim($to); $mail{$mailid}{'relay_r'}=&trim($relay_r); + $mail{$mailid}{'year'}=$year; ### ### $mail{$mailid}{'mon'}=$mon; $mail{$mailid}{'day'}=$day; $mail{$mailid}{'time'}=$time; @@ -323,6 +340,7 @@ while (<>) { # $code='reject=550 5.7.1 ... Relaying denied' if ($code =~ /=(\d\d\d)\s+/) { $mail{$mailid}{'code'}=$1; } else { $mail{$mailid}{'code'}=999; } # Unkown error + $mail{$mailid}{'year'}=$year; ### ### $mail{$mailid}{'mon'}=$mon; $mail{$mailid}{'day'}=$day; $mail{$mailid}{'time'}=$time; @@ -348,6 +366,7 @@ while (<>) { elsif (/, stat\=Local\s+configuration/) { $mail{$id}{'code'}=451; } elsif (/, stat\=Deferred:\s+(\d*)/) { $mail{$id}{'code'}=$1; } else { $mail{$id}{'code'}=999; } + $mail{$mailid}{'year'}=$year; ### ### $mail{$id}{'mon'}=$mon; $mail{$id}{'day'}=$day; $mail{$id}{'time'}=$time; @@ -485,6 +504,7 @@ while (<>) { else { $mail{$id}{'to'}=&trim($to); } + $mail{$mailid}{'year'}=$year; ### ### $mail{$id}{'mon'}=$mon; $mail{$id}{'day'}=$day; $mail{$id}{'time'}=$time;