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

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

2011-07-08 12:52:02
On Fri, Jul 8, 2011 at 8:45 AM, Stephan Bosch <stephan(_at_)rename-it(_dot_)nl> 
wrote:
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).

Great language. Posting -09 now.

## '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