Wietse Venema:
> Postfix 2.7-20091104-nonprod introduces a "speed adjust" feature
> that reduces the number of before-queue filter processes, without
> reducing the number of before-filter SMTP server processes.
>
> This addresses a concern of people in Europe who want to reject
> all bad mail with a before-queue filter, instead of having to use
> an after-queue filter and having to discard mail (which is illegal)
> or having to bounce mail (which violates good network citizenship).
>
> With "smtpd_proxy_options = speed_adjust", the SMTP server will
> receive the entire message before it connects to a content filter.
> For more information see the RELEASE_NOTES.
>
> This is released as a non-production release first, because I took
> the opportunity to clean up the existing before-queue filter code.
Attached is a patch that fixes a segfault due to an incomplete API
change. I'll upload a 20091105 non-production snapshot later today.
Wietse
diff --exclude=man --exclude=html --exclude=README_FILES --exclude=.indent.pro --exclude=Makefile.in -bcr /var/tmp/postfix-2.7-20091104-nonprod/src/smtpd/smtpd.c ./src/smtpd/smtpd.c
*** /var/tmp/postfix-2.7-20091104-nonprod/src/smtpd/smtpd.c Wed Nov 4 12:17:15 2009
--- ./src/smtpd/smtpd.c Thu Nov 5 10:37:51 2009
***************
*** 3068,3074 ****
} else if ((state->err & CLEANUP_STAT_CONT) != 0) {
state->error_mask |= MAIL_ERROR_POLICY;
detail = cleanup_stat_detail(CLEANUP_STAT_CONT);
! if (proxy->buffer) {
smtpd_chat_reply(state, "%s", STR(proxy->buffer));
} else if (why && LEN(why) > 0) {
/* Allow address-specific DSN status in header/body_checks. */
--- 3068,3074 ----
} else if ((state->err & CLEANUP_STAT_CONT) != 0) {
state->error_mask |= MAIL_ERROR_POLICY;
detail = cleanup_stat_detail(CLEANUP_STAT_CONT);
! if (proxy && proxy->buffer) {
smtpd_chat_reply(state, "%s", STR(proxy->buffer));
} else if (why && LEN(why) > 0) {
/* Allow address-specific DSN status in header/body_checks. */