[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: msg-id



Charles Lindsey wrote:

 [mdomain instead of id-right]
> The whole thing looks such a mess that I cannot now see any
> reason for departing further than needed from RFC 2822 as
> regards the id-right.

If you want to get rid of NO-WS-CTL and quoted pairs, then...

| mdomain         = dot-atom-text / ("[" address-literal "]")
| address-literal = 1*( atext / "." / ":" )    ; see RfC 2821

...is good enough.  Address literals don't contain [, \, or ].

The stuff about "dcontent after a generalized tags registered
with IANA" in RfC 2821 is science fiction, but the pointer to
RfC 2373 (2.2 Text Representation of Addresses) IP6v is a fact.

> adopting <address-literal> from RFC 2821 does not help us,

Yes, I didn't see the "generalized" nonsense.  And I'm not sure
about the IPv6 tag in 2821, do we really want it ?  It's not
very critical in a Message-ID, but it starts to get confusing
in a path-identity.  Why not use the RfC 2373 format without a
tag ?  Anything with ":" is IPv6, anything without ":" is IPv4.

> Alexey has not really made any pronouncement yet.

Quoting <news://news.gmane.org/41C9A58A.10508@xxxxxxxxx> :

|>>Define a Message-ID compatible with NNTP, get rid of NO-WS-CTL.
|
|> Of course.

That's a clear "go", he can say "stop" if we're getting carried
away and start to reinvent the Internet... :-)

> I now see that NO-WS-CTL also appears in <id-right>.

It's everywhere in 2822, even in Subject and other unstructured
headers.  The idea was probably to avoid "over-specifications",
and the minimum "they" (incl. you ;-) could get away with was
to exclude CR, LF, and NUL in message/rfc2822.  That's the old
"be liberal in what you accept" rule, but it's too liberal for
our purposes, we want something working with existing servers
and newsreaders.

> I am coming to the conclusion that we should just omit
> NO-WS-CTL from our versions if <id-left> and <id-right>, and
> leave it at that.

Then you'd still allow <unique@[IPv9:\]\\\[]> and that's wrong,
IPv9:]\[ is no address literal.  BTW, your mdtext enumerates
%d33-61 etc., but ">" is %d34, and the comment says 'no ">"'.

My style to base enumerations on atext + additions allows to
catch such simple errors more easily.

  [unique vs. id-left]
>> anything starting or ending with a dot. That's not covered
>> by dot-atom-text.  And anything with ".." (two or more dots)
>> for the same reasons.

> If an <id-left> starts or ends with a ".", then it is not
> allowed under RFC 2822, and hence we cannot allow it either.

Yes, I was talking about the differences in id-left and unique,
i.e. your no-fold-quote and my unique-quote:

RfC 2822 and unique-quote allow <".xy."@example>, but that's
not the intention in your no-fold-quote.  Dito <"x..y"@example>.

> OK, I shall look at your latest syntax.

Our main difference or problem are now address literals.  JFTR:

| msg-id-core     =  "<" unique "@" mdomain ">"
| mdomain         = dot-atom-text / ("[" address-literal "]")
| address-literal = 1*( atext / "." / ":" )    ; see RfC 2821

| unique          = dot-atom-text / ( DQUOTE unique-quote DQUOTE )
| unique-quote    = ( "." [unique-part] ) /
|                   ( [unique-part] "." ) /
|                   ( [unique-part] unique-literal [unique-part] )
| unique-part     = 1*( atext / "." / unique-literal )
| unique-literal  = "(" / ")" / "," / ; all specials, minus ">",
|                   "[" / "]" / "@" / ; minus DQUOTE, minus "\",
|                   ":" / ";" / "<" / ; minus single ".", plus:
|                   ".." / "\\" / ( "\" DQUOTE )

                    Bye, Frank