Prereq: "2.8.6" diff -cr --new-file /var/tmp/postfix-2.8.6/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.8.6/src/global/mail_version.h Sun Oct 23 19:44:34 2011 --- ./src/global/mail_version.h Sat Nov 5 15:17:13 2011 *************** *** 20,27 **** * 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" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE --- 20,27 ---- * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ ! #define MAIL_RELEASE_DATE "20111105" ! #define MAIL_VERSION_NUMBER "2.8.7" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff -cr --new-file /var/tmp/postfix-2.8.6/HISTORY ./HISTORY *** /var/tmp/postfix-2.8.6/HISTORY Thu Oct 20 17:30:54 2011 --- ./HISTORY Sat Nov 5 15:16:53 2011 *************** *** 16681,16683 **** --- 16681,16697 ---- 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 -cr --new-file /var/tmp/postfix-2.8.6/makedefs ./makedefs *** /var/tmp/postfix-2.8.6/makedefs Wed Jun 15 18:36:37 2011 --- ./makedefs Wed Nov 2 19:46:22 2011 *************** *** 152,157 **** --- 152,159 ---- ;; OpenBSD.4*) SYSTYPE=OPENBSD4 ;; + OpenBSD.5*) SYSTYPE=OPENBSD5 + ;; ekkoBSD.1*) SYSTYPE=EKKOBSD1 ;; NetBSD.1*) SYSTYPE=NETBSD1 diff -cr --new-file /var/tmp/postfix-2.8.6/src/postscreen/postscreen_send.c ./src/postscreen/postscreen_send.c *** /var/tmp/postfix-2.8.6/src/postscreen/postscreen_send.c Wed Feb 16 08:40:32 2011 --- ./src/postscreen/postscreen_send.c Sat Nov 5 09:48:27 2011 *************** *** 187,193 **** 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"); psc_free_session_state(state); return; } --- 187,195 ---- 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); ! /* 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,202 **** 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"); psc_free_session_state(state); return; } else { --- 198,206 ---- vstream_fileno(state->smtp_client_stream)) < 0) { msg_warn("cannot pass connection to service %s: %m", psc_smtpd_service_name); ! /* 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 -cr --new-file /var/tmp/postfix-2.8.6/src/util/sys_defs.h ./src/util/sys_defs.h *** /var/tmp/postfix-2.8.6/src/util/sys_defs.h Wed Jun 15 18:36:37 2011 --- ./src/util/sys_defs.h Wed Nov 2 19:46:22 2011 *************** *** 28,33 **** --- 28,34 ---- || 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)