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.
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);