Lloyd Zusman writes:

I'm experimenting with using two separate courierfilters at the same
time, courier-pythonfilter and Courier::Filter.

I know how to properly start them up, and all my messages are getting
processed by both.

I have the courier-pythonfilter set up to run first, and there are cases
where one of its filters decides to accept a message without further
processing.  The courier-pythonfilter code knows to not run any more of
its own filters, but then, the Courier::Filter still processes the
message.  In this case, I don't want this to occur.

I'm not sure if this is due to a problem in the way that my
courier-pythonfilter setup handles messages, or whether this is due to
some sort of flaw in Courier's courierfilter processing, itself.

What does the courier-pythonfilter have to do in order to tell the
second filter (Courier::Filer) to not touch the message any more,
assuming that courier-pythonfilter decides to either accept or reject
the message?

It's not possible. You're looking at this from a wrong viewpoint. It's not just that a given filter decides to accept or reject a message. A given filgter decides whether or not the message should be rejected. The semantic difference is subtle, but important.

Any filter may reject a message. If a filter does not reject a message it does not mean that the message is going to get accepted, because some other filter can always reject it.

This is why the order the filters run is irrelevant. All filters must give a green light, so it's not important which filter rejects it.



Attachment: pgp3nmdHNT26A.pgp
Description: PGP signature

Reply via email to