[Mimedefang] MIMEDefang 2.57-BETA-1 is available
Steffen Kaiser
skmimedefang at smail.inf.fh-bonn-rhein-sieg.de
Wed Jun 14 10:21:30 EDT 2006
On Thu, 4 May 2006, David F. Skoll wrote:
> The reason I said the change is controversial is this: If you have a
> working filter that "accidentally" relies on state being preserved
> across filter_relay/filter_sender/filter_recipient/filter_begin, that
> filter will almost certainly STOP WORKING. Whereas with older
> versions of MIMEDefang, such filters would fail only occasionally,
> with the new version, they will fail almost all the time.
>
> In my opinion, this is a Good Thing, because it exposes buggy filters
> quickly. Nevertheless, do not upgrade to 2.57 unless you're quite sure
> your filter is correct.
Hmm, about the save-the-state topic:
Would it possible to think about to _save_ the state between all the
functions?
The man page itself tells what to do, however, when the SMTP dialogue is
rather straigth forward, I mean, when the client does not pause before
sending the next data, the probability is high, that the same slave is
still idle and can be passed to request to.
Normally one needs to save the state before finishing the filter_relay,
filter_sender, filter_recipient and restore it before processing it.
However, the Multiplexor could call a function to save / restore the data
itself, if it detects that the slave had been working on another
transmission in the meantime.
So, saving/restoring the data takes place only, when needed.
Mimedefang could use the mechanism itself, instead of parsing COMMANDS
each time, it gather the already seen stuff from the saved state and
captures only new COMMANDS.
Frankly, I have only very few information I would be interested to keep
from filter_recipient to filter_begin in my current filter, so I would
probably not benefit from this change much. However, would mimedfang
itself benefit from the pre-compiled information (say a Storable or
something like that)? When the saved status is unreadable (e.g. in case of
a crash), one would need to fall back to COMMANDS file and/or (for the
user information) tempfail the transmission.
I wonder if there will be any benefit at all. On a low-noise system, the
spurious save/restore wouldn't count much, I suppose; on a high-load
system with many connections at the same time, the slaves will probably
never handle the same transmission twice. So this technique would only
lower the load on mid-size servers that want to save data, because it had
to be computed twice (or more often).
Bye,
--
Steffen Kaiser
More information about the MIMEDefang
mailing list