[Top] [All Lists]

Re: rfc2821bis-03 Issue 22: Return-path required removal

2007-04-27 08:51:56

Pete Resnick wrote:

Even in 2822, it was:
fields          =       *(trace
                           *(resent-date /
                         *(orig-date /
That's one <return> per *set* of <trace>.

ACK, I missed that point.  

2822upd includes <optional-field> up with
the <trace> as well.

With T = trace, R = resent block, O = <optional-field>,
and A = anything else what you have now is: 

  fields = *( T *O *R ) *( A O ) 

That's almost the same as a syntactically simpler:

  fields = *( [T] O R ) *( A O )

One difference is that in your nested construct a T
(trace) is required if there's any R (resent-block).

But T can be empty, and with that a "required" T has
no effect for e.g. parsers trying to consider R in a
RFC 4409 8.1 "may add sender" scenario.

The complete R or worse *R concept is ugly like hell.