]> gitweb.michael.orlitzky.com - postfix-logwatch.git/commitdiff
Allow multi-digit numbers in enhanced SMTP status codes.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 5 Sep 2017 13:19:44 +0000 (09:19 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 5 Sep 2017 13:19:44 +0000 (09:19 -0400)
The re_DSN regular expression is intended to match a response like
"550 1.2.3", where "1.2.3" is an enhanced status code. However, the
regular expression was only expecting single-digit numbers between the
dots; thus it was missing codes like "550 5.7.23". The expression has
been updated to accept any number of digits between the dots.

This fixes unmatched rejection lines that begin with,

  550 5.7.23 <user@example.com>: Recipient address rejected...

Such lines appear with newer versions of the python SPF policy daemon.

postfix-logwatch

index 92ed62138fe0d37ab30268f40c8e5ccbc3ee67d3..827dfe0d968806e7a7b4d322b86cdfa0b5271e93 100644 (file)
@@ -66,7 +66,9 @@ my $re_QID_s   = qr/[A-Z\d]+/;
 my $re_QID_l   = qr/(?:NOQUEUE|[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ\d]+)/;
 our $re_QID;
 
-our $re_DSN     = qr/(?:(?:\d{3})?(?: ?\d\.\d\.\d)?)/;
+# The enhanced status codes can contain two-digit (or more) numbers;
+# for example, "550 5.7.23".
+our $re_DSN     = qr/(?:(?:\d{3})?(?: ?\d+\.\d+\.\d+)?)/;
 our $re_DDD     = qr/(?:(?:conn_use=\d+ )?delay=-?[\d.]+(?:, delays=[\d\/.]+)?(?:, dsn=[\d.]+)?)/;
 
 #MODULE: ../Logreporters/Utils.pm