2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 01:49:47 +00:00

postfix-3.9-20240213

This commit is contained in:
Wietse Z Venema 2024-02-13 00:00:00 -05:00 committed by Viktor Dukhovni
parent 403f8ce4a1
commit 2f77adce4e
22 changed files with 496 additions and 459 deletions

View File

@ -27841,8 +27841,36 @@ Apologies for any names omitted.
global/mail_params.h.
Performance: eliminate worst-case behavior where the queue
manager defers delivery to all destinations over a specific
manager deferred delivery to all destinations over a specific
delivery transport, after only a single delivery agent
failure. The scheduler now throttles one destination, and
allows deliveries to other destinations to keep making
progress. Files: *qmgr/qmgr_deliver.c.
20240210
Documentation: introductory text for SMTP and LMTP lookup
strategies. File: smtp/smtp.c.
20240211
Documentation: updated the text for the new "notes=" attribute
in SMTP server "disconnect" logging. File: proto/postconf.proto.
20240212
Documentation: emphasize that email address patterns and
host name/address patterns for indexed etc. files are really
for indexed etc. files. File: proto/access.
Documentation: mail_date(3) manpage. File: global/mail_date.c.
20240213
Tests: updated tests that had suffered from bit rot. Files:
bounce/with-msgid-with-filter-no-thread.ref,
bounce/with-msgid-with-filter-with-thread.ref,
src/dns/mxonly_test.ref, dns/no-mx.ref.
Logging: indicate which (usually, substring) lookups are
skipped. File: global/maps.c.

View File

@ -59,7 +59,7 @@
# line that starts with whitespace continues a logi-
# cal line.
#
# EMAIL ADDRESS PATTERNS
# EMAIL ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, patterns are
# tried in the order as listed below:
@ -97,7 +97,7 @@
# becomes: user+foo@domain, user@domain, domain, user+foo@,
# and user@.
#
# HOST NAME/ADDRESS PATTERNS
# HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES
# With lookups from indexed files such as DB or DBM, or from
# networked tables such as NIS, LDAP or SQL, the following
# lookup patterns are examined in the order as listed:

View File

@ -60,7 +60,7 @@ ACCESS(5) ACCESS(5)
A logical line starts with non-whitespace text. A line that
starts with whitespace continues a logical line.
<b>EMAIL ADDRESS PATTERNS</b>
<b>EMAIL ADDRESS PATTERNS IN INDEXED TABLES</b>
With lookups from indexed files such as DB or DBM, or from networked
tables such as NIS, LDAP or SQL, patterns are tried in the order as
listed below:
@ -92,7 +92,7 @@ ACCESS(5) ACCESS(5)
(e.g., <i>user+foo</i>@<i>domain</i>), the lookup order becomes: <i>user+foo</i>@<i>domain</i>,
<i>user</i>@<i>domain</i>, <i>domain</i>, <i>user+foo</i>@, and <i>user</i>@.
<b>HOST NAME/ADDRESS PATTERNS</b>
<b>HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES</b>
With lookups from indexed files such as DB or DBM, or from networked
tables such as NIS, LDAP or SQL, the following lookup patterns are
examined in the order as listed:

File diff suppressed because it is too large Load Diff

View File

@ -15986,7 +15986,7 @@ can be excluded with <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusio
<dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with
"bare &lt;LF&gt;". The information is formatted as "<tt>disconnect
from name[address] ... notes=bare_lf</tt>". The new value is
from name[address] ... notes=bare_lf</tt>". The notes value is
expected to become a list of comma-separated names. <br> <br> This
feature is available in Postfix 3.9 and later. </dd>

File diff suppressed because it is too large Load Diff

View File

