[Top] [All Lists]

Re: WGLC on draft-ietf-sieve-managesieve-01.txt (review)

2008-11-18 04:52:53

Alexey Melnikov wrote:

Hi Stephan,
Thank you for your review.

I am quickly answering easy comments/questions and will followup on the rest later on.


- Clarify what is meant by syntax checking. In the strictest sense it could mean that any script that complies with the basic grammar of the Sieve language would pass. Command syntax, i.e. which arguments are required/allowed, would then be ignored. Also, wouldn't it be helpful/useful/desirable to include contextual checks here as well? E.g. unknown/invalid comparators etc.

IMHO, invalid/unknown comparator would be covered by syntactic checks.

I first encountered this distinction when discussing the ihave extension to the Sieve language. I implicitly interpreted this requirement as a full script check (i.e. as would be done for full compilation), which seems overly restrictive when reading this standard more carefully.

You need to suggest specific text, especially if you want the document to describe interaction with ihave in more details.
I was not saying that the interaction with ihave needs to be described better, I was merely saying that during the discussion of the ihave extension I noticed that the current formulation of the syntactic validation requirement is very much open for interpretation. IMHO, this is usually a bad thing in a document that is intended to establish a standard.

I am not very good at writing such texts myself, but I can provide a textual representation of how I interpret the sentence 'The server MUST check the submitted script for syntactic validity, which includes checking that all Sieve extensions mentioned in Sieve script "require" statement(s) are supported by the Sieve interpreter.' (somewhere on page 20):

'The server MUST check the submitted script for validity, which includes checking that the script complies with the Sieve grammar [SIEVE], that all Sieve extensions mentioned in script's "require" statement(s) are supported by the Sieve interpreter, that all used commands are known (i.e. either part of the main Sieve language or an extension mentioned in the "require" lines), that commands are used in the correct context and that the supplied command arguments are valid for each command. Essentially, the performed validation should be equal to what is performed when compiling the script for execution. Implementations that use a binary representation to store compiled scripts can extend the validation to a full compile, in order to avoid validating uploaded scripts multiple times.'

Does this interpretation match your intention of that sentence? I am also wondering what others think of this. I can imagine that the ihave authors have some amendments, but I think the text that follows the aforementioned sentence in the draft should cover most potential issues.


Stephan Bosch