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.
;;
OpenBSD.4*) SYSTYPE=OPENBSD4
;;
+ OpenBSD.5*) SYSTYPE=OPENBSD5
+ ;;
ekkoBSD.1*) SYSTYPE=EKKOBSD1
;;
NetBSD.1*) SYSTYPE=NETBSD1
* 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
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;
}
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 {
|| 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)