@ -62,7 +62,7 @@ are lines whose first non\-whitespace character is a `#'.
.IP "multi\-line text"
A logical line starts with non\-whitespace text. A line that
starts with whitespace continues a logical line.
.SH "EMAIL ADDRESS PATTERNS"
.SH "EMAIL ADDRESS PATTERNS IN INDEXED TABLES"
.na
.nf
.ad
@ -99,7 +99,7 @@ When a mail address localpart contains the optional recipient delimiter
(e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
\fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR,
\fIuser+foo\fR@, and \fIuser\fR@.
.SH "HOST NAME/ADDRESS PATTERNS"
.SH "HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES"
.na
.nf
.ad

View File

@ -11062,7 +11062,7 @@ can be excluded with smtpd_forbid_bare_newline_exclusions.
Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with
"bare <LF>". The information is formatted as "disconnect
from name[address] ... notes=bare_lf". The new value is
from name[address] ... notes=bare_lf". The notes value is
expected to become a list of comma\-separated names.
.br
.br

View File

@ -29,9 +29,9 @@ be tried again at a later time. Delivery status reports are sent
to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as
appropriate.
The server lookup strategy is different for SMTP and LMTP.
The details are given below under in the sections "SMTP
DESTINATION SYNTAX" and "LMTP DESTINATION SYNTAX".
The server lookup strategy is different for SMTP and LMTP,
as described in the sections "SMTP SERVER LOOKUP" and "LMTP
SERVER LOOKUP".
After a successful mail transaction, a connection may be saved
to the \fBscache\fR(8) connection cache server, so that it
@ -41,7 +41,7 @@ By default, connection caching is enabled temporarily for
destinations that have a high volume of mail in the active
queue. Connection caching can be enabled permanently for
specific destinations.
.SH "SMTP DESTINATION SYNTAX"
.SH "SMTP SERVER LOOKUP"
.na
.nf
.ad
@ -67,7 +67,7 @@ the specified service (default: \fBsmtp\fR).
Connect to the host at the specified address, and connect
to the specified service (default: \fBsmtp\fR). An IPv6 address
must be formatted as [\fBipv6\fR:\fIaddress\fR].
.SH "LMTP DESTINATION SYNTAX"
.SH "LMTP SERVER LOOKUP"
.na
.nf
.ad

View File

@ -52,7 +52,7 @@
# .IP "multi-line text"
# A logical line starts with non-whitespace text. A line that
# starts with whitespace continues a logical line.
# EMAIL ADDRESS PATTERNS
# EMAIL ADDRESS PATTERNS IN INDEXED TABLES
# .ad
# .fi
# With lookups from indexed files such as DB or DBM, or from networked
@ -85,7 +85,7 @@
# (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes:
# \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIdomain\fR,
# \fIuser+foo\fR@, and \fIuser\fR@.
# HOST NAME/ADDRESS PATTERNS
# HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES
# .ad
# .fi
# With lookups from indexed files such as DB or DBM, or from networked

View File

@ -19085,7 +19085,7 @@ can be excluded with smtpd_forbid_bare_newline_exclusions. </dd>
<dt> <b>note</b> </dt> <dd> Same as "normalize", but also notes in
the log whether the Postfix SMTP server received any lines with
"bare &lt;LF&gt;". The information is formatted as "<tt>disconnect
from name[address] ... notes=bare_lf</tt>". The new value is
from name[address] ... notes=bare_lf</tt>". The notes value is
expected to become a list of comma-separated names. <br> <br> This
feature is available in Postfix 3.9 and later. </dd>

View File

@ -107,3 +107,4 @@ proto proto aliases proto virtual proto ADDRESS_REWRITING_README html
postdrop postdrop c postsuper postsuper c sendmail sendmail c
postlogd postlogd c
qmgr qmgr c qmqpd qmqpd c trivial rewrite trivial rewrite c
strategies File smtp smtp c

View File

@ -75,3 +75,4 @@ Refactored
Vijay
Sakaguchi
Toshifumi
mxonly

View File

@ -24,7 +24,7 @@ Reporting-MTA: dns; mail.example
Original-Envelope-Id: TEST-ENVID
X-Postfix-Queue-ID: msgid
X-Postfix-Sender: rfc822; sender@sender.example
Arrival-Date: Sat, 5 Dec 2020 13:31:48 -0500 (EST)
Arrival-Date: Sat, 05 Dec 2020 13:31:48 -0500 (EST)
Final-Recipient: rfc822; rcpt-address
Original-Recipient: rfc822; rcpt-orig_addr

View File

@ -26,7 +26,7 @@ Reporting-MTA: dns; mail.example
Original-Envelope-Id: TEST-ENVID
X-Postfix-Queue-ID: msgid
X-Postfix-Sender: rfc822; sender@sender.example
Arrival-Date: Sat, 5 Dec 2020 13:31:48 -0500 (EST)
Arrival-Date: Sat, 05 Dec 2020 13:31:48 -0500 (EST)
Final-Recipient: rfc822; rcpt-address
Original-Recipient: rfc822; rcpt-orig_addr

View File

@ -6,6 +6,6 @@
./test_dns_lookup: lookup porcupine.org type A flags RES_USE_DNSSEC
./test_dns_lookup: dns_query: porcupine.org (A): Host found but no data record of requested type
ad: 0, rr: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
ad: 0, rr: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
porcupine.org: fqdn: porcupine.org

View File

@ -1,15 +1,15 @@
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
./test_dns_lookup: dict_regexp_lookup: no-mx.reg: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_get_answer: type MX for porcupine.org
./test_dns_lookup: dns_query: porcupine.org (MX): OK
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 10 spike.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 m1.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 30 vz.porcupine.org.
./test_dns_lookup: ignoring DNS RR: porcupine.org. 3600 IN MX 40 m1.porcupine.org.
./test_dns_lookup: lookup porcupine.org type MX flags RES_USE_DNSSEC
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 10 spike.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 m1.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 30 vz.porcupine.org. = ignore
./test_dns_lookup: maps_find: DNS reply filter: regexp:no-mx.reg(0,lock|fold_fix): porcupine.org. 3600 IN MX 40 m1.porcupine.org. = ignore
./test_dns_lookup: warning: Error looking up name=porcupine.org type=MX: DNS reply filter drops all results (rcode=0)

View File

@ -10,7 +10,7 @@
/* time_t when;
/* DESCRIPTION
/* mail_date() converts the time specified in \fIwhen\fR to the
/* form: "Mon, 9 Dec 1996 05:38:26 -0500 (EST)" and returns
/* form: "Mon, 09 Dec 1996 05:38:26 -0500 (EST)" and returns
/* a pointer to the result. The result is overwritten upon
/* each call.
/* DIAGNOSTICS
@ -104,7 +104,7 @@ const char *mail_date(time_t when)
* potentially breaking change, we prefer the %d (two-digit day) format,
* i.e. days 1-9 now have a leading zero instead of a leading space.
*/
#if defined(MISSING_STRFTIME_E) || defined (TWO_DIGIT_DAY_IN_DATE_TIME)
#if defined(MISSING_STRFTIME_E) || defined(TWO_DIGIT_DAY_IN_DATE_TIME)
#define STRFTIME_FMT "%a, %d %b %Y %H:%M:%S "
#else
#define STRFTIME_FMT "%a, %e %b %Y %H:%M:%S "

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20240209"
#define MAIL_RELEASE_DATE "20240213"
#define MAIL_VERSION_NUMBER "3.9"
#ifdef SNAPSHOT

View File

@ -195,8 +195,12 @@ const char *maps_find(MAPS *maps, const char *name, int flags)
for (map_name = maps->argv->argv; *map_name; map_name++) {
if ((dict = dict_handle(*map_name)) == 0)
msg_panic("%s: dictionary not found: %s", myname, *map_name);
if (flags != 0 && (dict->flags & flags) == 0)
if (flags != 0 && (dict->flags & flags) == 0) {
if (msg_verbose)
msg_info("%s: %s: skipping %s lookup for %s",
myname, maps->title, *map_name, name);
continue;
}
if ((expansion = dict_get(dict, name)) != 0) {
if (*expansion == 0) {
msg_warn("%s lookup of %s returns an empty string result",
@ -252,8 +256,12 @@ const char *maps_file_find(MAPS *maps, const char *name, int flags)
if ((dict->flags & DICT_FLAG_SRC_RHS_IS_FILE) == 0)
msg_panic("%s: %s: opened without DICT_FLAG_SRC_RHS_IS_FILE",
myname, maps->title);
if (flags != 0 && (dict->flags & flags) == 0)
if (flags != 0 && (dict->flags & flags) == 0) {
if (msg_verbose)
msg_info("%s: %s: skipping %s lookup for %s",
myname, maps->title, *map_name, name);
continue;
}
if ((expansion = dict_get(dict, name)) != 0) {
if (*expansion == 0) {
msg_warn("%s lookup of %s returns an empty string result",

View File

@ -23,9 +23,9 @@
/* to the \fBbounce\fR(8), \fBdefer\fR(8) or \fBtrace\fR(8) daemon as
/* appropriate.
/*
/* The server lookup strategy is different for SMTP and LMTP.
/* The details are given below under in the sections "SMTP
/* DESTINATION SYNTAX" and "LMTP DESTINATION SYNTAX".
/* The server lookup strategy is different for SMTP and LMTP,
/* as described in the sections "SMTP SERVER LOOKUP" and "LMTP
/* SERVER LOOKUP".
/*
/* After a successful mail transaction, a connection may be saved
/* to the \fBscache\fR(8) connection cache server, so that it
@ -35,7 +35,7 @@
/* destinations that have a high volume of mail in the active
/* queue. Connection caching can be enabled permanently for
/* specific destinations.
/* SMTP DESTINATION SYNTAX
/* SMTP SERVER LOOKUP
/* .ad
/* .fi
/* The Postfix SMTP client supports multiple destinations
@ -59,7 +59,7 @@
/* Connect to the host at the specified address, and connect
/* to the specified service (default: \fBsmtp\fR). An IPv6 address
/* must be formatted as [\fBipv6\fR:\fIaddress\fR].
/* LMTP DESTINATION SYNTAX
/* LMTP SERVER LOOKUP
/* .ad
/* .fi
/* The Postfix LMTP client supports multiple destinations

View File

@ -164,6 +164,7 @@ int main(int argc, char **argv)
msg_info("PASS %s/%d", str_name_code(af_map, tp->in_af),
tp->in_prefix_len);
}
myfree(act_prefix);
}
msg_info("PASS=%d FAIL=%d", pass, fail);
return (fail > 0);