ietf-mta-filters
[Top] [All Lists]

Re: :binary in draft-degener-sieve-body-02.txt

2004-06-23 13:20:34

What is the intended use of :binary?  If its for checking virus 
signatures, isn't this better suited to virustest?

The "virustest" predicate operates on a much higher level
of abstraction than :binary.  Obviously, if all you want to do
is test against viruses, and you have a working, well-maintained
virustest support from your ISP, you won't need :binary.

But apart from making up for insufficient or outdated virus-
and spam-shielding, :binary also has value as a catch-all tool
that works even in the presence of bad or unkown charsets or
badly used or specified MIME types.

For example, it can look into a WAV file and distinguish
WAV-encoded GSM from WAV-encoded PCM, and feed to a telephony
gateway only those formats the gateway is known to be able
to decode.  It can read version numbers of software formats,
or become an ad-hoc way of looking into "wrapper" formats.

The reason I ask is 
that I've spent the last few days adding body support to Cyrus Sieve
and implementing :binary as its currently documented is non-trivial and 
potentially expensive in both memory and CPU (especially if coupled with 
:regex).

I've implemented :binary, too, and it didn't seem like a big
overhead compared to, say, a charset conversion via iconv that
the other options ask you to do to arrive at UTF-8.  Do you
remember what specifically got in your way?

So, is :binary really necessary, and if so, can it be moved to a 
separate extension (e.g. 'binary' or 'body-binary') so that it isn't a 
requirement for implementing text-based body tests?

Sure, we can do that.  This is just a draft.  But I'd like to
gather a little more experience with the implementations before 
aking a decision; maybe nobody ever uses it (I mean, it's not
like the format really comes naturally to users...), and we can
just drop it entirely.  Or maybe it'll be so overwhelmingly 
useful that farming it out doesn't make sense after all.

Jutta <jutta(_at_)sendmail(_dot_)com>


<Prev in Thread] Current Thread [Next in Thread>