Re: [sieve] I-D Action: draft-ietf-sieve-include-11.txt

Aaron Stone <aaron@serendipity.cx> Tue, 27 September 2011 19:59 UTC

Return-Path: <aaron@serendipity.cx>
X-Original-To: sieve@ietfa.amsl.com
Delivered-To: sieve@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A172021F8ED3 for <sieve@ietfa.amsl.com>; Tue, 27 Sep 2011 12:59:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.643
X-Spam-Level:
X-Spam-Status: No, score=-101.643 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pflNDREPsfkK for <sieve@ietfa.amsl.com>; Tue, 27 Sep 2011 12:59:45 -0700 (PDT)
Received: from slice.serendipity.cx (slice.serendipity.cx [67.23.2.90]) by ietfa.amsl.com (Postfix) with ESMTP id 0A42C21F8ED2 for <sieve@ietf.org>; Tue, 27 Sep 2011 12:59:45 -0700 (PDT)
Received: from mail-vx0-f172.google.com (mail-vx0-f172.google.com [209.85.220.172]) by slice.serendipity.cx (Postfix) with ESMTPSA id 6ADF8110074 for <sieve@ietf.org>; Tue, 27 Sep 2011 13:02:00 -0700 (PDT)
Received: by vcbfo11 with SMTP id fo11so5723023vcb.31 for <sieve@ietf.org>; Tue, 27 Sep 2011 13:02:26 -0700 (PDT)
Received: by 10.52.174.110 with SMTP id br14mr7996947vdc.369.1317153746077; Tue, 27 Sep 2011 13:02:26 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.110.34 with HTTP; Tue, 27 Sep 2011 13:02:06 -0700 (PDT)
In-Reply-To: <4E7DDF5A.4060505@rename-it.nl>
References: <20110923192026.30531.70942.idtracker@ietfa.amsl.com> <4E7DDF5A.4060505@rename-it.nl>
From: Aaron Stone <aaron@serendipity.cx>
Date: Tue, 27 Sep 2011 13:02:06 -0700
Message-ID: <CAEdAYKV+Kuys7mFbEJ7eq9YC_tpe02xT=43j2RKjrNaa9tSP2Q@mail.gmail.com>
To: Stephan Bosch <stephan@rename-it.nl>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: Sieve mailing list <sieve@ietf.org>
Subject: Re: [sieve] I-D Action: draft-ietf-sieve-include-11.txt
X-BeenThere: sieve@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIEVE Working Group <sieve.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sieve>, <mailto:sieve-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sieve>
List-Post: <mailto:sieve@ietf.org>
List-Help: <mailto:sieve-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sieve>, <mailto:sieve-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Sep 2011 19:59:45 -0000

On Sat, Sep 24, 2011 at 6:47 AM, Stephan Bosch <stephan@rename-it.nl> wrote:
> Hi Aaron,
>
> Op 23-9-2011 21:20, internet-drafts@ietf.org schreef:
>>
>>  A New Internet-Draft is available from the on-line Internet-Drafts
>>  directories. This draft is a work item of the Sieve Mail Filtering
>>  Language Working Group of the IETF.
>>
>>  Title : Sieve Email Filtering: Include Extension Author(s)
>>  : Cyrus Daboo Aaron Stone Filename :
>>  draft-ietf-sieve-include-11.txt Pages : 15 Date
>>  : 2011-09-23
>>
>>  The Sieve Email Filtering &quot;include&quot; extension permits users
>>  to include one Sieve script inside another. This can make managing
>>  large scripts or multiple sets of scripts much easier, and allows a
>>  site and its users to build up libraries of scripts. Users are able
>>  to include their own personal scripts or site-wide scripts.
>
>
> You missed one issue I mentioned earlier: the paragraph about the
> application of the :once parameter starting at the end of page 5 and
> continuing on page 6 should be located directly below the description of the
> :once parameter and not below the paragraph describing :optional. So, it
> should  be moved one paragraph up.

Got it.

> A small editorial nit:
>
> The "spam_checks" example on page 10 has a require statement starting in the
> wrong text column and the global command that follows should be on the next
> line.

Fixed.

> Finally, I'd like to share a few things I only notice now because I've
> recently read RFC 5703 (mime extensions) once more. On page 6 of the include
> draft the following is mentioned:
>
>   The "include" command MAY appear anywhere in a script where a control
>   structure is legal, and MAY be used within another control structure,
>   e.g., within an "if" or "foreverypart" block (MIME [RFC5703]).
>
> So, from this I understand that the foreverypart context is passed down to
> any script included while in this context. This means that the behavior of
> the :mime-augmented tests in the included scripts is influenced accordingly.

I don't see why the context would be passed along, but I'll note
explicitly that it is not:

OLD:
255           The "include" command MAY appear anywhere in a script where a
256           control structure is legal, and MAY be used within another control
257           structure, e.g., within an "if" or "foreverypart" block
(<xref target='RFC5703'>MIME</xref>).

NEW:
255           The "include" command MAY appear anywhere in a script where a
256           control structure is legal, and MAY be used within another control
257           structure, e.g., within an "if" or "foreverypart" block
(<xref target='RFC5703'>MIME</xref>).
258           The included script SHALL NOT have any special control over the
259           control structure it was included from, e.g., inclusion
from within a
260           "foreverypart" block does not allow the included script
to directly
261           terminate or continue flow of that block.


> Now I was wondering what would happen when a top-level "break" action is
> executed in a script included somewhere in context of the foreverypart loop,
> or - equivalently - a break statement with name parameter equal to that of
> the foreverypart command in the including script. Initially, I feared this
> would require ending the included scripts and "return"-ing to the script
> executing the loop (at the position of the loop's end).  However, on page 6
> of the include draft the following is stated:
>
>   The included script MUST be a valid Sieve script.
>
> In light of the "break" issue, I like to read this as follows:
>
>   The included script MUST be a valid Sieve script in its own right.
>
> Since it is not allowed to have a "break" action outside a foreverypart loop
> or a break statement referencing a named loop that does not exist, an
> included script with such a break statement is invalid because it is not a
> valid Sieve script in its own right, i.e. without the foreverypart loop of
> the including script. This nicely prevents having break statements that
> cross include boundaries.
>
> Do you agree with this view on the matter? Is some more explicit mention of
> the interaction between foreverypart and include necessary?
>
>
> Regards,
>
> Stephan
>
>
>