2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-29 13:18:12 +00:00

postfix-2.9-20111024

This commit is contained in:
Wietse Venema 2011-10-24 00:00:00 -05:00 committed by Viktor Dukhovni
parent c4cfeea748
commit 02fa92e7b7
20 changed files with 105 additions and 13 deletions

View File

@ -17004,3 +17004,19 @@ Apologies for any names omitted.
all input lines ending in <CR><LF> only if the first input
line ends in <CR><LF>). Files: sendmail/sendmail.c,
global/mail_params.h, proto/postconf.proto.
20111017
Cleanup: refined the heuristic that automagically transforms
legacy "sendmail -V" VERP requests into contemporary "sendmail
-XV" syntax. File: sendmail/sendmail.c.
Cleanup: when the cleanup daemon goes into discard mode,
don't get stuck when it runs onto milter file descriptor
information. File: cleanup/cleanup.c.
20111020
EAI Future-proofing: don't apply strict_mime_encoding_domain
checks to unknown message subtypes such as message/global*.
File: global/mime_state.c.

View File

@ -360,6 +360,11 @@ This process is governed by a bunch of little parameters.
this parameter limits the size of the short-term, in-memory list of
"dead" destinations. Destinations that don't fit the list are not
added.
transport_destination_concurrency_failed_cohort_limit
Controls when a destination is considered "dead". This parameter is
critical with a non-zero transport_destination_rate_delay, with a
reduced transport_destination_concurrency_limit, or with a reduced
initial_destination_concurrency.
IMPORTANT: If you increase the frequency of deferred mail delivery attempts, or
if you flush the deferred mail queue frequently, then you may find that Postfix

View File

@ -17,6 +17,41 @@ Wish list:
that require performance for low-security operations
such as sharing the postscreen cache.
What is the feasibility of adding an mta_name (personality)
attribute that is propagated via queue files and delivery
agent requests? It would default to myhostname.
Major performance improvement opportunity (that is until
everyone runs Postfix queues on SSDs). Investigate the
viability of a daemon that produces incoming and postdrop
queue files on request (in reality it would maintain a
limited queue of "spare" files). Central queue file allocation
reduces the I/O performance disadvantage that qmgr has when
100 smtpd processes are receiving mail, or when lots of
mail is submitted with the sendmail command line. When an
smtpd process accepts MAIL FROM, a cleanup daemon requests
a queue file and receives a queue ID + file handle from the
queue file daemon. If the queue file daemon is down, the
cleanup daemon creates the file itself like it does now;
this can be hidden in the mail_stream library module. If
the mail transaction is aborted, then the cleanup daemon
gives the queue file back to the queue file daemon's "spare"
file pool, saving most of the overhead of creating and
deleting a queue file (the file would still need to be
renamed at the start of the next mail transaction). If the
cleanup daemon is unable to give a file back, then it can
delete the file like it does now; this can be hidden in the
mail_stream library module. The whole thing can be
transparently added to Postfix by adding calls to a
queue-file-service client to the mail_queue_enter() and
mail_queue_remove() library routines. Other advantages:
1) negligible performance hit when queue file allocation
happens earlier, so that logging and milters have a queue
ID for the whole transaction not just the first valid
recipient; 2) by not removing every queue files we get most
of the performance gain of a queue based on append/truncate
instead of the much more expensive create/delete.
Investigate viability of Sendmail socket maps (the moral
equivalent of tcp_table(5)), and dns maps.

View File

@ -315,7 +315,7 @@ so that it invokes the call tracer of your choice, for example:
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
<a href="postconf.5.html#debugger_command">debugger_command</a> =
PATH=/bin:/usr/bin:/usr/local/bin;
(truss -p $<a href="postconf.5.html#process_id">process_id</a> 2&gt&amp;1 | logger -p mail.info) &amp; sleep 5
(truss -p $<a href="postconf.5.html#process_id">process_id</a> 2&gt;&amp;1 | logger -p mail.info) &amp; sleep 5
</pre>
</blockquote>

