ietf-smtp
[Top] [All Lists]

RE: Abort data transfer?

2009-11-17 19:10:56

-----Original Message-----
From: David MacQuigg [mailto:macquigg(_at_)ece(_dot_)arizona(_dot_)edu]
Sent: Tuesday, November 17, 2009 3:50 PM
To: Murray S. Kucherawy
Cc: Ned Freed; Tony Finch; ned+ietf-smtp(_at_)mrochek(_dot_)com; 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.