Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!decwrl!ucbvax!VAX.FTP.COM!dab From: dab@VAX.FTP.COM Newsgroups: comp.protocols.tcp-ip Subject: Re: TELNET Buffering Woes Message-ID: <8905022244.AA11216@vax.ftp.com> Date: 2 May 89 22:44:28 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 31 > From: dab@opus.cray.com (Dave Borman) [The other dab.] > > The problem here is not with the remote machine, but with the local > telnet implementation. The way that things should work is: > User types ^C > Local telnet translates that to, and sends, IAC IP, > and then sends IAC DO TIMING-MARK and begins to > flush all output. > Local telnet receives IAC WILL/WONT TIMING-MARK, and > resumes terminal output. > I disagree; that's not the way things should work. Typing ^C is likely to mean any of a number of things depending on what program I'm running at the time. The classic example is, of course, Emacs. To see a much better solution to this problem see the SUPDUP Local Editing Protocol. Its problem is that it's more complicated than anyone wants to implement (and I'm not sure it's doable at all under UNIX as PTY's work now). But everything less that I've heard about is pretty unsuitable. The protocol at least needs the ability for the server to set the clients interrupt characters and to be able to turn it off when the program switchs out of COOKED mode into RAW or CBREAK mode (to use UNIX terminology). If someone knows how to pull enough information to do this out of the back side of a PTY on UNIX then let me know. I'd like to put the code in my SUPDUP server (and client too but that's easy, or at least straightforward) to make it effectively run in line-at-a-time mode for programs running in COOKED mode. Then, if I can find someone to hack up GNU Emacs to understand too... David Bridgham