View File

@ -509,6 +509,13 @@ this parameter limits the size of the short-term, in-memory list
of "dead" destinations. Destinations that don't fit the list are
not added. </dd>
<dt> <a href="postconf.5.html#transport_destination_concurrency_failed_cohort_limit"><i>transport</i>_destination_concurrency_failed_cohort_limit</a>
</dt> <dd> Controls when a destination is considered "dead". This
parameter is critical with a non-zero
<a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a>, with a reduced
<a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a>, or with
a reduced <a href="postconf.5.html#initial_destination_concurrency">initial_destination_concurrency</a>. </dd>
</dl>
</blockquote>

View File

@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
ples.
<b>COMPATIBILITY CONTROLS</b>
Available with Postfix 2.9 and later:
<b>sendmail_fix_line_endings (always)</b>
Controls how the Postfix sendmail command converts
email message line endings from &lt;CR&gt;&lt;LF&gt; into UNIX

View File

@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
ples.
<b>COMPATIBILITY CONTROLS</b>
Available with Postfix 2.9 and later:
<b>sendmail_fix_line_endings (always)</b>
Controls how the Postfix sendmail command converts
email message line endings from &lt;CR&gt;&lt;LF&gt; into UNIX

View File

@ -12531,8 +12531,7 @@ restriction lists" for a discussion of evaluation context and time.
<p> Mandatory TLS: announce STARTTLS support to SMTP clients,
and require that clients use TLS encryption. According to <a href="http://tools.ietf.org/html/rfc2487">RFC 2487</a>
this MUST NOT be applied in case of a publicly-referenced SMTP
server. This option is off by default and should be used only on
dedicated servers. </p>
server. This option is therefore off by default. </p>
<p> Note 1: "<a href="postconf.5.html#smtpd_enforce_tls">smtpd_enforce_tls</a> = yes" implies "<a href="postconf.5.html#smtpd_tls_auth_only">smtpd_tls_auth_only</a> = yes". </p>

View File

@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
ples.
<b>COMPATIBILITY CONTROLS</b>
Available with Postfix 2.9 and later:
<b>sendmail_fix_line_endings (always)</b>
Controls how the Postfix sendmail command converts
email message line endings from &lt;CR&gt;&lt;LF&gt; into UNIX

View File

@ -279,6 +279,7 @@ The text below provides only a parameter summary. See
.nf
.ad
.fi
Available with Postfix 2.9 and later:
.IP "\fBsendmail_fix_line_endings (always)\fR"
Controls how the Postfix sendmail command converts email message
line endings from <CR><LF> into UNIX format (<LF>).

View File

@ -7854,8 +7854,7 @@ See smtpd_data_restrictions for details and limitations.
Mandatory TLS: announce STARTTLS support to SMTP clients,
and require that clients use TLS encryption. According to RFC 2487
this MUST NOT be applied in case of a publicly-referenced SMTP
server. This option is off by default and should be used only on
dedicated servers.
server. This option is therefore off by default.
.PP
Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
.PP

View File

@ -315,7 +315,7 @@ so that it invokes the call tracer of your choice, for example:
/etc/postfix/main.cf:
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin;
(truss -p $process_id 2&gt&amp;1 | logger -p mail.info) &amp; sleep 5
(truss -p $process_id 2&gt;&amp;1 | logger -p mail.info) &amp; sleep 5
</pre>
</blockquote>

View File

@ -509,6 +509,13 @@ this parameter limits the size of the short-term, in-memory list
of "dead" destinations. Destinations that don't fit the list are
not added. </dd>
<dt> <i>transport</i>_destination_concurrency_failed_cohort_limit
</dt> <dd> Controls when a destination is considered "dead". This
parameter is critical with a non-zero
<i>transport</i>_destination_rate_delay, with a reduced
<i>transport</i>_destination_concurrency_limit, or with
a reduced initial_destination_concurrency. </dd>
</dl>
</blockquote>

