Subject: [Fwd: Comments on draft-melnikov-sieve-external-lists-02.txt]

From: Alexey Melnikov <[email-masked]>
Date: Sun, 19 Jul 2009 19:40:09 +0100

This started as a discussion on white/black listing.

Subject: Comments on draft-melnikov-sieve-external-lists-02.txt
From: Alexey Melnikov <[email-masked]>
To: Ned Freed <[email-masked]>
Cc: [email-masked]
Date: Sun, 19 Jul 2009 19:38:47 +0100

Hi Ned,
I've changed the subject and moving my reply to the Sieve mailing list, 
where I think it belongs.

Ned Freed wrote:
 [...]

>> There is also a Sieve extension for making use of whitelists/blacklists
>> during mail delivery. See draft-melnikov-sieve-external-lists-02.txt.
>> It can work with CARDDAV, LDAP and other things.
>
> Interestingly, this extension in its current form is not compatible with
> at least one of the proposals that was made here. The issue is one I've
> raised before - the fact that :list is separate argument and not a 
> match type.
>
> Where there is clearly some utility in being able to say stuff along the
> lines of:
>
>    header :contains :list "subject" "tag:dirty-word-list"
>
> The problem is that in order for this to work the list has to be 
> enumerable.

This wasn't the intent. I was certainly aware of the need not to 
retrieve the whole membership list.
But you are saying that my syntax wouldn't work in this case.

> Not all lists are enumerable, and even some that are are so large even 
> though oyu can enumerate them in theory you can't afford to do so in 
> practice.
>
> One use case where this matters is when the list is a set of hashed 
> values. The
> way you find if something is "on the list" is to hash it and see if 
> that value
> appears. And even if the input string is short enough that you can 
> enumerate
> all the unique substrings, how about :matches and :regex? Good luck with
> those.
>
> Hashed lists have in fact been proposed in the present discussion as a 
> means of
> avoiding giving your address whitelist to the mail server. I happen 
> not to
> think this is a useful thing to do for a variety of reasons, mostly 
> having to
> do with address canonicalization (or lack thereof), but there are other
> use cases where hashed lists make more sense.
>
> So, although it reduces functionality, I believe :list should be a 
> match type
> and the underlying comparison type that's done should be a property of 
> the list
> itself.

Hmm. You are probably right, :list as a modifier is a bit of a hack.
How would the new match type work with tests other than 
header/address/envelope?