Subject: [sieve] Sieve include: interactions with MIME loops

From: Alexey Melnikov <[email-masked]>
Date: Sat, 21 Jan 2012 13:31:00 +0000

I am looking at the new text in draft-ietf-sieve-include-14.txt:

3.5.  Interaction with Other Extensions

         When "include" is used with the Editheader extension [RFC5293], 
any
         changes made to headers in a script MUST be propagated both to and
         from included scripts.  By way of example, if a script deletes one
         header and add another, then includes a second script, the 
included
         script MUST NOT see the removed header, and MUST see the added
         header.  Likewise, if the included script adds or removes a 
header,
         upon returning to the including script, subsequent actions MUST 
see
         the added headers and MUST NOT see the removed headers.

         When "include" is used with the MIME extension [RFC5703]
         "foreverypart" control structure, the included script MUST be
         presented with the current MIME part as though it were the entire
         message.  A script SHALL NOT have any special control over the
         control structure it was included from.  In the MIME example once
         again, a "stop" or "return" in an included script cannot directly
         terminate or continue flow of a "foreverypart" block.  In such a
         case, the included script should set a global variable that the
         including script can test.

This makes me think that it is not clear what effect the "reject" action 
would have if called in an included script within a "foreverypart" 
block. What does it mean to "reject" a particular body part of a message?

---

From: Aaron Stone <[email-masked]>
Date: Mon, 23 Jan 2012 16:25:44 -0800

On Sat, Jan 21, 2012 at 5:31 AM, Alexey Melnikov
<[email-masked]> wrote:
>        When "include" is used with the Editheader extension [RFC5293], any
>        header and add another, then includes a second script, the included
>        header.  Likewise, if the included script adds or removes a header,
>        upon returning to the including script, subsequent actions MUST see
> would have if called in an included script within a "foreverypart" block.
> What does it mean to "reject" a particular body part of a message?

I think it should immediately halt the script chain and reject the
entire message. I think stop does the same, except with the implicit
keep as the default.

Some text in an additional "interactions with other extensions"
subsection should state this.

Oh man, here goes another rev.

Thanks,
Aaron

---

From: [email-masked]
Date: Mon, 23 Jan 2012 17:00:17 -0800 (PST)

> entire message.

I don't agree; I think it should simply set reject as the script result
and continue. It's possible that some other action that's compatible with
reject (e.g., notify) would be done later. If you want it to halt you
can put stop after the reject.

> I think stop does the same, except with the implicit
> keep as the default.

Right, but stop should be the only thing that terminates execution.

> Oh man, here goes another rev.

Good thing they're cheap.

				Ned

---

From: Aaron Stone <[email-masked]>
Date: Tue, 31 Jan 2012 09:41:19 -0800

Posting this now.

---

From: Barry Leiba <[email-masked]>
Date: Tue, 31 Jan 2012 16:07:47 -0500

> Posting this now.

That looks like what we want (the -15 version).  Now just put out a
-16 to fix the "foreverpart" typo you just introduced, and we'll move
it along.

>> Good thing they're cheap.

Indeed.

Barry, shepherding

---

From: Aaron Stone <[email-masked]>
Date: Tue, 31 Jan 2012 13:59:02 -0800

Oof :(  Thanks for reviewing the changes!

---

From: [email-masked]
Date: Tue, 31 Jan 2012 19:54:05 -0800 (PST)

> Posting this now.

Looks good to me.

				Ned

> _______________________________________________
> sieve mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/sieve