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

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

2011-07-05 14:21:31
Op 5-7-2011 18:59, Aaron Stone schreef:
On Tue, Jul 5, 2011 at 9:47 AM,<internet-drafts(_at_)ietf(_dot_)org>  wrote:
A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-sieve-include-07.txt
At long last, I've updated the Include draft. Thanks to Stephan Bosch,
whose comments from many months ago I incorporated into this revision.
Ah nice :)

I have three issues still:

## ISSUE 1:

I've fed the examples to my compiler and it still finds a few familiar errors:

* First example starting at page 8:

spam_tests: line 6: error: the reject command requires 1 positional argument(s), but 0 is/are specified. default: line 4: error: failed to validate included :global script 'spam_tests'.

* Third example starting at page 11:

active: line 5: error: missing semicolon ';' after set command.
active: line 8: error: missing semicolon ';' after set command.
active: line 13: error: unknown command 'fileinto' (only reported once at first occurence).
active: error: validation failed.

When I fix those, more errors follow:

active: line 3: error: invalid variable identifier 'test-mailbox'.

And, thereafter:

spam_checks: line 2: error: invalid variable identifier 'test-mailbox'.
spam_checks: line 6: error: invalid variable name 'test-mailbox'.
active: line 6: error: failed to validate included script 'spam_checks'.

* Fifth example starting at page 13:

example5: line 9: error: expected end of command ';' or the beginning of a compound block '{', but found '}'.
(missing semicolon after vacation command)

## ISSUE 2:

While I was working on this, I thought of something that is not explicitly addressed in the document (correct me if I'm wrong). Initially I had forgotten to check for the validity of the global command's value argument and now I am wondering: what is the exact syntax of that argument? Logic dictates that this is simply an 'identifier' as used in RFC5229 and defined in RFC5228, since only simple variables make any sense. I can imagine though that at some point more namespaces are defined by new extensions and some people may assume that the variable name in the value argument can have a namespace prefix as defined in RFC5229. Some may even allow to make match values global. This would make the following script legal:

require "include";
require "variables";
require "frop"; # This jolly extension defines a new (writable) namespace called 'frop'

global "normal";
global "frop.abnormal";

global "0";
if header :matches "from" "*" {  }

Something similar is true for the global namespace:

set "global.frop.abnormal" "Frop!";
set "global.0" "Friep!";

Although the above is pretty far-fetched and stupid, I think it is better when this is excluded explicitly by stating the argument's exact syntax instead of calling it only a 'variable name' (much like Section 4 in RFC5229). Also the syntax of the sub-items of the global namespace should be defined explicitly.

## 'ISSUE' 3:

I've had a few request and questions from users about having an optional include, i.e. an include directive that is skipped without error if (and only if) the to-be-included script does not exist. Do you find this a useful feature? If yes, is it possible to add this to the main draft now or should there be an 'include-optional' extension that adds an ':optional' tag to the include command?



Regards,

Stephan.














_______________________________________________
sieve mailing list
sieve(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/sieve