Package: munin-node
Version: 1.2.2-3
Followup-For: Bug #302220

The uploaded fix to this, doesn't catch everything, it misses:

postfix/smtpd[26330]: warning: reject: ETRN from
somehost.edu[xxx.xxx.xxx.xxx]

To continue using the method that was there before, it would be
expanded to:

elsif (($line =~ /reject: \S+ \S+ \S+ (\S+)/) && (!($line =~
/\/cleanup\[\d+\].*reject:/)) && (!($line =~ /reject: ETRN/)))

but, this is getting ugly, why not do:

elsif (($line =~ /reject: \S+ \S+ \S+ (\d{3})/)

See attached diff for all the information and changes.

ps - I noticed that this was closed, but the issue of counting header
and body rejects separately from numbered rejects (550, 554, etc.) was
not addressed...?

Micah



-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (300, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-vs1.9.5
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages munin-node depends on:
ii  libnet-server-perl            0.87-3     An extensible, general perl server
ii  perl                          5.8.4-8    Larry Wall's Practical Extraction 
ii  procps                        1:3.2.5-1  /proc file system utilities

-- no debconf information
--- postfix_mailstats   2005-03-31 18:37:38.000000000 -0800
+++ /tmp/postfix_mailstats      2005-04-07 21:29:11.133181723 -0700
@@ -229,7 +229,29 @@
        {
            $delivered++;
        } 
-        elsif (($line =~ /reject: \S+ \S+ \S+ (\S+)/) && (!($line =~ 
/\/cleanup\[\d+\].*reject:/)))
+
+       # Look for lines that have reject: in them, and count up the number of 
reject codes
+       # For example, the following entry would increase the counter for 
reject code 554
+       # 
+       # postfix/smtpd[18762]: NOQUEUE: reject: RCPT from 
somehost.edu[xxx.xxx.xxx.xxx]: 554 Service unavailable; 
+       # Client host [xxx.xxx.xxx.xxx] blocked using list.dsbl.org 
from=<[EMAIL PROTECTED]> 
+       # to=<[EMAIL PROTECTED]> proto=SMTP helo=<somehost.edu>
+       #
+       # but there are some cases where reject codes are not included, so we 
ignore the following cases (possibly more!):
+       #
+       # postfix/cleanup[22101]: F28EF3D318: reject: header Subject: Important 
notify about your e-mail account. from 
+       #                         somehost.edu[xxx.xxx.xxx.xxx]; from=<[EMAIL 
PROTECTED]> to=<[EMAIL PROTECTED]> 
+       #                         proto=SMTP helo=<Viking1>: Rejected, probably 
sent by virus W32/Bagle
+       #
+       # postfix/smtpd[26330]: warning: reject: ETRN from 
somehost.edu[xxx.xxx.xxx.xxx]
+       # 
+       # This was being done this way:
+       #
+       # elsif (($line =~ /reject: \S+ \S+ \S+ (\S+)/) && (!($line =~ 
/\/cleanup\[\d+\].*reject:/)) && (!($line =~ /reject: ETRN/)))
+       #
+       # but could be done much simpler this way (I think):
+
+        elsif (($line =~ /reject: \S+ \S+ \S+ (\d{3})/) 
        {
            $rejects->{$1} ++;
        }

Reply via email to