ietf-822
[Top] [All Lists]

Re: RFC validation samples?

2004-08-06 12:52:18

Laird Breyer wrote:
On Aug 05 2004, Bruce Lilly wrote:

Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
        Mon, 14 Jun 2004 16:13:25 -0700


Is this format known to be fairly stable (ie using from,by,with etc. as
delimiters?) If so, it could form the basis for an extra "Anti-RFC" format ;)
I'd better get to writing more code...

"from", "by", "with", "via", "id", and "for" are protocol elements
as specified in RFCs 821, 822, and 2821.  The first two are used with
domain names. The keywords used with "with" (protocols) and "via"
(links) used to be specified in the Assigned Numbers RFC (most recently
RFC 1700) before it was superseded by an online database
(see RFC 3232). However, RFC 2821 specifies "TCP" as a link value,
but is has not yet made its way into the database (after 3+ years).
On the other hand, new protocol values have recently been added based
on RFC 3848.  "id" was an area of discrepancy between RFCs 821 (a string)
and 822 (a msg-id); while RFC 1123 noted the discrepancy, it only added
to the confusion. RFCs 2821 and 2822 attempted to correct that, but there
is still a minor discrepancy (RFC 2821 "String" isn't provided for in
2822).  "for" is another area where there is a discrepancy; RFC 2821 permits
a mix of addr-specs and angle-addrs, whereas 2822 does not.  "from" and
"by" are required by RFCs 821 and 2821, as is the semicolon and
time stamp (the line was initially referred to as a "time stamp line").
RFC 2822 provides very liberal grammar for parsing, such that
   Received:
(i.e. nothing beyond the field name and colon) is considered
RFC 2822-legal -- that's a time stamp line with no time stamp.

Among the problems with the example above generated by faulty software
are:
1. "mail" is not a domain name
2. there is no "pickup" keyword
3. "Microsoft" is not a valid protocol
4. "SMTPSVC" is not a keyword
5. there is no value associated with "SMTPSVC", so even the
   very liberal RFC 2822 name-val pair syntax is violated by
   the example
6. The mandatory space before the semicolon is missing
7. RFC 821 does not permit day-of-week in the time stamp

The illegal syntax is generated by Microsoft Windows 2000 (and
probably its successors) and was reported to Microsoft years ago
(shortly after Windows 2000 was introduced).  As of Windows 2000
SP3 it was not fixed, so I suppose one could say that the bug
responsible for the broken format is stable...


<Prev in Thread] Current Thread [Next in Thread>