Hi Paul,

> On 19 Sep 2017, at 21:02, Paul Kyzivat <pkyzi...@alum.mit.edu> wrote:
> 
>> On 9/19/17 2:41 PM, Pete Resnick wrote:
>> On 19 Sep 2017, at 9:23, Alexey Melnikov wrote:
>>            optional-field =/ *( approved /
>>            archive /
>>            control /
>>            distribution /
>>            expires /
>>            followup-to /
>>            injection-date /
>>            injection-info /
>>            lines /
>>            newsgroups /
>>            organization /
>>            path /
>>            summary /
>>            supersedes /
>>            user-agent /
>>            xref )
>>        I see one issue with the above. <optional-field> appears *twice*
>>        in the
>>        definition of <fields> in 5322. I don't understand what the
>>        intent was
>>        there - whether it was a mistake or was trying to express
>>        something that
>>        I am missing.
>>    I believe it was entirely intentional. The first instance allows to add
>>    new trace header fields (which should be kept together in groups), the
>>    second allows adding other types of header fields.
>> Correct, that was the intention. In 5322, optional-field is a catchall for 
>> any new header field, so you need one for new trace fields and one for other 
>> fields. Otherwise, there's no way to put a new field between two trace 
>> fields. This was a fix in 5322 from 2822.
>>        This really needs some further discussion. (E.g., should
>>        the valid values for <optional-field> as used with trace be distinct
>>        from those in its later appearance?
>>    Yes. It would have been better to have 2 separate productions, like
>>    trace-optional-field and other-optional-field, but what Pete did seems
>>    to be Ok.
> 
> This probably wasn't *too* bad as long as <optional-field> was simply defined 
> as:
> 
>   optional-field  =   field-name ":" unstructured CRLF
> 
> Even then, ideally there should have been some words to indicate that the 
> <field-name>s used as extensions for trace be disjoint from those used as 
> non-trace extension headers.
> 
> It gets more ugly when we start to extends <optional-field> syntactically via 
> =/. Now, when the syntax is evaluated the new header fields we are defining 
> show up as explicitly syntactically valid in both places. :-(
> 
>> Yes, that might have been nice, but putting extensibility syntax throughout 
>> the grammar starts to get ugly. (Imagine resent-optional-field, 
>> originator-optional-field, etc.) I think just one is fine.
> 
> Since there is an IANA registry, another possibility would be to not attempt 
> to revise the syntax from 5322 at all.

On my memory most of new header fields are defined without extending 
"optional-field" production. So people are already doing what you propose.

> Instead, simply rely on the the extensibility already there via 
> <optional-field> and register all the new header fields in the IANA registry. 
> (Use ABNF to define the syntax of the individual new headers but not their 
> linkage into the message.)
> 
> Then use text to specify conditions about where they may appear in a message.

Right.

>    Thanks,
>    Paul
> 
>>        This needs to be thrashed out with
>>        mail experts before this fix is finalized. I don't know what
>>        forum is
>>        appropriate for that.
>>    I am not sure. Pete?
>> Probably ietf-822, but (a) I personally haven't read the list in a very long 
>> time, and (b) I don't think there's anything terribly controversial about 
>> the change.
>>        Ignoring that, I agree this change to 5536 would achieve the goal
>>        without requiring a change in 5322, which is progress. However I
>>        think a
>>        tweak to the above would be be a bit cleaner:
>>        optional-field =/ approved /
>>        archive /
>>        control /
>>        distribution /
>>        expires /
>>        followup-to /
>>        injection-date /
>>        injection-info /
>>        lines /
>>        newsgroups /
>>        organization /
>>        path /
>>        summary /
>>        supersedes /
>>        user-agent /
>>        xref
>>        This is definitely a better fix than I was suggesting. (Thank
>>        you Pete!)
>>    Good.
>> You're very welcome. I am equally fine with Alexey and Julien's version:
>> |optional-field = <see RFC 5322 Section 3.6.8> news-fields = approved / 
>> archive / control / distribution / expires / followup-to / injection-date / 
>> injection-info / lines / newsgroups / organization / path / summary / 
>> supersedes / user-agent / xref optional-field /= newsfields |
>> pr
>> -- 
>> Pete Resnick http://www.qualcomm.com/~presnick/ 
>> <http://www.qualcomm.com/%7Epresnick/>
>> Qualcomm Technologies, Inc. - +1 (858)651-4478
> 

_______________________________________________
Gen-art mailing list
Gen-art@ietf.org
https://www.ietf.org/mailman/listinfo/gen-art

Reply via email to