From 2bc17f05a705a7707becb98cae94262a28357645 Mon Sep 17 00:00:00 2001
From: Wietse Venema
Date: Wed, 30 Mar 2005 00:00:00 -0500
Subject: [PATCH] postfix-2.3-20050330
---
postfix/HISTORY | 7 +++++
.../README_FILES/ADDRESS_VERIFICATION_README | 5 ++--
postfix/conf/virtual | 28 ++++++++++---------
postfix/html/ADDRESS_VERIFICATION_README.html | 6 ++--
postfix/html/virtual.5.html | 10 ++++---
postfix/man/man5/virtual.5 | 9 ++++--
.../proto/ADDRESS_VERIFICATION_README.html | 6 ++--
postfix/proto/virtual | 9 ++++--
postfix/src/cleanup/cleanup_api.c | 2 +-
postfix/src/global/mail_version.h | 2 +-
postfix/src/lmtp/lmtp_chat.c | 2 +-
postfix/src/smtp/smtp_addr.c | 3 +-
postfix/src/smtp/smtp_chat.c | 2 +-
13 files changed, 55 insertions(+), 36 deletions(-)
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);