Relatively recent versions of postfix can be configured to use
non-repeating queue IDs.  This simplifies log correlation, and can be
enabled with the main.cf parameter enable_long_queue_ids.  However, the
new queue IDs can include lower-case letters, and this breaks mailgraph
parsing of the logs.  The patch below seems to fix the bit rot.

    Regards,

    Liviu Daia
Index: Makefile
===================================================================
RCS file: /cvs/ports/mail/mailgraph/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile    19 Nov 2010 07:23:07 -0000      1.9
+++ Makefile    20 Dec 2012 12:50:59 -0000
@@ -3,6 +3,7 @@
 COMMENT=       RRDtool frontend for Postfix statistics
 
 DISTNAME=      mailgraph-1.14
+REVISION=      0
 CATEGORIES=    net mail
 
 MASTER_SITES=  ${HOMEPAGE}/pub/ \
Index: patches/patch-mailgraph_pl
===================================================================
RCS file: patches/patch-mailgraph_pl
diff -N patches/patch-mailgraph_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-mailgraph_pl  20 Dec 2012 12:50:59 -0000
@@ -0,0 +1,42 @@
+$OpenBSD$
+--- mailgraph.pl.orig  Wed Aug 29 12:06:01 2007
++++ mailgraph.pl       Thu Dec 20 14:41:13 2012
+@@ -596,7 +596,7 @@ sub process_line($)
+                       }
+               }
+               elsif($prog eq 'smtpd') {
+-                      if($text =~ /^[0-9A-Z]+: client=(\S+)/) {
++                      if($text =~ /^[0-9a-zA-Z]+: client=(\S+)/) {
+                               my $client = $1;
+                               return if $opt{'ignore-localhost'} and
+                                       $client =~ /\[127\.0\.0\.1\]$/;
+@@ -604,16 +604,16 @@ sub process_line($)
+                                       $client =~ /$opt{'ignore-host'}/oi;
+                               event($time, 'received');
+                       }
+-                      elsif($opt{'virbl-is-virus'} and $text =~ 
/^(?:[0-9A-Z]+: |NOQUEUE: )?reject: .*: 554.* blocked using 
virbl.dnsbl.bit.nl/) {
++                      elsif($opt{'virbl-is-virus'} and $text =~ 
/^(?:[0-9a-zA-Z]+: |NOQUEUE: )?reject: .*: 554.* blocked using 
virbl.dnsbl.bit.nl/) {
+                               event($time, 'virus');
+                       }
+-                      elsif($opt{'rbl-is-spam'} and $text    =~ 
/^(?:[0-9A-Z]+: |NOQUEUE: )?reject: .*: 554.* blocked using/) {
++                      elsif($opt{'rbl-is-spam'} and $text    =~ 
/^(?:[0-9a-zA-Z]+: |NOQUEUE: )?reject: .*: 554.* blocked using/) {
+                               event($time, 'spam');
+                       }
+-                      elsif($text =~ /^(?:[0-9A-Z]+: |NOQUEUE: )?reject: /) {
++                      elsif($text =~ /^(?:[0-9a-zA-Z]+: |NOQUEUE: )?reject: 
/) {
+                               event($time, 'rejected');
+                       }
+-                      elsif($text =~ /^(?:[0-9A-Z]+: |NOQUEUE: 
)?milter-reject: /) {
++                      elsif($text =~ /^(?:[0-9a-zA-Z]+: |NOQUEUE: 
)?milter-reject: /) {
+                               if($text =~ /Blocked by SpamAssassin/) {
+                                       event($time, 'spam');
+                               }
+@@ -628,7 +628,7 @@ sub process_line($)
+                       }
+               }
+               elsif($prog eq 'cleanup') {
+-                      if($text =~ /^[0-9A-Z]+: (?:reject|discard): /) {
++                      if($text =~ /^[0-9a-zA-Z]+: (?:reject|discard): /) {
+                               event($time, 'rejected');
+                       }
+               }

Reply via email to