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:
committed by
Viktor Dukhovni
parent
1b3190de2a
commit
bca5f7d047
@@ -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?
|
||||||
|
@@ -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"
|
||||||
|
@@ -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);
|
||||||
|
@@ -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.
|
||||||
|
@@ -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:
|
||||||
|
Reference in New Issue
Block a user