Hello Aaron,

> The flow I sketched in my pipe.c rewrite first copies messages into a
> target user's INBOX, and then calls the function execute_filters(useridnr,
> msgidnr). The filters can then run on the header and/or body and toss the
> message around as needed, sending a rejection to the From address and
> deleting it, forwarding and possibly deleting it, or just moving it to 
> another mailbox.

  Just a thought - it seems there'd be a race-condition here where
a message has been inserted into INBOX, but before the filters get
executed to move it somewhere else, a user reads their mailbox (eg.
via imap).  I don't know if this would cause any actual errors (I
noticed in a recent imap trace posted that it queried for message
metadata matching both message_idnr and mailbox_idnr - if the latter
changed since having been looked up, it could), or just an
inconsistent view of the mailbox.  Considering some of those filters
will likely be for matching virus headers, etc., there's a chance
someone could end up opening such a message that should have been
deleted.

  Also, I've not looked at your code, so you may well have addressed
this....

Jesse


--
Jesse Norell
jesse (at) kci.net

Reply via email to