diff --git a/postfix/HISTORY b/postfix/HISTORY index 8182a3e17..5b48437ed 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -5138,6 +5138,12 @@ Apologies for any names omitted. RFC 2821 recommendation: if VRFY is enabled, list it in the EHLO response. + RFC 2821 recommendation: SMTP clients should use EHLO. + The default setting of smtp_always_send_ehlo has changed + from 0 (send EHLO if server greets with ESMTP) to 1 (always + greet with EHLO). In all cases, Postfix falls back to HELO + if the remote host does not support EHLO. + 20010507 Bugfix: with soft_bounce=yes, the SMTP server would log diff --git a/postfix/conf/sample-ldap.cf b/postfix/conf/sample-ldap.cf index 4f8a504d6..c503df0bc 100644 --- a/postfix/conf/sample-ldap.cf +++ b/postfix/conf/sample-ldap.cf @@ -5,8 +5,8 @@ # parameters that control LDAP lookups. Source code for LDAP # lookup is available separately from http://www.postfix.org/ -# The ldap_lookup_timeout parameter specifies the timeout for LDAP -# database lookups. +# The ldap_timeout parameter specifies the timeout for LDAP database +# lookups. # #ldap_timeout = 10 diff --git a/postfix/conf/sample-smtpd.cf b/postfix/conf/sample-smtpd.cf index ec7714d60..c0ff345f4 100644 --- a/postfix/conf/sample-smtpd.cf +++ b/postfix/conf/sample-smtpd.cf @@ -333,7 +333,7 @@ allow_untrusted_routing = no # network address, and reject service if it is listed below any of # the following domains. # -#maps_rbl_domains = blackholes.mail-abuse.org dialups.mail-abuse.org +#maps_rbl_domains = blackholes.mail-abuse.org relays.mail-abuse.org maps_rbl_domains = blackholes.mail-abuse.org # The relay_domains parameter restricts what client hostname domains diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 1d8829a49..9d866ed9b 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -15,7 +15,7 @@ * Version of this program. */ #define VAR_MAIL_VERSION "mail_version" -#define DEF_MAIL_VERSION "Snapshot-20010520" +#define DEF_MAIL_VERSION "Snapshot-20010521" extern char *var_mail_version; /* LICENSE diff --git a/postfix/src/postsuper/postsuper.c b/postfix/src/postsuper/postsuper.c index d7c071691..daed36206 100644 --- a/postfix/src/postsuper/postsuper.c +++ b/postfix/src/postsuper/postsuper.c @@ -45,7 +45,7 @@ /* as the message that \fBpostsuper\fR was supposed to delete. /* The probability for reusing a deleted queue ID is about 1 in 2**15 /* (the number of different microsecond values that the system clock -/* can distinguish). +/* can distinguish within a second). /* .IP \(bu /* \fBpostsuper\fR deletes the new message file, instead of the /* old file that should have been deleted. @@ -157,6 +157,22 @@ static struct queue_info queue_info[] = { 0, }; +/* postunlink - remove file with prejudice */ + +static int postunlink(const char *path) +{ + int ret; + + if ((ret = unlink(path)) == 0) { + msg_info("removed file %s", path); + } else if (errno != ENOENT) { + msg_warn("remove file %s: %m", path); + } else if (msg_verbose) { + msg_info("remove file %s: %m", path); + } + return (ret); +} + /* delete_one - delete one message instance and all its associated files */ static int delete_one(const char *queue_id) @@ -189,22 +205,14 @@ static int delete_one(const char *queue_id) * in deleting the wrong files. */ for (msg_qpp = msg_queue_names; *msg_qpp != 0; msg_qpp++) { - if (!mail_open_ok(*msg_qpp, queue_id, &st, &msg_path)) + if (mail_open_ok(*msg_qpp, queue_id, &st, &msg_path) != MAIL_OPEN_YES) continue; for (log_qpp = log_queue_names; *log_qpp != 0; log_qpp++) - (void) mail_queue_path(log_path_buf, *log_qpp, queue_id); - if (unlink(STR(log_path_buf)) < 0 && errno != ENOENT) - msg_warn("remove file %s: %m", STR(log_path_buf)); - if (unlink(msg_path) == 0) { + postunlink(mail_queue_path(log_path_buf, *log_qpp, queue_id)); + if (postunlink(msg_path) == 0) { found = 1; - msg_info("removed file %s", msg_path); break; - } - if (errno != ENOENT) { - msg_warn("remove file %s: %m", msg_path); - } else if (msg_verbose) { - msg_info("remove file %s: %m", msg_path); - } + } /* else: lost a race */ } vstring_free(log_path_buf); return (found); diff --git a/postfix/src/smtp/smtp_proto.c b/postfix/src/smtp/smtp_proto.c index 230c7a07a..b40f0dea6 100644 --- a/postfix/src/smtp/smtp_proto.c +++ b/postfix/src/smtp/smtp_proto.c @@ -219,7 +219,7 @@ int smtp_helo(SMTP_STATE *state) */ lines = resp->str; while ((words = mystrtok(&lines, "\n")) != 0) { - if (mystrtok(&words, "- =") && (word = mystrtok(&words, " \t")) != 0) { + if (mystrtok(&words, "- ") && (word = mystrtok(&words, " \t=")) != 0) { if (strcasecmp(word, "8BITMIME") == 0) state->features |= SMTP_FEATURE_8BITMIME; else if (strcasecmp(word, "PIPELINING") == 0) diff --git a/postfix/src/util/dir_forest.c b/postfix/src/util/dir_forest.c index 289cd122e..929f937c7 100644 --- a/postfix/src/util/dir_forest.c +++ b/postfix/src/util/dir_forest.c @@ -104,7 +104,7 @@ char *dir_forest(VSTRING *buf, const char *path, int depth) } VSTRING_TERMINATE(buf); - if (msg_verbose) + if (msg_verbose > 1) msg_info("%s: %s -> %s", myname, path, vstring_str(buf)); return (vstring_str(buf)); }