> -----Original Message-----
> From: David MacQuigg [mailto:[email protected]]
> Sent: Tuesday, November 17, 2009 3:50 PM
> To: Murray S. Kucherawy
> Cc: Ned Freed; Tony Finch; [email protected]; IETF SMTP list
> Subject: Re: Abort data transfer?
> 
>  --> Buffer --> Filter#1 --> Filter#2 -->
> 
> I don't understand how running the filters in series requires that the
> entire message be in a buffer.  In the example above, filter #1 scans
> the headers and decides immediately to replace the body with something
> tiny.  It could abort the transfer, saving a ton of work not just by
> filter #2, but also in the original data transfer to the buffer.

MTA buffers the entire message, sends it to filter #1.  Filter #1 changes the 
body.  MTA sends the modified message to #2, including the new body.  This can 
only happen if they're in series, and I can't see how it would be possible if 
there's not a buffer involved.

Here's an even better example:  MTA buffers the entire message, sends it to 
filter #1.  Filter #1 orders the message to be rejected (or discarded).  Filter 
#2 is told "nevermind", and never has to go through the processing of the body. 
 For a very large message, this can be a big performance win, and again can 
only happen if they're in series.

Reply via email to