diff --git a/postfix/HISTORY b/postfix/HISTORY index 7a23da1d9..4a5479cef 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -10567,6 +10567,13 @@ Apologies for any names omitted. tls/tls_mgr.h, tls/tls_mgr.c, tls/tls_client.c, tls/tls.h, smtp/smtp_proto.c. +20050330 + + Bugfix: in some compilation environments the SMTP and LMTP + clients could ignore enhanced status codes in server replies. + Bug introduced 20050329 while polishing working code. Files: + smtp/smtp_chat.c, lmtp/lmtp_chat.c. + Open problems: Med: disable header address rewriting after XCLIENT? diff --git a/postfix/README_FILES/ADDRESS_VERIFICATION_README b/postfix/README_FILES/ADDRESS_VERIFICATION_README index 9f96c817a..1b86e0d56 100644 --- a/postfix/README_FILES/ADDRESS_VERIFICATION_README +++ b/postfix/README_FILES/ADDRESS_VERIFICATION_README @@ -159,8 +159,9 @@ domains that often appear in forged email. bigfoot.com reject_unverified_sender ... etcetera ... -A list of frequently forged MAIL FROM domains can be found at http:// -www.monkeys.com/anti-spam/filtering/sender-domain-validate.in. +At some point in cyberspace/time, a list of frequently forged MAIL FROM domains +could be found at http://www.monkeys.com/anti-spam/filtering/sender-domain- +validate.in. NOTE: One of the first things you might want to do is to turn on sender address verification for all your own domains. diff --git a/postfix/conf/virtual b/postfix/conf/virtual index 668332f9e..6aa789bc9 100644 --- a/postfix/conf/virtual +++ b/postfix/conf/virtual @@ -1,4 +1,4 @@ -# VIRTUAL(5) VIRTUAL(5) +# VIRTUAL(5) VIRTUAL(5) # # NAME # virtual - Postfix virtual alias table format @@ -11,10 +11,12 @@ # postmap -q - /etc/postfix/virtual -

A list of frequently forged MAIL FROM domains can be found at -http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in. -

+

At some point in cyberspace/time, a list of frequently forged +MAIL FROM domains could be found at +http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in.

NOTE: One of the first things you might want to do is to turn on sender address verification for all your own domains.

