Received: from localhost by CS.UTK.EDU with SMTP (cf v2.9s-UTK) id SAA23518; Fri, 5 Jan 1996 18:55:50 -0500 Received: by CS.UTK.EDU (bulk_mailer v1.3); Fri, 5 Jan 1996 18:54:36 -0500 Received: from po10.andrew.cmu.edu by CS.UTK.EDU with ESMTP (cf v2.9s-UTK) id SAA23399; Fri, 5 Jan 1996 18:54:34 -0500 Received: (from postman@localhost) by po10.andrew.cmu.edu (8.7.1/8.7.1) id SAA00945 for drums@cs.utk.edu; Fri, 5 Jan 1996 18:54:29 -0500 Received: via switchmail; Fri, 5 Jan 1996 18:54:28 -0500 (EST) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 5 Jan 1996 18:54:23 -0500 (EST) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 5 Jan 1996 18:54:20 -0500 (EST) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.hogtown.andrew.cmu.edu.sun4c.411 via MS.5.6.hogtown.andrew.cmu.edu.sun4c_411; Fri, 5 Jan 1996 18:54:18 -0500 (EST) Message-ID: Date: Fri, 5 Jan 1996 18:54:18 -0500 (EST) From: John Gardiner Myers To: drums@cs.utk.edu Subject: "be liberal in what you accept" considered harmful "Be liberal in what you accept" can actually be a quite harmful practice. It's use papers over problems which otherwise would be noticed and fixed. In fact, I consider it one of the primary causes of the mess that is Internet mail today. All sorts of crap floats around in mail because the deployed software allows it. In fact, you can't implement a mail system by implementing the specs--you end up having to more or less behave like sendmail does because that's what all the other software expects. For example, in the case of an email message with usable forward-paths, but a patently unusable return-path, being liberal has the effect of making things appear to work, even though something upstream is broken or misconfigured. Other mail sent through the same route with incorrect forward-paths will be lost instead of returned to the sender. If, on the other hand, you reject the SMTP session, the maintainer of the misconfigured system is far more likely to be made aware of the problem and is far more motivated to fix it. A prime example of the success of the rejecting the "be liberal" philosophy is in netnews. It used to be that every few months, some backwater site that had been down for a few months would come back up and try to transmit months-old articles to its neighbors. Sometimes, these articles would have missing or unparseable Date: headers. The friendly neighbors would be nice and "liberal" and either fix up those headers with the current date or just pass them on. The result was that the old articles would be distributed and everyone reading netnews would have to wade through them. Finally, Henry Spencer released a version of his news transport software that was extremely strict. If the Date: header did not parse according to the specification, it dropped the article on the floor. For a few months after this was released, there was much howling from people with software that generated invalid Date: headers. But since there was motivation, the software got fixed. These days, nobody complains about the pickiness of the Date: header parser. And these days, netnews doesn't suffer from periodic episodes of regurgitated news. "Being liberal" buys you short-term interoperability at the cost of long-term interoperability and "once in a blue moon" problems. -- _.John G. Myers Internet: jgm+@CMU.EDU LoseNet: ...!seismo!ihnp4!wiscvm.wisc.edu!give!up