telnetd operates by allocating a pseudo-terminal device (see pty.4 for a client, then creating a login process which has the slave side of the pseudo-terminal as its standard input, output, and error. telnetd manipulates the master side of the pseudo-terminal, implementing the TELNET protocol and passing characters between the remote client and the login process.
When a TELNET session is started up, telnetd sends TELNET options to the client side indicating a willingness to do remote echo of characters, to suppress go ahead, and to receive terminal type information from the remote client. If the remote client is willing, the remote terminal type is propagated in the environment of the created login process. The pseudo-terminal allocated to the client is configured to operate in ``cooked'' mode, and with XTABS, ICRNL, and ONLCR enabled (see termio.4
telnetd is willing to do: echo, binary, suppress go ahead, and timing mark. telnetd is willing to have the remote client do: binary, terminal type, and suppress go ahead.
Postel, Jon, and Joyce Reynolds, ``Telnet Protocol Specification,'' RFC 854, Network Information Center, SRI International, Menlo Park, Calif., May 1983.
The TELNET protocol allows for the exchange of the number of lines and columns on the user's terminal, but telnetd doesn't make use of them.
Because of bugs in the original 4.2 BSD telnet.1c telnetd performs some dubious protocol exchanges to try to discover if the remote client is, in fact, a 4.2 BSD telnet.1c
Binary mode has no common interpretation except between similar operating systems
The terminal type name received from the remote client is converted to lower case.
The packet interface to the pseudo-terminal (see pty.4 should be used for more intelligent flushing of input and output queues.
telnetd never sends TELNET go ahead commands.
telnetd can only support 64 pseudo-terminals.
Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).
Last modified 21/April/97