2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-09-01 06:35:27 +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, the MIME processor. Files: global/mime_state.c,
cleanup/cleanup_message.c, smtp/smtp_proto.c. cleanup/cleanup_message.c, smtp/smtp_proto.c.
Cleanup: updated error messages about MIME processing Cleanup: updated error messages about MIME processing errors
errors in the SMTP client. These errors are no longer in the SMTP client. These errors are no longer specific to
specific to 8bit->7bit conversion; they can also happen 8bit->7bit conversion; they can also happen with generic
with generic address mapping. File: smtp/smtp_proto.c. address mapping. File: smtp/smtp_proto.c.
Safety: SASL 2.1.19 has a version lookup routine that we Safety: SASL 2.1.19 has a version lookup routine that we
can use to detect compile time / run time version mis-matches 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 eliminated a portability problem that was introduced when
"REJECT text" support was added. File: cleanup/cleanup.c. "REJECT text" support was added. File: cleanup/cleanup.c.
20040513 20050413
Portability: don't mix socket message send/receive calls Portability: don't mix socket message send/receive calls
with socket stream read/write calls. The fact that you can 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 Safety: don't call syslog from a user-triggered signal
handler. File: postdrop/postdrop.c. 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: Open problems:
Med: disable header address rewriting after XCLIENT? Med: disable header address rewriting after XCLIENT?

View File

@@ -20,7 +20,7 @@
* Patches change the patchlevel and the release date. Snapshots change the * Patches change the patchlevel and the release date. Snapshots change the
* release date only. * release date only.
*/ */
#define MAIL_RELEASE_DATE "20050418" #define MAIL_RELEASE_DATE "20050422"
#define MAIL_VERSION_NUMBER "2.3" #define MAIL_VERSION_NUMBER "2.3"
#define VAR_MAIL_VERSION "mail_version" #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)); memset(&sec_props, 0L, sizeof(sec_props));
sec_props.min_ssf = 0; 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 */ * security layer */
sec_props.security_flags = name_mask(sasl_opts_name, lmtp_sasl_sec_mask, sec_props.security_flags = name_mask(sasl_opts_name, lmtp_sasl_sec_mask,
sasl_opts_val); sasl_opts_val);

View File

@@ -943,19 +943,31 @@ static void super(const char **queues, int action)
argv_free(hash_queue_names); 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 */ /* 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) int main(int argc, char **argv)
@@ -1136,7 +1148,7 @@ int main(int argc, char **argv)
signal(SIGINT, interrupted); signal(SIGINT, interrupted);
signal(SIGQUIT, interrupted); signal(SIGQUIT, interrupted);
signal(SIGTERM, interrupted); signal(SIGTERM, interrupted);
msg_cleanup(fatal_exit); msg_cleanup(fatal_warning);
/* /*
* Sanity checks. * Sanity checks.

View File

@@ -568,8 +568,6 @@ int smtp_connect(SMTP_STATE *state)
(*(cpp) && (cpp) >= (sites)->argv + (non_fallback_sites)) (*(cpp) && (cpp) >= (sites)->argv + (non_fallback_sites))
for (cpp = sites->argv; SMTP_RCPT_LEFT(state) > 0 && (dest = *cpp) != 0; cpp++) { 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); state->final_server = (cpp[1] == 0);
/* /*
@@ -685,7 +683,8 @@ int smtp_connect(SMTP_STATE *state)
if ((state->session = session) != 0) { if ((state->session = session) != 0) {
if (++sess_count == var_smtp_mxsess_limit) if (++sess_count == var_smtp_mxsess_limit)
next = 0; 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) if (addr->pref == domain_best_pref)
session->features |= SMTP_FEATURE_BEST_MX; session->features |= SMTP_FEATURE_BEST_MX;
if ((session->features & SMTP_FEATURE_FROM_CACHE) != 0 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 * Pay attention to what could be configuration problems, and pretend that
* these are recoverable rather than bouncing the mail. * 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_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) { switch (smtp_errno) {
default: default: