mirror of
https://github.com/vdukhovni/postfix
synced 2025-09-03 15:45:24 +00:00
postfix-2.3-20050629
This commit is contained in:
committed by
Viktor Dukhovni
parent
6122cc449d
commit
1b2211aa09
@@ -10952,6 +10952,13 @@ Apologies for any names omitted.
|
|||||||
Code cleanup: generalized the smtp-sink code that simulates
|
Code cleanup: generalized the smtp-sink code that simulates
|
||||||
server errors. File: smtpstone/smtp-sink.c.
|
server errors. File: smtpstone/smtp-sink.c.
|
||||||
|
|
||||||
|
20050629
|
||||||
|
|
||||||
|
Code cleanup: the smtp_mx_session_limit setting (per delivery
|
||||||
|
request session count limit) now ignores sessions that fail
|
||||||
|
to complete the TCP, SMTP, EHLO or TLS handshake (was: TCP
|
||||||
|
and SMTP). File: smtp/smtp_proto.c.
|
||||||
|
|
||||||
Open problems:
|
Open problems:
|
||||||
|
|
||||||
Look for systems with XPG basename() declared in <libgen.h>,
|
Look for systems with XPG basename() declared in <libgen.h>,
|
||||||
|
@@ -17,6 +17,13 @@ Incompatibility with Postfix 2.1 and earlier
|
|||||||
If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2
|
If you upgrade from Postfix 2.1 or earlier, read RELEASE_NOTES-2.2
|
||||||
before proceeding.
|
before proceeding.
|
||||||
|
|
||||||
|
Incompatibility with snapshot 20050627
|
||||||
|
======================================
|
||||||
|
|
||||||
|
The Postfix SMTP client no longer applies the smtp_mx_session_limit
|
||||||
|
to non-permanent errors during the TCP, SMTP, HELO or TLS handshake.
|
||||||
|
Previous versions did that only with TCP and SMTP handshake errors.
|
||||||
|
|
||||||
Incompatibility with snapshot 20050622
|
Incompatibility with snapshot 20050622
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
@@ -26,9 +33,7 @@ disabled by default. The new limit prevents Postfix from spending
|
|||||||
lots of time trying to connect to lots of bogus MX servers.
|
lots of time trying to connect to lots of bogus MX servers.
|
||||||
|
|
||||||
The Postfix SMTP error handling of [45]XX server greetings was
|
The Postfix SMTP error handling of [45]XX server greetings was
|
||||||
cleaned up. The server reply is now properly reported. As a side
|
cleaned up. The server reply is now properly reported.
|
||||||
effect, the failed session now counts towards the limit on the total
|
|
||||||
number of sessions per domain name (default: smtp_mx_session_limit=2).
|
|
||||||
|
|
||||||
Incompatibility with snapshot 20050615
|
Incompatibility with snapshot 20050615
|
||||||
======================================
|
======================================
|
||||||
|
@@ -6221,8 +6221,9 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
|
|
||||||
<p> The maximal number of SMTP sessions per delivery request before
|
<p> The maximal number of SMTP sessions per delivery request before
|
||||||
giving up or delivering to a fall-back relay host, or zero (no
|
giving up or delivering to a fall-back relay host, or zero (no
|
||||||
limit). This restriction ignores IP addresses that fail to complete
|
limit). This restriction ignores sessions that fail to complete the
|
||||||
the SMTP initial handshake. </p>
|
SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
|
||||||
|
complete the EHLO and TLS handshake (Postfix 2.3 and later). </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.1 and later. </p>
|
<p> This feature is available in Postfix 2.1 and later. </p>
|
||||||
|
|
||||||
|
@@ -514,7 +514,7 @@ result is ignored). Continue long lines by starting the next line
|
|||||||
with whitespace.
|
with whitespace.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the authorized_verp_clients value, and in files
|
[] in the authorized_verp_clients value, and in files
|
||||||
specified with "/file/name". IP version 6 addresses contain the
|
specified with "/file/name". IP version 6 addresses contain the
|
||||||
":" character, and would otherwise be confused with a "type:table"
|
":" character, and would otherwise be confused with a "type:table"
|
||||||
pattern.
|
pattern.
|
||||||
@@ -1197,7 +1197,7 @@ is unavailable.
|
|||||||
In main.cf specify "relay_transport = relay",
|
In main.cf specify "relay_transport = relay",
|
||||||
.IP \(bu
|
.IP \(bu
|
||||||
In master.cf specify "-o fallback_relay =" (i.e., empty) at
|
In master.cf specify "-o fallback_relay =" (i.e., empty) at
|
||||||
the end of the <tt>relay</tt> entry.
|
the end of the relay entry.
|
||||||
.IP \(bu
|
.IP \(bu
|
||||||
In transport maps, specify "relay:\fInexthop...\fR"
|
In transport maps, specify "relay:\fInexthop...\fR"
|
||||||
as the right-hand side for backup or primary MX domain entries.
|
as the right-hand side for backup or primary MX domain entries.
|
||||||
@@ -1406,11 +1406,11 @@ The network interface addresses that this mail system receives
|
|||||||
mail on. Specify "all" to receive mail on all network
|
mail on. Specify "all" to receive mail on all network
|
||||||
interfaces (default), and "loopback-only" to receive mail
|
interfaces (default), and "loopback-only" to receive mail
|
||||||
on loopback network interfaces only (Postfix 2.2 and later). The
|
on loopback network interfaces only (Postfix 2.2 and later). The
|
||||||
parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.
|
parameter also controls delivery of mail to user@[ip.address].
|
||||||
.PP
|
.PP
|
||||||
Note 1: you need to stop and start Postfix when this parameter changes.
|
Note 1: you need to stop and start Postfix when this parameter changes.
|
||||||
.PP
|
.PP
|
||||||
Note 2: address information may be enclosed inside <tt>[]</tt>,
|
Note 2: address information may be enclosed inside [],
|
||||||
but this form is not recommended here.
|
but this form is not recommended here.
|
||||||
.PP
|
.PP
|
||||||
When inet_interfaces specifies just one IPv4 and/or IPv6 address
|
When inet_interfaces specifies just one IPv4 and/or IPv6 address
|
||||||
@@ -2370,7 +2370,7 @@ first match. Specify "!pattern" to exclude an address or network
|
|||||||
block from the list.
|
block from the list.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the mynetworks value, and in files specified with
|
[] in the mynetworks value, and in files specified with
|
||||||
"/file/name". IP version 6 addresses contain the ":" character,
|
"/file/name". IP version 6 addresses contain the ":" character,
|
||||||
and would otherwise be confused with a "type:table" pattern.
|
and would otherwise be confused with a "type:table" pattern.
|
||||||
.PP
|
.PP
|
||||||
@@ -3192,7 +3192,7 @@ automatically used as the smtp_bind_address. This supports virtual
|
|||||||
IP hosting, but can be a problem on multi-homed firewalls. See the
|
IP hosting, but can be a problem on multi-homed firewalls. See the
|
||||||
inet_interfaces documentation for more detail.
|
inet_interfaces documentation for more detail.
|
||||||
.PP
|
.PP
|
||||||
Note 2: address information may be enclosed inside <tt>[]</tt>,
|
Note 2: address information may be enclosed inside [],
|
||||||
but this form is not recommended here.
|
but this form is not recommended here.
|
||||||
.SH smtp_bind_address6 (default: empty)
|
.SH smtp_bind_address6 (default: empty)
|
||||||
An optional numerical network address that the SMTP client should
|
An optional numerical network address that the SMTP client should
|
||||||
@@ -3219,7 +3219,7 @@ automatically used as the smtp_bind_address6. This supports virtual
|
|||||||
IP hosting, but can be a problem on multi-homed firewalls. See the
|
IP hosting, but can be a problem on multi-homed firewalls. See the
|
||||||
inet_interfaces documentation for more detail.
|
inet_interfaces documentation for more detail.
|
||||||
.PP
|
.PP
|
||||||
Note 2: address information may be enclosed inside <tt>[]</tt>,
|
Note 2: address information may be enclosed inside [],
|
||||||
but this form is not recommended here.
|
but this form is not recommended here.
|
||||||
.SH smtp_connect_timeout (default: 30s)
|
.SH smtp_connect_timeout (default: 30s)
|
||||||
The SMTP client time limit for completing a TCP connection, or
|
The SMTP client time limit for completing a TCP connection, or
|
||||||
@@ -3443,8 +3443,9 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
.SH smtp_mx_session_limit (default: 2)
|
.SH smtp_mx_session_limit (default: 2)
|
||||||
The maximal number of SMTP sessions per delivery request before
|
The maximal number of SMTP sessions per delivery request before
|
||||||
giving up or delivering to a fall-back relay host, or zero (no
|
giving up or delivering to a fall-back relay host, or zero (no
|
||||||
limit). This restriction ignores IP addresses that fail to complete
|
limit). This restriction ignores sessions that fail to complete the
|
||||||
the SMTP initial handshake.
|
SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
|
||||||
|
complete the EHLO and TLS handshake (Postfix 2.3 and later).
|
||||||
.PP
|
.PP
|
||||||
This feature is available in Postfix 2.1 and later.
|
This feature is available in Postfix 2.1 and later.
|
||||||
.SH smtp_never_send_ehlo (default: no)
|
.SH smtp_never_send_ehlo (default: no)
|
||||||
@@ -3870,7 +3871,7 @@ result is ignored). Continue long lines by starting the next line
|
|||||||
with whitespace.
|
with whitespace.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the smtpd_authorized_verp_clients value, and in
|
[] in the smtpd_authorized_verp_clients value, and in
|
||||||
files specified with "/file/name". IP version 6 addresses contain
|
files specified with "/file/name". IP version 6 addresses contain
|
||||||
the ":" character, and would otherwise be confused with a "type:table"
|
the ":" character, and would otherwise be confused with a "type:table"
|
||||||
pattern.
|
pattern.
|
||||||
@@ -3896,7 +3897,7 @@ result is ignored). Continue long lines by starting the next line
|
|||||||
with whitespace.
|
with whitespace.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the smtpd_authorized_xclient_hosts value, and in
|
[] in the smtpd_authorized_xclient_hosts value, and in
|
||||||
files specified with "/file/name". IP version 6 addresses contain
|
files specified with "/file/name". IP version 6 addresses contain
|
||||||
the ":" character, and would otherwise be confused with a "type:table"
|
the ":" character, and would otherwise be confused with a "type:table"
|
||||||
pattern.
|
pattern.
|
||||||
@@ -3921,7 +3922,7 @@ result is ignored). Continue long lines by starting the next line
|
|||||||
with whitespace.
|
with whitespace.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the smtpd_authorized_xforward_hosts value, and in
|
[] in the smtpd_authorized_xforward_hosts value, and in
|
||||||
files specified with "/file/name". IP version 6 addresses contain
|
files specified with "/file/name". IP version 6 addresses contain
|
||||||
the ":" character, and would otherwise be confused with a "type:table"
|
the ":" character, and would otherwise be confused with a "type:table"
|
||||||
pattern.
|
pattern.
|
||||||
@@ -3986,7 +3987,7 @@ list of network blocks, hostnames or .domain names (the initial
|
|||||||
dot causes the domain to match any name below it).
|
dot causes the domain to match any name below it).
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the smtpd_client_event_limit_exceptions value, and
|
[] in the smtpd_client_event_limit_exceptions value, and
|
||||||
in files specified with "/file/name". IP version 6 addresses
|
in files specified with "/file/name". IP version 6 addresses
|
||||||
contain the ":" character, and would otherwise be confused with a
|
contain the ":" character, and would otherwise be confused with a
|
||||||
"type:table" pattern.
|
"type:table" pattern.
|
||||||
@@ -4773,7 +4774,7 @@ matches a lookup string (the lookup result is ignored). Continue
|
|||||||
long lines by starting the next line with whitespace.
|
long lines by starting the next line with whitespace.
|
||||||
.PP
|
.PP
|
||||||
Note: IP version 6 address information must be specified inside
|
Note: IP version 6 address information must be specified inside
|
||||||
<tt>[]</tt> in the smtpd_sasl_exceptions_networks value, and in
|
[] in the smtpd_sasl_exceptions_networks value, and in
|
||||||
files specified with "/file/name". IP version 6 addresses contain
|
files specified with "/file/name". IP version 6 addresses contain
|
||||||
the ":" character, and would otherwise be confused with a "type:table"
|
the ":" character, and would otherwise be confused with a "type:table"
|
||||||
pattern.
|
pattern.
|
||||||
|
@@ -63,6 +63,8 @@ while(<>) {
|
|||||||
$block =~ s/<li>\s*/\n.IP \\(bu\n/g;
|
$block =~ s/<li>\s*/\n.IP \\(bu\n/g;
|
||||||
$block =~ s/<dt>\s*/\n.IP "/g;
|
$block =~ s/<dt>\s*/\n.IP "/g;
|
||||||
$block =~ s/\s*<\/dt>/"/g;
|
$block =~ s/\s*<\/dt>/"/g;
|
||||||
|
$block =~ s/<tt>\s*//g;
|
||||||
|
$block =~ s/\s*<\/tt>//g;
|
||||||
$block =~ s/<blockquote>/\n.na\n.nf\n.in +4\n/g;
|
$block =~ s/<blockquote>/\n.na\n.nf\n.in +4\n/g;
|
||||||
$block =~ s/<\/blockquote>/\n.in -4\n.fi\n.ad\n/g;
|
$block =~ s/<\/blockquote>/\n.in -4\n.fi\n.ad\n/g;
|
||||||
$block =~ s/\n<br>/\n.br\n/g;
|
$block =~ s/\n<br>/\n.br\n/g;
|
||||||
|
@@ -3840,8 +3840,9 @@ This feature is available in Postfix 2.1 and later.
|
|||||||
|
|
||||||
<p> The maximal number of SMTP sessions per delivery request before
|
<p> The maximal number of SMTP sessions per delivery request before
|
||||||
giving up or delivering to a fall-back relay host, or zero (no
|
giving up or delivering to a fall-back relay host, or zero (no
|
||||||
limit). This restriction ignores IP addresses that fail to complete
|
limit). This restriction ignores sessions that fail to complete the
|
||||||
the SMTP initial handshake. </p>
|
SMTP initial handshake (Postfix 2.2 and earlier) or that fail to
|
||||||
|
complete the EHLO and TLS handshake (Postfix 2.3 and later). </p>
|
||||||
|
|
||||||
<p> This feature is available in Postfix 2.1 and later. </p>
|
<p> This feature is available in Postfix 2.1 and later. </p>
|
||||||
|
|
||||||
|
@@ -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 "20050627"
|
#define MAIL_RELEASE_DATE "20050629"
|
||||||
#define MAIL_VERSION_NUMBER "2.3"
|
#define MAIL_VERSION_NUMBER "2.3"
|
||||||
|
|
||||||
#define VAR_MAIL_VERSION "mail_version"
|
#define VAR_MAIL_VERSION "mail_version"
|
||||||
|
@@ -653,18 +653,22 @@ int smtp_connect(SMTP_STATE *state)
|
|||||||
|| (session = smtp_reuse_addr(state, addr, port)) == 0)
|
|| (session = smtp_reuse_addr(state, addr, port)) == 0)
|
||||||
session = smtp_connect_addr(dest, addr, port, why, sess_flags);
|
session = smtp_connect_addr(dest, addr, port, why, sess_flags);
|
||||||
if ((state->session = session) != 0) {
|
if ((state->session = session) != 0) {
|
||||||
if (++sess_count == var_smtp_mxsess_limit)
|
|
||||||
next = 0;
|
|
||||||
state->final_server = (cpp[1] == 0 && next == 0);
|
|
||||||
if (addr->pref == domain_best_pref)
|
if (addr->pref == domain_best_pref)
|
||||||
session->features |= SMTP_FEATURE_BEST_MX;
|
session->features |= SMTP_FEATURE_BEST_MX;
|
||||||
|
/* Don't count handshake errors towards the session limit. */
|
||||||
|
state->final_server = (cpp[1] == 0 && next == 0);
|
||||||
if ((session->features & SMTP_FEATURE_FROM_CACHE) == 0
|
if ((session->features & SMTP_FEATURE_FROM_CACHE) == 0
|
||||||
&& smtp_helo(state, misc_flags) != 0) {
|
&& smtp_helo(state, misc_flags) != 0) {
|
||||||
if (vstream_ferror(session->stream) == 0
|
if (vstream_ferror(session->stream) == 0
|
||||||
&& vstream_feof(session->stream) == 0)
|
&& vstream_feof(session->stream) == 0)
|
||||||
smtp_quit(state);
|
smtp_quit(state);
|
||||||
} else
|
} else {
|
||||||
|
/* Do count delivery errors towards the session limit. */
|
||||||
|
if (++sess_count == var_smtp_mxsess_limit)
|
||||||
|
next = 0;
|
||||||
|
state->final_server = (cpp[1] == 0 && next == 0);
|
||||||
smtp_xfer(state);
|
smtp_xfer(state);
|
||||||
|
}
|
||||||
smtp_cleanup_session(state);
|
smtp_cleanup_session(state);
|
||||||
} else {
|
} else {
|
||||||
msg_info("%s (port %d)", STR(why->reason), ntohs(port));
|
msg_info("%s (port %d)", STR(why->reason), ntohs(port));
|
||||||
|
@@ -547,6 +547,15 @@ static DICT *dict_db_open(const char *class, const char *path, int open_flags,
|
|||||||
"compiled against %d.%d.%d, run-time linked against %d.%d.%d",
|
"compiled against %d.%d.%d, run-time linked against %d.%d.%d",
|
||||||
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
|
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
|
||||||
major_version, minor_version, patch_version);
|
major_version, minor_version, patch_version);
|
||||||
|
if (msg_verbose) {
|
||||||
|
msg_info("Compiled against Berkeley DB: %d.%d.%d\n",
|
||||||
|
DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
|
||||||
|
msg_info("Run-time linked against Berkeley DB: %d.%d.%d\n",
|
||||||
|
major_version, minor_version, patch_version);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (msg_verbose)
|
||||||
|
msg_info("Compiled against Berkeley DB version 1");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
db_path = concatenate(path, ".db", (char *) 0);
|
db_path = concatenate(path, ".db", (char *) 0);
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
/* int delay;
|
/* int delay;
|
||||||
/*
|
/*
|
||||||
/* int event_cancel_timer(callback, context)
|
/* int event_cancel_timer(callback, context)
|
||||||
/* void (*callback)(char *context);
|
/* void (*callback)(int event, char *context);
|
||||||
/* char *context;
|
/* char *context;
|
||||||
/*
|
/*
|
||||||
/* void event_enable_read(fd, callback, context)
|
/* void event_enable_read(fd, callback, context)
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
/* The event argument is equal to EVENT_TIME.
|
/* The event argument is equal to EVENT_TIME.
|
||||||
/* Only one timer request can be active per (callback, context) pair.
|
/* Only one timer request can be active per (callback, context) pair.
|
||||||
/* Calling event_request_timer() with an existing (callback, context)
|
/* Calling event_request_timer() with an existing (callback, context)
|
||||||
/* pair does not schedule a new event, but updates the moment of
|
/* pair does not schedule a new event, but updates the time of event
|
||||||
/* delivery. The result is the absolute time at which the timer is
|
/* delivery. The result is the absolute time at which the timer is
|
||||||
/* scheduled to go off.
|
/* scheduled to go off.
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user