mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-22 09:57:34 +00:00
postfix-3.9-20240213
This commit is contained in:
parent
403f8ce4a1
commit
2f77adce4e
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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
@ -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 <LF>". 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
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 <LF>". 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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -75,3 +75,4 @@ Refactored
|
||||
Vijay
|
||||
Sakaguchi
|
||||
Toshifumi
|
||||
mxonly
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 "
|
||||
|
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user