Subject: Re: #1053 Relationship to RFC 2822 - suggestion

From: John Stanley <[email-masked]>
Date: Fri, 12 Aug 2005 15:02:20 -0700 (PDT)

Harald Tveit Alvestrand <harald@xxxxxxxxxxxxx>:

>  This document, and specifications that build upon it, specifies how
>  to handle conformant articles. Handling of non-conformant articles
>  is outside the scope of this specification;

s/;/./  Outside of scope is outside of scope.

>    agents may choose
>  to accept such articles, reject such articles or modify such articles.

"Agents", in the general sense, should NEVER be allowed to modify
non-conforming articles, unless there is a specific modification to
correct something specific and the correction is well defined. If a
relaying agent, e.g., gets a non-conforming article, the only correct
assumption a conforming agent can make is that the article was mangled in
transit and it MUST be dropped. It must assume that the agents next to it
are operating correctly and would not create non-conforming articles; thus
the only way it became non-conforming is through some error in transit.

Further, agents, in the general sense, MUST NOT accept non-conforming
articles, for precisely the same reason. All that is left is "reject".

>  Articles are conformant if they use the obs-phrase construct
>  (use of a phrase like "John Q. Public" without the use of quotes,
>  see [RFC2822] section 4.1) but they MUST NOT generate productions
>  of such syntax.

How do article generate "productions" of syntax? Perhaps you mean "agents 
MUST NOT generate".

>  Articles must conform to both the ABNF specified in RFC 2822 and to the
>  ABNF specified here, as applicable.

"Both" and "as applicable" are contradictions. "Both" means both apply,
and there is no "if" or "as".

---

From: Harald Tveit Alvestrand <[email-masked]>
Date: Mon, 15 Aug 2005 11:26:51 +0200

> articles, for precisely the same reason. All that is left is "reject".

Reality interrupt....

Real programs will do what the people who implement them program.
Real implementors listen to customers.
Real customers for server software want to minimize their support costs.

If they conclude that their support costs are minimized by article mangling 
on broken articles, article mangling will be written into server software.
(real implementors who wish to tell me otherwise.. please speak up!)

We can tell people "if you do this, you're on your own". Telling people 
"you can't do this" when we know perfectly well that they will do it is not 
particularly helpful. Telling people "you must not do this when you don't 
have to" (when the article is OK) gives implementors a tool to push back on 
broken requests - which might be good.

I'm reasonably happy with saying nothing, and happier with saying 
explicitly "it's your business, standard won't help you here".

But mandating something that we know will be ignored...? Not fun.

                    Harald

---

From: Harald Tveit Alvestrand <[email-masked]>
Date: Mon, 15 Aug 2005 11:29:33 +0200

> How do article generate "productions" of syntax? Perhaps you mean "agents

Yes. Thanks.

> and there is no "if" or "as".

If, for a particular ABNF construct, only one ABNF exists, only one can 
apply. Better term for saying that than "as applicable"?