Received: with LISTAR (v1.0.0; list gopher); Wed, 27 Dec 2000 15:52:40 -0600 (CST) Return-Path: Delivered-To: gopher@complete.org Received: from smtp01.mrf.mail.rcn.net (smtp01.mrf.mail.rcn.net [207.172.4.60]) by pi.glockenspiel.complete.org (Postfix) with ESMTP id 15ED73B808 for ; Wed, 27 Dec 2000 15:52:40 -0600 (CST) Received: from 207-172-86-253.s253.tnt6.rcm.va.dialup.rcn.com ([207.172.86.253] helo=mothra) by smtp01.mrf.mail.rcn.net with esmtp (Exim 3.16 #5) id 14BOT1-0007Uq-00 for gopher@complete.org; Wed, 27 Dec 2000 16:50:44 -0500 Received: from x by mothra with local (Exim 3.20 #1 (Debian)) id 14BJcL-000106-00 for ; Wed, 27 Dec 2000 11:39:57 -0500 Date: Wed, 27 Dec 2000 11:39:57 -0500 From: David Allen To: gopher@complete.org Subject: [gopher] Re: Gopher Protocol Issue Message-ID: <20001227113957.A3800@mothra> References: <20001227100207.A26368@mothra> <200012272136.NAA15654@stockholm.ptloma.edu> Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii User-Agent: Mutt/1.0.1i In-Reply-To: <200012272136.NAA15654@stockholm.ptloma.edu>; from spectre@stockholm.ptloma.edu on Wed, Dec 27, 2000 at 01:36:58PM -0800 Content-Transfer-Encoding: 8bit X-archive-position: 11 X-listar-version: Listar v1.0.0 Sender: gopher-bounce@complete.org Errors-to: gopher-bounce@complete.org X-original-sender: s2mdalle@titan.vcu.edu Precedence: bulk Reply-to: gopher@complete.org X-list: gopher On Wed, Dec 27, 2000 at 01:36:58PM -0800, Cameron Kaiser wrote: > > So how do you reconcile this? Is it "correct" behavior for a gopherd > > to terminate ALL lines with "\r\n" even if that's not part of the > > original data it's sending? (In the original gopher RFC, it > > specifically says that for directory listings, each line should be > > terminated with "\r\n". But for regular files, it doesn't say) This > > would be intensely lousy, since it would mean that the server wouldn't > > know how many bytes it was going to send unless it looked through the > > files and counted the number of occurances of that pattern before > > hand, which isn't very efficient. > > Actually, some clients will break without the \r\n termination of lines > in text files -- TurboGopher for the Mac is one of these offenders. Breaks as in, it won't display the data properly, or what? I've never used this client. Well, I'll fess up, I'm a gopher baby, I've only used lynx, netscape, UMN gopher, and my own pre-alpha client for a few months. Ah, so of course this brings up the question of whether or not you should follow the protocol, buggy clients be damned, or potentially break software. > Gopher+ is sort of a nebulous extension and there are a lot of inconsistencies > in it, the one you mention being one of many. It's a lot of good ideas that Well see that was part of what the question was. Does gopher+ *require* that each line end with \r\n even when that isn't part of the data being sent? I'm not sure whether or not in this case the problem is just a bad idea in the code of UMN gopherd, or if it's actually a braindead requirement of gopher+. And the whole period doubling thing...frankly, a protocol should never force you to send data other than what you want to send. I.e. if I run "diff downloaded_gopher_file /var/gopher/file_being_served" I shouldn't ever get any different IMHO. > should be implemented but aren't in a developer-friendly form with all the > kinks accounted for. That's why I gave up trying to create a wholly compliant > implementation in Bucktooth -- it only supports enough Gopher+ to tell a > client bent on sending G+ requests that it shouldn't do that, and that's all. > I have enough intricacies in the core protocol to worry about without G+ :-( When you say "developer-friendly" are you referring to the type of situation where you would realistically have to scan an entire file for certain patterns before being able to accurately report to the client how many bytes were going to be sent? Servers shouldn't have to do all that. Well the issue I was trying to get around was that UMN gopherd which I was patching was ALWAYS sending -1 to the client telling it that it didn't know or was too lazy to calculate file sizes. I'm guessing that always sending -1 was just the developer's way of avoiding these issues. But IMHO how much data the server is going to send is an important figure, since it allows the client to show the user what percentage you're at. (i.e. is this just a big text file that's going to be done downloading in another 10 seconds, or am I going to have to wait 3 more days for it to finish?) The clients I've seen though never send G+ requests unless they know they can. (I.e. when listing the contents of a directory, each dir entry has a "\t+" at the end of it.) > Before further development continues, I think there should be some work on > getting the Gopher+ sketch turned into a much more solid proposal. The gopher+ info is quite old - are the people who wrote that still on the map in terms of gopher activity? The document I've got is dated July 30, 1993, written by Farhad Anklesaria, Paul Lindner, Mark P. McCahill, Daniel Torrey, David Johnson, Bob Alberti, Microcomputer and Workstation Networks Center Computer and Information Systems University of Minnesota I plead ignorance - how is that type of thing done? -- David Allen http://opop.nols.com/