From: Wietse Venema Date: Sat, 5 Nov 2011 05:00:00 +0000 (-0500) Subject: postfix-2.8.7 X-Git-Tag: v2.8.7^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa39a469ca240e04f8826e273997ddcc40b4c331;p=thirdparty%2Fpostfix.git postfix-2.8.7 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index f87764e8b..42ac70fc8 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -16681,3 +16681,17 @@ Apologies for any names omitted. checks to unknown message subtypes such as message/global*. File: global/mime_state.c. +20111025 + + Workaround: postscreen sent non-compliant SMTP responses + (220- followed by 421) when it could not give a connection + to a real smtpd process, causing some remote SMTP clients + to bounce mail. The workaround is to hang up without sending + the 421 reply (which is harmless); the complete fix involves + too much change for a stable release. Problem reported by + Ralf Hildebrandt. File: postscreen/postscreen_send.c. + +20111102 + + Portability: OpenBSD 5.x is supported. Files: makedefs, + util/sys_defs.h. diff --git a/postfix/makedefs b/postfix/makedefs index 91f0b0373..606520a95 100644 --- a/postfix/makedefs +++ b/postfix/makedefs @@ -152,6 +152,8 @@ case "$SYSTEM.$RELEASE" in ;; OpenBSD.4*) SYSTYPE=OPENBSD4 ;; + OpenBSD.5*) SYSTYPE=OPENBSD5 + ;; ekkoBSD.1*) SYSTYPE=EKKOBSD1 ;; NetBSD.1*) SYSTYPE=NETBSD1 diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 8a7d9d77b..921b117d5 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,8 +20,8 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20111024" -#define MAIL_VERSION_NUMBER "2.8.6" +#define MAIL_RELEASE_DATE "20111105" +#define MAIL_VERSION_NUMBER "2.8.7" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff --git a/postfix/src/postscreen/postscreen_send.c b/postfix/src/postscreen/postscreen_send.c index f68a255d7..29bc53ebd 100644 --- a/postfix/src/postscreen/postscreen_send.c +++ b/postfix/src/postscreen/postscreen_send.c @@ -187,7 +187,9 @@ void psc_send_socket(PSC_STATE *state) PASS_CONNECT(psc_smtpd_service_name, NON_BLOCKING, PSC_SEND_SOCK_CONNECT_TIMEOUT)) < 0) { msg_warn("cannot connect to service %s: %m", psc_smtpd_service_name); - PSC_SEND_REPLY(state, "421 4.3.2 All server ports are busy\r\n"); + /* Best effort: after sending 220-, hang up without sending 421. */ + if ((state->flags & PSC_STATE_FLAG_PREGR_TODO) == 0) + PSC_SEND_REPLY(state, "421 4.3.2 All server ports are busy\r\n"); psc_free_session_state(state); return; } @@ -196,7 +198,9 @@ void psc_send_socket(PSC_STATE *state) vstream_fileno(state->smtp_client_stream)) < 0) { msg_warn("cannot pass connection to service %s: %m", psc_smtpd_service_name); - PSC_SEND_REPLY(state, "421 4.3.2 No system resources\r\n"); + /* Best effort: after sending 220-, hang up without sending 421. */ + if ((state->flags & PSC_STATE_FLAG_PREGR_TODO) == 0) + PSC_SEND_REPLY(state, "421 4.3.2 No system resources\r\n"); psc_free_session_state(state); return; } else { diff --git a/postfix/src/util/sys_defs.h b/postfix/src/util/sys_defs.h index bbe370f2b..2f0acb944 100644 --- a/postfix/src/util/sys_defs.h +++ b/postfix/src/util/sys_defs.h @@ -28,6 +28,7 @@ || defined(FREEBSD8) \ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ || defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \ + || defined(OPENBSD5) \ || defined(NETBSD1) || defined(NETBSD2) || defined(NETBSD3) \ || defined(NETBSD4) \ || defined(EKKOBSD1)