diff --git a/postfix/html/virtual.5.html b/postfix/html/virtual.5.html index a4f0c1d87..51d3b7e9f 100644 --- a/postfix/html/virtual.5.html +++ b/postfix/html/virtual.5.html @@ -17,10 +17,12 @@ VIRTUAL(5) VIRTUAL(5) postmap -q - /etc/postfix/virtual <inputfile DESCRIPTION - The optional virtual(5) alias table specifies address - aliasing for arbitrary local or non-local recipient - addresses. Virtual aliasing is recursive, and is done by - the Postfix cleanup(8) daemon. + The optional virtual(5) alias table rewrites recipient + addresses for all local, virtual and remote mail destina- + tions. This is unlike the aliases(5) table which is used + only for local(8) delivery. Virtual aliasing is recur- + sive, and is implemented by the Postfix cleanup(8) daemon + before mail is queued. The main applications of virtual aliasing are: diff --git a/postfix/man/man5/virtual.5 b/postfix/man/man5/virtual.5 index c2851b8b2..9250663fc 100644 --- a/postfix/man/man5/virtual.5 +++ b/postfix/man/man5/virtual.5 @@ -16,9 +16,12 @@ Postfix virtual alias table format .SH DESCRIPTION .ad .fi -The optional \fBvirtual\fR(5) alias table specifies address aliasing -for arbitrary local or non-local recipient addresses. Virtual aliasing -is recursive, and is done by the Postfix \fBcleanup\fR(8) daemon. +The optional \fBvirtual\fR(5) alias table rewrites recipient +addresses for all local, virtual and remote mail destinations. +This is unlike the \fBaliases\fR(5) table which is used +only for \fBlocal\fR(8) delivery. Virtual aliasing is +recursive, and is implemented by the Postfix \fBcleanup\fR(8) +daemon before mail is queued. The main applications of virtual aliasing are: .IP \(bu diff --git a/postfix/proto/ADDRESS_VERIFICATION_README.html b/postfix/proto/ADDRESS_VERIFICATION_README.html index 9bc1e415c..091c4e562 100644 --- a/postfix/proto/ADDRESS_VERIFICATION_README.html +++ b/postfix/proto/ADDRESS_VERIFICATION_README.html @@ -274,9 +274,9 @@ specific domains that often appear in forged email.

-

A list of frequently forged MAIL FROM domains can be found at -http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in. -

+

At some point in cyberspace/time, a list of frequently forged +MAIL FROM domains could be found at +http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in.

NOTE: One of the first things you might want to do is to turn on sender address verification for all your own domains.

diff --git a/postfix/proto/virtual b/postfix/proto/virtual index cf28b83d4..8a2a0b1f2 100644 --- a/postfix/proto/virtual +++ b/postfix/proto/virtual @@ -10,9 +10,12 @@ # # \fBpostmap -q - /etc/postfix/virtual <\fIinputfile\fR # DESCRIPTION -# The optional \fBvirtual\fR(5) alias table specifies address aliasing -# for arbitrary local or non-local recipient addresses. Virtual aliasing -# is recursive, and is done by the Postfix \fBcleanup\fR(8) daemon. +# The optional \fBvirtual\fR(5) alias table rewrites recipient +# addresses for all local, virtual and remote mail destinations. +# This is unlike the \fBaliases\fR(5) table which is used +# only for \fBlocal\fR(8) delivery. Virtual aliasing is +# recursive, and is implemented by the Postfix \fBcleanup\fR(8) +# daemon before mail is queued. # # The main applications of virtual aliasing are: # .IP \(bu diff --git a/postfix/src/cleanup/cleanup_api.c b/postfix/src/cleanup/cleanup_api.c index 15fbdc577..cac4ce6a8 100644 --- a/postfix/src/cleanup/cleanup_api.c +++ b/postfix/src/cleanup/cleanup_api.c @@ -193,7 +193,7 @@ int cleanup_flush(CLEANUP_STATE *state) int status; char *encoding; CLEANUP_STAT_DETAIL *detail = 0; -DSN_SPLIT dp; + DSN_SPLIT dp; /* * Raise these errors only if we examined all queue file records. diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 578989cf6..de38eed80 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ -#define MAIL_RELEASE_DATE "20050329" +#define MAIL_RELEASE_DATE "20050330" #define MAIL_VERSION_NUMBER "2.3" #define VAR_MAIL_VERSION "mail_version" diff --git a/postfix/src/lmtp/lmtp_chat.c b/postfix/src/lmtp/lmtp_chat.c index 0a0c7e0fa..f42790691 100644 --- a/postfix/src/lmtp/lmtp_chat.c +++ b/postfix/src/lmtp/lmtp_chat.c @@ -238,7 +238,7 @@ LMTP_RESP *lmtp_chat_resp(LMTP_STATE *state) rdata.code = atoi(STR(state->buffer)); for (cp = STR(state->buffer) + 4; *cp == ' '; cp++) /* void */ ; - if ((len = dsn_valid(cp)) > 0 && len < sizeof(DSN_SIZE)) { + if ((len = dsn_valid(cp)) > 0) { DSN_UPDATE(rdata.dsn, cp, len); } else if (strchr("245", STR(state->buffer)[0]) != 0) { DSN_UPDATE(rdata.dsn, "0.0.0", sizeof("0.0.0") - 1); diff --git a/postfix/src/smtp/smtp_addr.c b/postfix/src/smtp/smtp_addr.c index 7609800af..618dfab9c 100644 --- a/postfix/src/smtp/smtp_addr.c +++ b/postfix/src/smtp/smtp_addr.c @@ -224,7 +224,8 @@ static DNS_RR *smtp_addr_one(DNS_RR *addr_list, char *host, unsigned pref, freeaddrinfo(res0); if (found == 0) { dsn_vstring_update(why, "5.4.4", "%s: host not found", host); - smtp_errno = SMTP_ERR_FAIL; + if (smtp_errno != SMTP_ERR_RETRY) + smtp_errno = SMTP_ERR_FAIL; } return (addr_list); } diff --git a/postfix/src/smtp/smtp_chat.c b/postfix/src/smtp/smtp_chat.c index ff9f219ad..889ce0fe1 100644 --- a/postfix/src/smtp/smtp_chat.c +++ b/postfix/src/smtp/smtp_chat.c @@ -261,7 +261,7 @@ SMTP_RESP *smtp_chat_resp(SMTP_SESSION *session) rdata.code = atoi(STR(session->buffer)); for (cp = STR(session->buffer) + 4; *cp == ' '; cp++) /* void */ ; - if ((len = dsn_valid(cp)) > 0 && len < sizeof(DSN_SIZE)) { + if ((len = dsn_valid(cp)) > 0) { DSN_UPDATE(rdata.dsn, cp, len); } else if (strchr("245", STR(session->buffer)[0]) != 0) { DSN_UPDATE(rdata.dsn, "0.0.0", sizeof("0.0.0") - 1);