#!PERL_COMMAND -w
-# $Cambridge: exim/src/src/eximstats.src,v 1.12 2007/01/22 15:14:01 steve Exp $
+# $Cambridge: exim/src/src/eximstats.src,v 1.14 2007/02/14 12:20:43 steve Exp $
# Copyright (c) 2001 University of Cambridge.
# See the file NOTICE for conditions of use and distribution.
# 2006-11-27 V1.52 Steve Campbell
# Tally any reject message containing SpamAssassin.
#
+# 2007-01-31 V1.53 Philip Hazel
+# Allow for [pid] after date in log lines
+#
+# 2007-02-14 V1.54 Daniel Tiefnig
+# Improved the '($parent) =' pattern match.
+#
#
#
# For documentation on the logfile format, see
@days_per_month = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334);
$gig = 1024 * 1024 * 1024;
-$VERSION = '1.52';
+$VERSION = '1.54';
# How much space do we allow for the Hosts/Domains/Emails/Edomains column headers?
$COLUMN_WIDTHS = 8;
$length = length($_);
next if ($length < 38);
- next unless /^(\\d{4}\\-\\d\\d-\\d\\d\\s(\\d\\d):(\\d\\d):\\d\\d( [-+]\\d\\d\\d\\d)?)/o;
+ next unless /^(\\d{4}\\-\\d\\d-\\d\\d\\s(\\d\\d):(\\d\\d):\\d\\d( [-+]\\d\\d\\d\\d)?)( \\[\\d+\\])?/o;
($tod,$m_hour,$m_min) = ($1,$2,$3);
$extra = 0;
}
+ # PH - watch for PID added after the timestamp.
+ if (defined($5)) {
+ $extra += length($5);
+ next if ($length < 38 + $extra);
+ }
+
$id = substr($_, 20 + $extra, 16);
$flag = substr($_, 37 + $extra, 2);
#IFNDEF ($include_original_destination)
if ($user =~ /^[\\/|]/) {
#ENDIF ($include_original_destination)
- my($parent) = $_ =~ /(<[^@]+@?[^>]*>)/;
+ #my($parent) = $_ =~ /(<[^@]+@?[^>]*>)/;
+ my($parent) = $_ =~ / (<.+?>) /; #DT 1.54
$user = "$user $parent" if defined $parent;
}
++$delivered_messages_user{$user};
#IFNDEF ($include_original_destination)
if ($user =~ /^[\\/|]/) {
#ENDIF ($include_original_destination)
- my($parent) = $_ =~ /(<[^@]+@?[^>]*>)/;
+ #my($parent) = $_ =~ /(<[^@]+@?[^>]*>)/;
+ my($parent) = $_ =~ / (<.+?>) /; #DT 1.54
$user = "$user $parent" if defined $parent;
}
++$delivered_addresses_user{$user};