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

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

2011-07-08 10:45:55
Op 8-7-2011 8:57, Aaron Stone schreef:
Uploaded -08 with these changes, thank you!

On Tue, Jul 5, 2011 at 12:20 PM, Stephan Bosch<stephan(_at_)rename-it(_dot_)nl> 
 wrote:
## 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.
[...]
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).
Is this the paragraph that needs work?

    A variable has global scope in all scripts that have declared it with
    the "global" command.  If a script uses that variable name without
    declaring it global, the name specifies a separate, non-global
    variable within that script.

No, I would think the first paragraph of Section 3.4.1. is the best place to mention this:

   The "global" command contains a string list argument that defines one
   or more names of variables to be stored in the global variable space.

'Names of variables' is in my opinion a bit too vague. As an example, the "set" command specified in Section 4 of RFC 5229 defines the following:

   The "set" action stores the specified value in the variable
   identified by name.  The name MUST be a constant string and conform
   to the syntax of variable-name.  Match variables cannot be set.  A
   namespace cannot be used unless an extension explicitly allows its
   use in "set".  An invalid name MUST be detected as a syntax error.

I would change the first paragraph as follows:

   The "global" command has a string list argument that defines one
   or more names of variables to be stored in the global variable space.
   Each name MUST be a constant string and conform to the syntax of
   variable-name as defined in [RFC5229], Section 3. Match variables
   cannot be specified and namespace prefixes are not allowed. An invalid
   name MUST be detected as a syntax error.

(I didn't even consider the constant string part until just now)

Also the syntax of the sub-items of the global namespace should be
defined explicitly.
I'm not sure what you mean here.

Basically the same restrictions apply in this case. The paragraph directly after the example in Section 3.4.2 states:

  Variables declared global and variables accessed via the global
  namespace MUST be one and the same.

Similar to the global command, you can add here that the "global" namespace has no sub-namespaces (e.g. set "global.data.from" "me(_at_)example(_dot_)com"; is not allowed ) and that the variable-name part is always an identifier (so set "global.12" "whatever"; is not allowed).

## '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?
Oh, huh. I suppose at least a hack around this would be an empty script?

Yes, but that will not be adequate in many situations. Do more people have thoughts on this?

Regards,

Stephan.

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