RE: client requests ending \012

Michael Scharff <mscharff@real.com> Tue, 25 July 2000 22:06 UTC

Received: from cs.utk.edu (CS.UTK.EDU [128.169.94.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id SAA22255 for <drums-archive@odin.ietf.org>; Tue, 25 Jul 2000 18:06:26 -0400 (EDT)
Received: from localhost (daemon@localhost) by cs.utk.edu with SMTP (cf v2.9s-UTK) id SAA20965; Tue, 25 Jul 2000 18:01:12 -0400 (EDT)
Received: by cs.utk.edu (bulk_mailer v1.13); Tue, 25 Jul 2000 18:01:12 -0400
Received: by cs.utk.edu (cf v2.9s-UTK) id SAA20948; Tue, 25 Jul 2000 18:01:11 -0400 (EDT)
Received: from prognet.com (marvin@localhost) by cs.utk.edu with ESMTP (cf v2.9s-UTK) id SAA20933; Tue, 25 Jul 2000 18:01:08 -0400 (EDT)
Received: from prognet.com (205.219.198.1 -> prognet.com) by cs.utk.edu (smtpshim v1.0); Tue, 25 Jul 2000 18:01:08 -0400
Received: from mscharff.real.com ([172.22.104.48]) by prognet.com (8.9.2/8.9.0) with ESMTP id PAA15441; Tue, 25 Jul 2000 15:01:13 -0700 (PDT)
Message-Id: <4.3.2.7.2.20000725145831.00af4ec0@mail.real.com>
X-Sender: mscharff@mail.real.com
X-Mailer: QUALCOMM Windows Eudora Version 4.3.2
Date: Tue, 25 Jul 2000 15:02:19 +0100
To: Larry Osterman <larryo@Exchange.Microsoft.com>, Philip Hazel <ph10@cus.cam.ac.uk>
From: Michael Scharff <mscharff@real.com>
Subject: RE: client requests ending \012
Cc: drums@cs.utk.edu
In-Reply-To: <BE97ACF1A2EB464886E1DAF6C51BAC6E85CE96@DF-SPOT.platinum.co rp.microsoft.com>
Mime-Version: 1.0
Content-Type: text/html; charset="us-ascii"
List-Unsubscribe: <mailto:drums-request@cs.utk.edu?Subject=unsubscribe>

I don't disagree with this philosophy at all. What I have issue with is that we appear to be expanding the RFC's to include these "gentlemen's agreements" instead of holding true to the original concept that you describe below. If anything , we have taken it to the extreme in the name of "interoperability". As I stated before, there will always be "rogues" and "non-conformists", however, this doesn't mean that we should relax the standard to the point where there is no standard at all.




At 02:39 PM 7/25/00 -0700, Larry Osterman wrote:

I've been keeping quiet for quite some time now, but I gotta chime in right now:

Even if 821bis has a MUST that CRLF is the line terminator (and not just LF), this only means that a server MUST treat CRLF as a line terminator, and that a conforming client MUST generate only CRLF characters.

It says NOTHING about what a particular implementation choses to accept in the face of broken clients.  When faced with a client that sends only LF, an SMTP server vendor has two choices that they can make:

        1) Say to the author of the client: "You are violating the protocol, fix your client (neener neener :))"
or      2) Change the server to also accept LF as a line terminator (be liberal in what you accept, conservative in what you generate).

There is nothing in 821bis that says that a server MUST NOT accept LF as a line terminator, all that 821bis does is to specify the conforming on-the-wire format for the SMTP protocol.  A server vendor can still choose (for the sake of interoperability) to accept input from non conforming clients, that's their choice.  However a vendor does not HAVE to accept input from a non conforming client, and having an explicit prohibition against LF (or if you'd rather, an explicit endorsement of CRLF) in the protocol provides amunition for a server vendor that wants to say #1.  If the specification is mute, then the client vendor can say (as they did to Philip below) "but [sendmail|qmail|whatever] accepted my input, your server must be the broken one".

I've been reading the recent debate with a great deal of amusement, this issue (and the issue involving arguments to DATA and RSET) make it clear to me that some of the people reading the list have forgotten one of the principal tenets of IETF protocol design:

There is nothing in 821bis (or any other IETF protocol) that prevents servers from chosing to accept inputs that are NOT covered by 821bis (arguments to DATA and RSET, or raw LF's as line terminators, for example), but if they do so, they are doing it between concenting adults and outside the protocol.

As long as a server/client accepts ALL legal inputs as defined by 821bis, and produces output that is in conformance with 821bis, it's an 821bis server.  Anything else falls into the area of gentleman's agreements.

What the protocol definition does is to describe what you MUST do to claim to be 821bis, and it provides amunition for those who ARE 821bis to try to convince those who are NOT 821bis to change.  It is NOT intended to be a comprehensive implementors guide, neither is it intended to be a document that describes every possible situation that might be encountered in internet email (some of the strawmen brought up during the "must say quit" debate come to mind on that respect).

(And before anyone rakes me over the coals, I know that Nick Shelness and Keith Moore have both said what I said multiple times, I just thought it needed to be said still one more time).


Larry Osterman
Sent from larryo-laptop.dns.microsoft.com running NT5 and Outlook 2000 and Exchange Platinum!  Please notify the sender of any difficulties.

I'm an individual, and nothing I say should be considered an official policy of Microsoft :)

> -----Original Message-----
> From: Philip Hazel [mailto:ph10@cus.cam.ac.uk]
> Sent: Tuesday, July 25, 2000 11:53 AM
> To: Michael Scharff
> Cc: drums@cs.utk.edu
> Subject: Re: client requests ending \012
>
>
> On Tue, 25 Jul 2000, Michael Scharff wrote:
>
> > I have to chime in here and protest such a response. This
> sounds like a
> > good reason to go back and insure that CRLF is a MUST and
> NOT considered
> > optional in ANY CASE.
>
> The problem is historical baggage. I can't remember the
> details, but the
> reason I changed Exim was something like this: There was a
> company that
> had a server running Sendmail or Smail (I can't remember which) and a
> whole slew of local clients. They changed the server to Exim,
> and some
> clients stopped working. The clients were running software
> for which the
> source was not available. Management's attitude was "The
> clients used to
> work, so they should continue to work."; the technical guys
> didn't want to
> go back. Maybe I'm too kind hearted, but I listened to their plea for
> help.
>
> It's the old, old story: if a non-conformance gets widely spread,
> something will exploit it, and you can never claw back to strict
> conformance. Once some widely used server is "liberal in what it
> accepts", everybody else has to follow suit. Look at PP; it tried to
> implement the RFC "correctly", even to the extent of
> rejecting messages
> without a Date: header line (just one example). This just caused
> trouble.
>
> --
> Philip Hazel            University of Cambridge Computing Service,
> ph10@cus.cam.ac.uk      Cambridge, England. Phone: +44 1223 334714.
>