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:
parent
c4cfeea748
commit
02fa92e7b7
@ -17004,3 +17004,19 @@ Apologies for any names omitted.
|
|||||||
all input lines ending in <CR><LF> only if the first input
|
all input lines ending in <CR><LF> only if the first input
|
||||||
line ends in <CR><LF>). Files: sendmail/sendmail.c,
|
line ends in <CR><LF>). Files: sendmail/sendmail.c,
|
||||||
global/mail_params.h, proto/postconf.proto.
|
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.
|
||||||
|
@ -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
|
this parameter limits the size of the short-term, in-memory list of
|
||||||
"dead" destinations. Destinations that don't fit the list are not
|
"dead" destinations. Destinations that don't fit the list are not
|
||||||
added.
|
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
|
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
|
if you flush the deferred mail queue frequently, then you may find that Postfix
|
||||||
|
@ -17,6 +17,41 @@ Wish list:
|
|||||||
that require performance for low-security operations
|
that require performance for low-security operations
|
||||||
such as sharing the postscreen cache.
|
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
|
Investigate viability of Sendmail socket maps (the moral
|
||||||
equivalent of tcp_table(5)), and dns maps.
|
equivalent of tcp_table(5)), and dns maps.
|
||||||
|
|
||||||
|
@ -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>:
|
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||||
<a href="postconf.5.html#debugger_command">debugger_command</a> =
|
<a href="postconf.5.html#debugger_command">debugger_command</a> =
|
||||||
PATH=/bin:/usr/bin:/usr/local/bin;
|
PATH=/bin:/usr/bin:/usr/local/bin;
|
||||||
(truss -p $<a href="postconf.5.html#process_id">process_id</a> 2>&1 | logger -p mail.info) & sleep 5
|
(truss -p $<a href="postconf.5.html#process_id">process_id</a> 2>&1 | logger -p mail.info) & sleep 5
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
|
@ -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
|
of "dead" destinations. Destinations that don't fit the list are
|
||||||
not added. </dd>
|
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>
|
</dl>
|
||||||
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
ples.
|
ples.
|
||||||
|
|
||||||
<b>COMPATIBILITY CONTROLS</b>
|
<b>COMPATIBILITY CONTROLS</b>
|
||||||
|
Available with Postfix 2.9 and later:
|
||||||
|
|
||||||
<b>sendmail_fix_line_endings (always)</b>
|
<b>sendmail_fix_line_endings (always)</b>
|
||||||
Controls how the Postfix sendmail command converts
|
Controls how the Postfix sendmail command converts
|
||||||
email message line endings from <CR><LF> into UNIX
|
email message line endings from <CR><LF> into UNIX
|
||||||
|
@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
ples.
|
ples.
|
||||||
|
|
||||||
<b>COMPATIBILITY CONTROLS</b>
|
<b>COMPATIBILITY CONTROLS</b>
|
||||||
|
Available with Postfix 2.9 and later:
|
||||||
|
|
||||||
<b>sendmail_fix_line_endings (always)</b>
|
<b>sendmail_fix_line_endings (always)</b>
|
||||||
Controls how the Postfix sendmail command converts
|
Controls how the Postfix sendmail command converts
|
||||||
email message line endings from <CR><LF> into UNIX
|
email message line endings from <CR><LF> into UNIX
|
||||||
|
@ -12531,8 +12531,7 @@ restriction lists" for a discussion of evaluation context and time.
|
|||||||
<p> Mandatory TLS: announce STARTTLS support to SMTP clients,
|
<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>
|
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
|
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
|
server. This option is therefore off by default. </p>
|
||||||
dedicated servers. </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>
|
<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>
|
||||||
|
|
||||||
|
@ -322,6 +322,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||||||
ples.
|
ples.
|
||||||
|
|
||||||
<b>COMPATIBILITY CONTROLS</b>
|
<b>COMPATIBILITY CONTROLS</b>
|
||||||
|
Available with Postfix 2.9 and later:
|
||||||
|
|
||||||
<b>sendmail_fix_line_endings (always)</b>
|
<b>sendmail_fix_line_endings (always)</b>
|
||||||
Controls how the Postfix sendmail command converts
|
Controls how the Postfix sendmail command converts
|
||||||
email message line endings from <CR><LF> into UNIX
|
email message line endings from <CR><LF> into UNIX
|
||||||
|
@ -279,6 +279,7 @@ The text below provides only a parameter summary. See
|
|||||||
.nf
|
.nf
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
|
Available with Postfix 2.9 and later:
|
||||||
.IP "\fBsendmail_fix_line_endings (always)\fR"
|
.IP "\fBsendmail_fix_line_endings (always)\fR"
|
||||||
Controls how the Postfix sendmail command converts email message
|
Controls how the Postfix sendmail command converts email message
|
||||||
line endings from <CR><LF> into UNIX format (<LF>).
|
line endings from <CR><LF> into UNIX format (<LF>).
|
||||||
|
@ -7854,8 +7854,7 @@ See smtpd_data_restrictions for details and limitations.
|
|||||||
Mandatory TLS: announce STARTTLS support to SMTP clients,
|
Mandatory TLS: announce STARTTLS support to SMTP clients,
|
||||||
and require that clients use TLS encryption. According to RFC 2487
|
and require that clients use TLS encryption. According to RFC 2487
|
||||||
this MUST NOT be applied in case of a publicly-referenced SMTP
|
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
|
server. This option is therefore off by default.
|
||||||
dedicated servers.
|
|
||||||
.PP
|
.PP
|
||||||
Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
|
Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes".
|
||||||
.PP
|
.PP
|
||||||
|
@ -315,7 +315,7 @@ so that it invokes the call tracer of your choice, for example:
|
|||||||
/etc/postfix/main.cf:
|
/etc/postfix/main.cf:
|
||||||
debugger_command =
|
debugger_command =
|
||||||
PATH=/bin:/usr/bin:/usr/local/bin;
|
PATH=/bin:/usr/bin:/usr/local/bin;
|
||||||
(truss -p $process_id 2>&1 | logger -p mail.info) & sleep 5
|
(truss -p $process_id 2>&1 | logger -p mail.info) & sleep 5
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
|
@ -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
|
of "dead" destinations. Destinations that don't fit the list are
|
||||||
not added. </dd>
|
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>
|
</dl>
|
||||||
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
@ -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,
|
<p> Mandatory TLS: announce STARTTLS support to SMTP clients,
|
||||||
and require that clients use TLS encryption. According to RFC 2487
|
and require that clients use TLS encryption. According to RFC 2487
|
||||||
this MUST NOT be applied in case of a publicly-referenced SMTP
|
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
|
server. This option is therefore off by default. </p>
|
||||||
dedicated servers. </p>
|
|
||||||
|
|
||||||
<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>
|
<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p>
|
||||||
|
|
||||||
|
@ -490,8 +490,15 @@ static void cleanup_service(VSTREAM *src, char *unused_service, char **argv)
|
|||||||
*/
|
*/
|
||||||
if (CLEANUP_OUT_OK(state) == 0 && type > 0) {
|
if (CLEANUP_OUT_OK(state) == 0 && type > 0) {
|
||||||
while (type != REC_TYPE_END
|
while (type != REC_TYPE_END
|
||||||
&& (type = rec_get(src, buf, 0)) > 0)
|
&& (type = rec_get(src, buf, 0)) > 0) {
|
||||||
/* void */ ;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||||
* patchlevel; they change the release date only.
|
* patchlevel; they change the release date only.
|
||||||
*/
|
*/
|
||||||
#define MAIL_RELEASE_DATE "20111012"
|
#define MAIL_RELEASE_DATE "20111024"
|
||||||
#define MAIL_VERSION_NUMBER "2.9"
|
#define MAIL_VERSION_NUMBER "2.9"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@ -925,7 +925,9 @@ int mime_state_update(MIME_STATE *state, int rec_type,
|
|||||||
if (state->curr_domain != MIME_ENC_7BIT)
|
if (state->curr_domain != MIME_ENC_7BIT)
|
||||||
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
|
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
|
||||||
mime_state_enc_name(state->curr_encoding));
|
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)
|
if (state->curr_encoding != state->curr_domain)
|
||||||
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
|
REPORT_ERROR(state, MIME_ERR_ENCODING_DOMAIN,
|
||||||
mime_state_enc_name(state->curr_encoding));
|
mime_state_enc_name(state->curr_encoding));
|
||||||
|
@ -634,6 +634,9 @@ int milter_send(MILTERS *milters, VSTREAM *stream)
|
|||||||
count++;
|
count++;
|
||||||
(void) rec_fprintf(stream, REC_TYPE_MILT_COUNT, "%d", 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
|
* XXX Optimization: don't send or receive further information when there
|
||||||
* aren't any active filters.
|
* aren't any active filters.
|
||||||
@ -679,6 +682,9 @@ MILTERS *milter_receive(VSTREAM *stream, int count)
|
|||||||
MILTER *tail = 0;
|
MILTER *tail = 0;
|
||||||
MILTER *milter = 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
|
* XXX We must instantiate a MILTERS structure even when the sender has
|
||||||
* no active filters, otherwise the cleanup server would try to use its
|
* no active filters, otherwise the cleanup server would try to use its
|
||||||
|
@ -263,6 +263,7 @@
|
|||||||
/* COMPATIBILITY CONTROLS
|
/* COMPATIBILITY CONTROLS
|
||||||
/* .ad
|
/* .ad
|
||||||
/* .fi
|
/* .fi
|
||||||
|
/* Available with Postfix 2.9 and later:
|
||||||
/* .IP "\fBsendmail_fix_line_endings (always)\fR"
|
/* .IP "\fBsendmail_fix_line_endings (always)\fR"
|
||||||
/* Controls how the Postfix sendmail command converts email message
|
/* Controls how the Postfix sendmail command converts email message
|
||||||
/* line endings from <CR><LF> into UNIX format (<LF>).
|
/* line endings from <CR><LF> into UNIX format (<LF>).
|
||||||
@ -1102,7 +1103,8 @@ int main(int argc, char **argv)
|
|||||||
optind++;
|
optind++;
|
||||||
continue;
|
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; "
|
msg_warn("option -V is deprecated with Postfix 2.3; "
|
||||||
"specify -XV instead");
|
"specify -XV instead");
|
||||||
argv[OPTIND] = "-XV";
|
argv[OPTIND] = "-XV";
|
||||||
|
@ -183,6 +183,7 @@ typedef struct {
|
|||||||
#define SMTPD_FLAG_ILL_PIPELINING (1<<1) /* inappropriate pipelining */
|
#define SMTPD_FLAG_ILL_PIPELINING (1<<1) /* inappropriate pipelining */
|
||||||
#define SMTPD_FLAG_AUTH_USED (1<<2) /* don't reuse SASL state */
|
#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_MASK_MAIL_KEEP ~0 /* keep all after MAIL reset */
|
||||||
|
|
||||||
#define SMTPD_STATE_XFORWARD_INIT (1<<0) /* xforward preset done */
|
#define SMTPD_STATE_XFORWARD_INIT (1<<0) /* xforward preset done */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user