Received: from balder-227.proper.com (localhost [127.0.0.1])
 by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id k2S08gn1027202;
 Mon, 27 Mar 2006 17:08:42 -0700 (MST)
 (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost)
 by balder-227.proper.com (8.13.5/8.13.5/Submit) id k2S08gVC027201;
 Mon, 27 Mar 2006 17:08:42 -0700 (MST)
 (envelope-from owner-ietf-mta-filters@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to
 owner-ietf-mta-filters@mail.imc.org using -f
Received: from pat.uio.no (IDENT:7411@pat.uio.no [129.240.10.6])
 by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id k2S08e69027185
 for <ietf-mta-filters@imc.org>; Mon, 27 Mar 2006 17:08:41 -0700 (MST)
 (envelope-from kjetilho@ifi.uio.no)
Received: from mail-mx3.uio.no ([129.240.10.44])
 by pat.uio.no with esmtp (Exim 4.43)
 id 1FO1lE-0005eY-N6; Tue, 28 Mar 2006 02:08:36 +0200
Received: from mattugur.ifi.uio.no ([129.240.68.168])
 by mail-mx3.uio.no with esmtpsa (TLSv1:RC4-MD5:128) (Exim 4.43)
 id 1FO1l8-0007gf-Tz; Tue, 28 Mar 2006 02:08:30 +0200
Subject: Re: Sieve mime loop issues list
From: Kjetil Torgrim Homme <kjetilho@ifi.uio.no>
To: Nigel Swinson <Nigel.Swinson@rockliffe.com>
Cc: IETF MTA Filters List <ietf-mta-filters@imc.org>
In-Reply-To: <003401c64f44$657bf230$9b42c050@nigelhome>
References: <44231A5F.6050605@att.com> <01M0EFER83N6000078@mauve.mrochek.com>
 <003401c64f44$657bf230$9b42c050@nigelhome>
Content-Type: multipart/alternative; boundary="=-h7Ln7RcOAxUVddDOzd9t"
Date: Tue, 28 Mar 2006 02:08:29 +0200
Message-Id: <1143504509.10517.47.camel@mattugur.ifi.uio.no>
Mime-Version: 1.0
X-Mailer: Evolution 2.6.0 
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.214, required 12,
 autolearn=disabled, AWL -0.27, HTML_30_40 0.06, HTML_MESSAGE 0.00,
 UIO_MAIL_IS_INTERNAL -5.00)
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>



--=-h7Ln7RcOAxUVddDOzd9t
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Fri, 2006-03-24 at 13:10 +0000, Nigel Swinson wrote:

> > > #1: Need to deal with nested for_every_part loops. What will this do:
> > >     for_every_part { if (some test here) { for_every_part { ... } } }
> > 
> > My inclination is to ban them, or at least allow an implementation-defined
> > limit which can be set to 1. (Actually, such a limit is allowed implicitly for
> > almost anything in sieve by the base spec.)
> 
> 
> I would like the nested for_every_part to operate on the child nodes
> of the current context body part, not always operate on all the body
> parts of the root message.  This to me is the obvious behaviour.  If
> Ned wants to (understandably) ban them from his implementation, that's
> fine by me ;o) 


I don't see the point.  for_every_part will recurse through all headers,
so you'll do the test everywhere anyway.  if you like, you can set a
variable[1] and conditionally run "for_every_part" once more afterwards.
if "for_every_part" allowed you to restrict recursion (ie. a modifier
":onelevel"), I can possibly see the utility of nested calls.

[1] of course not guaranteed to be available, but assuming
implementation support, if the admin turned off variables, he's not
likely to support mime loops either.


> Although it isn't very explicit, I think I'm right in saying the
> default match type for mime is "is"?  So that means if :type matches
> against type/subtype, then I would be very confused if I wrote :type
> "text" and it didn't match against text/plain.



I'd think :type "text" was a syntax error or at best a leftover from RFC
1049.  I'd expect the "text/*" syntax I see for MIME types everywhere
else, but of course ":is" must (probably MUST, but I didn't check) be
the default match type for consistency with the rest of Sieve.


> I suggest:
> - :type to match against type, 
> - :subtype to match against subtype
> - :contenttype to match against type/subtype


my suggestion:

      * :type to match against full "media type/subtype"
      * :mediatype to match against just "media type"
      * :subtype to match against just "subtype"


although I _really_ think the latter two are redundant.
-- 
Kjetil T.


--=-h7Ln7RcOAxUVddDOzd9t
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.10.0">
</HEAD>
<BODY>
On Fri, 2006-03-24 at 13:10 +0000, Nigel Swinson wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">&gt; &gt; #1: Need to deal with nested for_every_part loops. What will this do:</FONT>
<FONT COLOR="#000000">&gt; &gt;     for_every_part { if (some test here) { for_every_part { ... } } }</FONT>
<FONT COLOR="#000000">&gt; </FONT>
<FONT COLOR="#000000">&gt; My inclination is to ban them, or at least allow an implementation-defined</FONT>
<FONT COLOR="#000000">&gt; limit which can be set to 1. (Actually, such a limit is allowed implicitly for</FONT>
<FONT COLOR="#000000">&gt; almost anything in sieve by the base spec.)</FONT>

</PRE>
    <FONT COLOR="#000000">I would like the nested for_every_part to operate on the child nodes of the current context body part, not always operate on all the body parts of the root message.  This to me is the obvious behaviour.  If Ned wants to (understandably) ban them from his implementation, that's fine by me ;o) </FONT><BR>
</BLOCKQUOTE>
<BR>
I don't see the point.&nbsp;<TT> for_every_part</TT> will recurse through all headers, so you'll do the test everywhere anyway.&nbsp; if you like, you can set a variable[1] and conditionally run &quot;<TT>for_every_part</TT>&quot; once more afterwards.&nbsp; if &quot;<TT>for_every_part</TT>&quot; allowed you to restrict recursion (ie. a modifier &quot;<TT>:onelevel</TT>&quot;), I can possibly see the utility of nested calls.<BR>
<BR>
[1] of course not guaranteed to be available, but assuming implementation support, if the admin turned off variables, he's not likely to support mime loops either.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <FONT COLOR="#000000">Although it isn't very explicit, I think I'm right in saying the default match type for mime is &quot;is&quot;?  So that means if :type matches against type/subtype, then I would be very confused if I wrote :type &quot;text&quot; and it didn't match against text/plain.</FONT>
</BLOCKQUOTE>
<PRE>

</PRE>
I'd think <TT>:type &quot;text&quot;</TT> was a syntax error or at best a leftover from RFC 1049.&nbsp; I'd expect the &quot;<TT>text/*</TT>&quot; syntax I see for MIME types everywhere else, but of course &quot;<TT>:is</TT>&quot; must (probably MUST, but I didn't check) be the default match type for consistency with the rest of Sieve.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">I suggest:</FONT>
<FONT COLOR="#000000">- :type to match against type, </FONT>
<FONT COLOR="#000000">- :subtype to match against subtype</FONT>
<FONT COLOR="#000000">- :contenttype to match against type/subtype</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
my suggestion:
<>
    <LI><TT>:type</TT> to match against full &quot;<I>media type/subtype</I>&quot;
    <LI><TT>:mediatype</TT> to match against just &quot;<I>media type</I>&quot;
    <LI><TT>:subtype</TT> to match against just &quot;<I>subtype</I>&quot;
</UL>
<BR>
although I _<B>really</B>_ think the latter two are redundant.<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
-- 
Kjetil T.

</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

--=-h7Ln7RcOAxUVddDOzd9t--

