xref: /original-bsd/libexec/telnetd/telnetd.8 (revision 95407d66)
Copyright (c) 1983 The Regents of the University of California.
All rights reserved.

Redistribution and use in source and binary forms are permitted
provided that the above copyright notice and this paragraph are
duplicated in all such forms and that any documentation,
advertising materials, and other materials related to such
distribution and use acknowledge that the software was developed
by the University of California, Berkeley. The name of the
University may not be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

@(#)telnetd.8 6.7 (Berkeley) 06/28/90

TELNETD 8 ""
C 5
NAME
telnetd - DARPA TELNET protocol server
SYNOPSIS
/etc/telnetd [-debug [port]] [-l] [-D options] [-D report] [-D exercise] [-D netdata] [-D ptydata]
DESCRIPTION
Telnetd is a server which supports the DARPA standard TELNET virtual terminal protocol. Telnetd is invoked by the internet server (see inetd (8)), normally for requests to connect to the TELNET port as indicated by the /etc/services file (see services (5)). If the -debug may be used, to start up telnetd manually, instead of through inetd (8). If started up this way, port may be specified to run telnetd on an alternate TCP port number.

The -D option may be used for debugging purposes. This allows telnet to print out debugging information to the connection, allowing the user to see what telnetd is doing. There are several modifiers: options prints information about the negotiation of TELNET options, report prints the options information, plus some additional information about what processing is going on, netdata displays the data stream received by telnetd, ptydata displays data written to the pty, and exercise has not been implemented yet.

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 stdin , stdout , and stderr . 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 , to do remote flow control , and to receive terminal type information , terminal speed information , and window size 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 \*(lqcooked\*(rq mode, and with XTABS and CRMOD enabled (see tty (4)).

Telnetd is willing to do : echo , binary , suppress go ahead , and timing mark . Telnetd is willing to have the remote client do : linemode , binary , terminal type , terminal speed , window size , toggle flow control , environment , X display location , and suppress go ahead .

"SEE ALSO"
telnet(1)
BUGS
Some TELNET commands are only partially implemented.

Because of bugs in the original 4.2 BSD telnet (1), telnetd performs some dubious protocol exchanges to try to discover if the remote client is, in fact, a 4.2 BSD telnet (1).

Binary mode has no common interpretation except between similar operating systems (Unix in this case).

The terminal type name received from the remote client is converted to lower case.

Telnetd never sends TELNET go ahead commands.