View File

@ -8888,8 +8888,7 @@ Postfix 2.3 and later use smtpd_tls_security_level instead. </p>
<p> Mandatory TLS: announce STARTTLS support to SMTP clients,
and require that clients use TLS encryption. According to RFC 2487
this MUST NOT be applied in case of a publicly-referenced SMTP
server. This option is off by default and should be used only on
dedicated servers. </p>
server. This option is therefore off by default. </p>
<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>

View File

@ -490,8 +490,15 @@ static void cleanup_service(VSTREAM *src, char *unused_service, char **argv)
*/
if (CLEANUP_OUT_OK(state) == 0 && type > 0) {
while (type != REC_TYPE_END
&& (type = rec_get(src, buf, 0)) > 0)
/* void */ ;
&& (type = rec_get(src, buf, 0)) > 0) {
if (type == REC_TYPE_MILT_COUNT) {
int milter_count = atoi(vstring_str(buf));
/* Avoid deadlock. */
if (milter_count >= 0)
cleanup_milter_receive(state, milter_count);
}
}
}
/*

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 "20111012"
#define MAIL_RELEASE_DATE "20111024"
#define MAIL_VERSION_NUMBER "2.9"
#ifdef SNAPSHOT

View File

@ -925,7 +925,9 @@ int mime_state_update(MIME_STATE *state, int rec_type,
if (state->curr_domain != MIME_ENC_7BIT)
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
mime_state_enc_name(state->curr_encoding));
} else {
}
/* EAI: message/global allows non-identity encoding. */
else if (state->curr_stype == MIME_STYPE_RFC822) {
if (state->curr_encoding != state->curr_domain)
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
mime_state_enc_name(state->curr_encoding));

View File

@ -634,6 +634,9 @@ int milter_send(MILTERS *milters, VSTREAM *stream)
count++;
(void) rec_fprintf(stream, REC_TYPE_MILT_COUNT, "%d", count);
if (msg_verbose)
msg_info("send %d milters");
/*
* XXX Optimization: don't send or receive further information when there
* aren't any active filters.
@ -679,6 +682,9 @@ MILTERS *milter_receive(VSTREAM *stream, int count)
MILTER *tail = 0;
MILTER *milter = 0;
if (msg_verbose)
msg_info("receive %d milters", count);
/*
* XXX We must instantiate a MILTERS structure even when the sender has
* no active filters, otherwise the cleanup server would try to use its

View File

@ -263,6 +263,7 @@
/* COMPATIBILITY CONTROLS
/* .ad
/* .fi
/* Available with Postfix 2.9 and later:
/* .IP "\fBsendmail_fix_line_endings (always)\fR"
/* Controls how the Postfix sendmail command converts email message
/* line endings from <CR><LF> into UNIX format (<LF>).
@ -1102,7 +1103,8 @@ int main(int argc, char **argv)
optind++;
continue;
}
if (strcmp(argv[OPTIND], "-V") == 0) {
if (strcmp(argv[OPTIND], "-V") == 0
&& argv[OPTIND + 1] != 0 && strlen(argv[OPTIND + 1]) == 2) {
msg_warn("option -V is deprecated with Postfix 2.3; "
"specify -XV instead");
argv[OPTIND] = "-XV";

View File

@ -183,6 +183,7 @@ typedef struct {
#define SMTPD_FLAG_ILL_PIPELINING (1<<1) /* inappropriate pipelining */
#define SMTPD_FLAG_AUTH_USED (1<<2) /* don't reuse SASL state */
/* Security: don't reset SMTPD_FLAG_AUTH_USED. */
#define SMTPD_MASK_MAIL_KEEP ~0 /* keep all after MAIL reset */
#define SMTPD_STATE_XFORWARD_INIT (1<<0) /* xforward preset done */