2 months agoLICENSE: include the actual MIT license text. master
Michael Orlitzky [Thu, 5 Aug 2021 22:59:59 +0000 (18:59 -0400)]
LICENSE: include the actual MIT license text.

2 months agoMakefile: whitespace cleanup and a few quality-of-life improvements.
Michael Orlitzky [Thu, 5 Aug 2021 22:34:38 +0000 (18:34 -0400)]
Makefile: whitespace cleanup and a few quality-of-life improvements.

2 months agoMakefile: remove unused $PKGDIR variable.
Michael Orlitzky [Thu, 5 Aug 2021 22:13:03 +0000 (18:13 -0400)]
Makefile: remove unused $PKGDIR variable.

2 months agoMakefile: fix the HTML documentation rule.
Michael Orlitzky [Thu, 5 Aug 2021 22:10:53 +0000 (18:10 -0400)]
Makefile: fix the HTML documentation rule.

It looks like man2html on Linux does not (or does not any longer)
support the "-t" flag. Moreover, man2html seems happy to read the man
page directly. In this commit we simplify the html documentation rule
to simply call man2html on the man page itself, with no flags.

2 months agoMakefile: release as tar.xz and don't include HTML docs by default. 1.40.04
Michael Orlitzky [Sun, 1 Aug 2021 13:04:11 +0000 (09:04 -0400)]
Makefile: release as tar.xz and don't include HTML docs by default.

Since this is mainly a server utility, the HTML page is a bit
redundant because we already include the man page from which it is
built. Anyone is capable of running man2html to turn a man page into a
web page if they so desire.

We also change the release tarball to "tar.xz" format with lzma
compression, because that's what all the cool kids are doing.

2 months agopostfix-logwatch.1.html: delete auto-generated file.
Michael Orlitzky [Sun, 1 Aug 2021 12:56:32 +0000 (08:56 -0400)]
postfix-logwatch.1.html: delete auto-generated file.

The HTML docs are built from the man page, if you want them.

2 months agoMakefile: report logreporters stuff.
Michael Orlitzky [Sun, 1 Aug 2021 12:54:27 +0000 (08:54 -0400)]
Makefile: report logreporters stuff.

This Makefile used to assemble postfix-logwatch from the"logreporters"
source tree, but now it's a standalone project with the logreporters
modules copy/pasted in. Delete the corresponding targets from the

2 months agopostfix-logwatch: bump to version 1.40.04.
Michael Orlitzky [Sun, 1 Aug 2021 12:50:56 +0000 (08:50 -0400)]
postfix-logwatch: bump to version 1.40.04.

2 months agoChanges: summarize the forthcoming release.
Michael Orlitzky [Sun, 1 Aug 2021 12:49:50 +0000 (08:49 -0400)]
Changes: summarize the forthcoming release.

2 months agopostfix-logwatch: update the comment header.
Michael Orlitzky [Sun, 1 Aug 2021 12:46:23 +0000 (08:46 -0400)]
postfix-logwatch: update the comment header.

Change the maintainer to myself, and delete some other outdated

2 months agoWhitespace/comment cleanup.
Michael Orlitzky [Sun, 1 Aug 2021 12:44:34 +0000 (08:44 -0400)]
Whitespace/comment cleanup.

2 months agoSupport respectful logging.
Michael Orlitzky [Sun, 1 Aug 2021 12:18:36 +0000 (08:18 -0400)]
Support respectful logging.

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.

18 months agoIgnore postscreen "BDAT/DATA without valid RCPT" lines.
Michael Orlitzky [Wed, 15 Apr 2020 12:04:02 +0000 (08:04 -0400)]
Ignore postscreen "BDAT/DATA without valid RCPT" lines.

Postscreen now emits a notice when clients send BDAT or DATA
prematurely (after postscreen rejects the recipient):

  DATA without valid RCPT from []:48580

These are merely informational, since the connection was rejected for
some other reason, so this commit ignores them.

2 years agoMatch postscreen "all server ports busy" lines.
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 []: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 []:7197: too many connections

and another for a more general form intended to match "all screening
ports busy" errors from postscreen:

 reject: connect from []: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

4 years agoAllow multi-digit numbers in enhanced SMTP status codes.
Michael Orlitzky [Tue, 5 Sep 2017 13:19:44 +0000 (09:19 -0400)]
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,

  550 5.7.23 <>: Recipient address rejected...

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

4 years agoFix redundant argument to sprintf warning.
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.

4 years agoFix unescaped left brace warning for "Config: {".
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.


4 years agoUpstream source.
Michael Orlitzky [Thu, 24 Aug 2017 11:01:21 +0000 (07:01 -0400)]
Upstream source.