file to patch the postfix sources (version > 2.5). Created and added version 1.0.0 user tarball. git-svn-id: https://svn.microneil.com/svn/PKG-SNF-Milter-NIX/trunk@29 1fbf5b0a-5ce9-48cb-b39d-5e57bc359dc0master
@@ -1,3 +1,12 @@ | |||
2009-07-11 Alban Deniz <adeniz@skidmark.localdomain> | |||
* Makefile.am (EXTRA_DIST): Added postfix-multi-message.patch. | |||
* INSTALL: Updated with workaround for the postfix multi-message | |||
bug ("unexpected filter response" when quarantining messages and | |||
when there is more than one message sent over one SMTP | |||
connection). | |||
2009-06-30 Alban Deniz <adeniz@skidmark.localdomain> | |||
* Scripts/snf-milter.openbsd: Removed "$" characters from |
@@ -456,6 +456,41 @@ configured to do what you want. | |||
Integration with postfix | |||
------------------------ | |||
********************************************************************** | |||
NOTE--postfix version 2.6.2 and earlier has a bug that causes problems | |||
under the following circumstances: | |||
1) More than one message is received by postfix in one SMTP | |||
connection. | |||
2) One or more of the messages is quarantined. | |||
When this happens, postfix erroneously reports an "unexpected filter | |||
response SMFIR_ADDHEADER after event SMFIC_MAIL" in the mail log, and | |||
then sends a "Service unavailable - try again later" response to the | |||
next MAIL command. | |||
This bug can be fixed by patching the sources for posfix version 2.5 | |||
or later. The procedure is: | |||
1) Unpack the postfix sources. | |||
2) Change to src directory in the postfix distribution. | |||
3) Apply the patch: | |||
patch -p0 < patchFile | |||
where patchFile is the file postfix-multi-message.patch in this | |||
directory. | |||
4) Build and install postfix as usual. | |||
********************************************************************** | |||
To integrate SNFMilter with postfix: | |||
1) Edit the postfix configuration file 'main.cf': | |||
a) Specify the communication between SNFMilter and postfix: |
@@ -32,6 +32,7 @@ EXTRA_DIST = \ | |||
$(doc_DATA) \ | |||
@PACKAGE_NAME@.spec.in \ | |||
Makefile.am \ | |||
configure.ac | |||
configure.ac \ | |||
postfix-multi-message.patch | |||
DISTCHECK_CONFIGURE_FLAGS=--enable-os-type=OpenBSD |
@@ -0,0 +1,22 @@ | |||
--- milter/milter8.c 2009-07-11 07:16:48.000000000 -0400 | |||
+++ milter_new/milter8.c 2009-07-11 07:10:06.000000000 -0400 | |||
@@ -1292,7 +1292,8 @@ | |||
/* | |||
* Decision: quarantine. In Sendmail 8.13 this does not imply a | |||
* transition in the receiver state (reply, reject, tempfail, | |||
- * accept, discard). | |||
+ * accept, discard). We should not transition, either, otherwise | |||
+ * we get out of sync with multi-message deliveries. | |||
*/ | |||
case SMFIR_QUARANTINE: | |||
/* XXX What to do with the "reason" text? */ | |||
@@ -1300,7 +1301,8 @@ | |||
MILTER8_DATA_BUFFER, milter->buf, | |||
MILTER8_DATA_END) != 0) | |||
MILTER8_EVENT_BREAK(milter->def_reply); | |||
- MILTER8_EVENT_BREAK("H"); | |||
+ milter8_def_reply(milter, "H"); | |||
+ continue; | |||
/* | |||
* Decision: skip further events of this type. |