Solar Designer:
> On Wed, Nov 16, 2011 at 10:39:00AM -0600, /dev/rob0 wrote:
> > On Wednesday 16 November 2011 10:06:36 Solar Designer wrote:
> > > I admit I'm not familiar with the code and I haven't tried to
> > > implement ACCEPT yet, but aren't DISCARD and REJECT also
> > > whole-message actions? Is ACCEPT somehow very different?
> > 
> > Yes. What do you think this ACCEPT action would do, unconditionally 
> > permit the mail regardless of other reject actions elsewhere?
> 
> No, it would merely bypass checks of further input lines against the
> same table.

You mean:

    header_checks = xx:xx, yy:yy, zz:zz

There are several problems with this idea. 

Some background first. Many Postfix table lookups are handled by
three layers of code:

1) Table-driven mechanisms (header_checks, virtual_alias_maps,
transport_maps). This layer knows what ACCEPT means in header_checks,
but it has no information about the table that provided the result.

2) Drivers for multi-table searches. This driver has no clue about
header_checks or transport_maps, it has no clue what the lookup
result means, and it does not record any information about the table
that provided a match, because it has never needed to worry about
such things.

3) Table lookup mechanisms (hash, regexp, pcre, ldap, tcp). These
have no clue about header_checks or transport_maps, and they have
no clue what the lookup result means.

> In other words, it would be similar to DUNNO, with the difference being
> that further input lines are not inspected.

So the second header_checks table can ACCEPT the message, but the
first header_checks table can still REJECT it upon a later input.
I expect usability problems with this approach.

        Wietse

Reply via email to