2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 14:17:41 +00:00

postfix-2.3-20050422

This commit is contained in:
Wietse Venema
2005-04-22 00:00:00 -05:00
committed by Viktor Dukhovni
parent 1b3190de2a
commit bca5f7d047
5 changed files with 56 additions and 21 deletions

View File

@@ -10601,10 +10601,10 @@ Apologies for any names omitted.
the MIME processor. Files: global/mime_state.c,
cleanup/cleanup_message.c, smtp/smtp_proto.c.
Cleanup: updated error messages about MIME processing
errors in the SMTP client. These errors are no longer
specific to 8bit->7bit conversion; they can also happen
with generic address mapping. File: smtp/smtp_proto.c.
Cleanup: updated error messages about MIME processing errors
in the SMTP client. These errors are no longer specific to
8bit->7bit conversion; they can also happen with generic
address mapping. File: smtp/smtp_proto.c.
Safety: SASL 2.1.19 has a version lookup routine that we
can use to detect compile time / run time version mis-matches
@@ -10653,7 +10653,7 @@ Apologies for any names omitted.
eliminated a portability problem that was introduced when
"REJECT text" support was added. File: cleanup/cleanup.c.
20040513
20050413
Portability: don't mix socket message send/receive calls
with socket stream read/write calls. The fact that you can
@@ -10673,6 +10673,21 @@ Apologies for any names omitted.
Safety: don't call syslog from a user-triggered signal
handler. File: postdrop/postdrop.c.
20050421
Bugfix: don't panic when the fall-back relay can't be used
because the local MTA is MX for the destination. File:
smtp/smtp_connect.c.
20050422
Bugfix: don't panic when the fall-back relay can't be used
because it was already tried via a cached session. Produce
a default excuse instead. File: smtp/smtp_connect.c.
Bugfix: postsuper could lose an error message after reporting
a fatal error. File: postsuper/postsuper.c.
Open problems:
Med: disable header address rewriting after XCLIENT?

View File

@@ -20,7 +20,7 @@
* Patches change the patchlevel and the release date. Snapshots change the
* release date only.
*/
#define MAIL_RELEASE_DATE "20050418"
#define MAIL_RELEASE_DATE "20050422"
#define MAIL_VERSION_NUMBER "2.3"
#define VAR_MAIL_VERSION "mail_version"

View File

@@ -402,7 +402,7 @@ void lmtp_sasl_start(LMTP_STATE *state, const char *sasl_opts_name,
*/
memset(&sec_props, 0L, sizeof(sec_props));
sec_props.min_ssf = 0;
sec_props.max_ssf = 1; /* don't allow real SASL
sec_props.max_ssf = 0; /* don't allow real SASL
* security layer */
sec_props.security_flags = name_mask(sasl_opts_name, lmtp_sasl_sec_mask,
sasl_opts_val);

View File

@@ -943,19 +943,31 @@ static void super(const char **queues, int action)
argv_free(hash_queue_names);
}
/* fatal_exit - print warning if queue fix is incomplete */
static void fatal_exit(void)
{
if (inode_mismatch > 0 || inode_fixed > 0 || position_mismatch > 0)
msg_fatal("OPERATION INCOMPLETE -- RERUN COMMAND TO FIX THE QUEUE FIRST");
}
/* interrupted - signal handler */
static void interrupted(int unused_sig)
static void interrupted(int sig)
{
fatal_exit();
/*
* This commands requires root privileges. We therefore do not worry
* about hostile signals, and report problems via msg_warn().
*/
if (signal(SIGHUP, SIG_IGN) != SIG_IGN) {
(void) signal(SIGINT, SIG_IGN);
(void) signal(SIGQUIT, SIG_IGN);
(void) signal(SIGTERM, SIG_IGN);
if (inode_mismatch > 0 || inode_fixed > 0 || position_mismatch > 0)
msg_warn("OPERATION INCOMPLETE -- RERUN COMMAND TO FIX THE QUEUE FIRST");
if (sig)
_exit(sig);
}
}
/* fatal_warning - print warning if queue fix is incomplete */
static void fatal_warning(void)
{
interrupted(0);
}
int main(int argc, char **argv)
@@ -1136,7 +1148,7 @@ int main(int argc, char **argv)
signal(SIGINT, interrupted);
signal(SIGQUIT, interrupted);
signal(SIGTERM, interrupted);
msg_cleanup(fatal_exit);
msg_cleanup(fatal_warning);
/*
* Sanity checks.

View File

@@ -568,8 +568,6 @@ int smtp_connect(SMTP_STATE *state)
(*(cpp) && (cpp) >= (sites)->argv + (non_fallback_sites))
for (cpp = sites->argv; SMTP_RCPT_LEFT(state) > 0 && (dest = *cpp) != 0; cpp++) {
if (i_am_mx && IS_FALLBACK_RELAY(cpp, sites, non_fallback_sites))
break;
state->final_server = (cpp[1] == 0);
/*
@@ -685,7 +683,8 @@ int smtp_connect(SMTP_STATE *state)
if ((state->session = session) != 0) {
if (++sess_count == var_smtp_mxsess_limit)
next = 0;
state->final_server = (cpp[1] == 0 && next == 0);
state->final_server = (next == 0 && (cpp[1] == 0 || (i_am_mx
&& IS_FALLBACK_RELAY(cpp + 1, sites, non_fallback_sites))));
if (addr->pref == domain_best_pref)
session->features |= SMTP_FEATURE_BEST_MX;
if ((session->features & SMTP_FEATURE_FROM_CACHE) != 0
@@ -706,8 +705,17 @@ int smtp_connect(SMTP_STATE *state)
*
* Pay attention to what could be configuration problems, and pretend that
* these are recoverable rather than bouncing the mail.
*
* In case of a "no error" indication we make up an excuse; this can happen
* when the fall-back relay was already tried via a cached connection, so
* that the address list scrubber left behind an empty list.
*/
if (SMTP_RCPT_LEFT(state) > 0) {
if (smtp_errno == SMTP_ERR_NONE) {
dsn_vstring_update(why, "4.3.0",
"server unavailable or unable to receive mail");
smtp_errno = SMTP_ERR_RETRY;
}
switch (smtp_errno) {
default: