Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ukma!tut.cis.ohio-state.edu!ucbvax!opus.cray.com!dab From: dab@opus.cray.com (Dave Borman) Newsgroups: comp.protocols.tcp-ip Subject: Re: TELNET Buffering Woes Message-ID: <8905051422.AA02452@oliver.cray.com> Date: 5 May 89 14:22:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 53 > How is the local telnet supposed to know that ^C is the appropriate > interrupt character for the remote machine? Many systems permit the > interrupt character to be set by the user or a program. I don't think > the TELNET protocol specifies a way to transmit this change to the > client. The whole idea of the IAC IP and the NVT is that you don't need to know what the interrupt character on the remote side is. You type the interrupt character that is most natural to use on the client side of the connection, it gets turned into IAC IP, and the server translates the IAC IP into whatever is appropriate on the server side to cause an interrupt. Hence, if you are on your Unix machine, and you telnet to some machine running foobarOS, you can type ^C and know that you will interrupt the process on the remote side, regardless of what the interrupt character on the remote side is. > Also, the above assumes there's only one kind of interrupt. On Unix, > there's ^C (interrupt), ^Z (suspend), and ^\ (quit). They all need > output flushed, but they can't all send IAC IP. Bingo. You win the prize. The 4.3BSD telnet uses BRK to send ^\, and IP to send ^C. It also has an option on the client side so that you can tell the client what each character is. There is a new option, LINEMODE, which add the capablity for both sides to be in sync as to what character should be used for telnet code. It also adds three new new codes, ABORT, SUSP, and EOF, which on a Unix machine would map to ^\ (quit), ^Z (suspend) and ^D (end-of-file). You can probably expect to see the new RFC out sometime later this month, a BSD implementation will also be made available (which I am currently working on finishing up). A draft version is available for anonymous ftp from uc.msc.umn.edu, in pub/linemode.draft (This is NOT the final version. The SLC area is changing). Watch for future announcements. > What's really needed is a way to send out-of-band data to the telnet > client, telling it to ignore output until it reads a mark. Is it > possible to use the URGent flag to implement this? > > Barry Margolin > Thinking Machines Corp. > > barmar@think.com > {uunet,harvard}!think!barmar It already exists. It's called the "Synch" signal in RFC854, see page 8. A "Synch" consists of an IAC DM sent in urgent mode, and causes the reader(client) to discard input (server output) until it reads the IAC DM. -Dave Borman dab@cray.com