In postfix-3.6, setting respectful_logging=yes changes "whitelist" and
"blacklist" to "allowlist" and "denylist". We add support for the new
log entries that can be generated as a result.
Michael Orlitzky [Wed, 26 Dec 2018 17:54:15 +0000 (12:54 -0500)]
Match postscreen "all server ports busy" lines.
Lines that look like
NOQUEUE: reject: CONNECT from [192.168.0.1]:39410: all server ports busy
were not being matched. There were two similar matches, one for a
specific "too many connections" error
NOQUEUE: reject: CONNECT from [192.168.0.1]:7197: too many connections
and another for a more general form intended to match "all screening
ports busy" errors from postscreen:
reject: connect from [192.168.0.1]:21225: all screening ports busy
The general form is preferable in my opinion, but the "screening
ports" message is a bit of a black sheep. As a result, even the more
general regular expression didn't match the other two errors due to
their beginning with "NOQUEUE" and using an uppercase "CONNECT".
To fix this, the general regular expression was made even more
general. Now, a leading "NOQUEUE: " is optional, and the "CONNECT" can
be capitalized. Thus, one regular expression now catches all three
messages.
Allow multi-digit numbers in enhanced SMTP status codes.
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,
Michael Orlitzky [Thu, 24 Aug 2017 11:34:36 +0000 (07:34 -0400)]
Fix redundant argument to sprintf warning.
Perl 5.22 now warns about redundant (i.e. extra) arguments to the
sprintf function. If your format string only has two place-holders but
you pass three place-fillers, you get warned:
Redundant argument in sprintf at ./postfix-logwatch line 1382...
The issue there was that the format string passed to sprintf was
constructed dynamically; sometimes it would contain two place-holders,
and sometimes three. Three place-fillers were always passed, so when
only two place-holders were used, the warning would be thrown. This was
fixed by testing whether or not there are two or three place-holders,
and passing the appropriate number of place-fillers.
Michael Orlitzky [Thu, 24 Aug 2017 11:09:28 +0000 (07:09 -0400)]
Fix unescaped left brace warning for "Config: {".
New versions of Perl are starting to complain about unescaped braces
in regular expressions, and supposedly the warning will become a fatal
error in Perl 5.30. This particular warning is,
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/^Config: { <-- HERE / at ./postfix-logwatch
line 1850.
and it was fixed by going to line 1850 and putting a backslash before
the left brace.