• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

MakefileD23-Nov-2005477 1610

READMED05-Feb-200525.5 KiB765596

auth-proto.hD26-Jun-20055.8 KiB13461

auth.cD26-Jun-200516.3 KiB665493

auth.hD26-Jun-20054.1 KiB9220

authenc.cD26-Apr-20053 KiB11063

commands.cD24-Aug-200766.8 KiB2,8972,450

defines.hD05-Feb-20052.6 KiB6620

defs.hD21-Jul-20056 KiB18392

enc-proto.hD26-Jun-20055.7 KiB15480

encrypt.cD26-Jun-200524.1 KiB1,006787

encrypt.hD26-Jun-20054.3 KiB10631

ext.hD21-Jul-20056.2 KiB202139

externs.hD26-Apr-200513.4 KiB460340

genget.cD26-Jun-20053.2 KiB10549

getent.cD05-Feb-20052.4 KiB7434

main.cD05-Feb-20059.2 KiB415330

misc-proto.hD26-Jun-20054 KiB9117

misc.cD26-Jun-20053.1 KiB10358

misc.hD26-Jun-20051.9 KiB416

network.cD05-Feb-20054.3 KiB17086

ring.cD05-Feb-20057.8 KiB343196

ring.hD05-Feb-20053.3 KiB10040

sys_bsd.cD24-Aug-200725.5 KiB1,213903

telnet.1D13-Mar-200531.2 KiB1,5101,509

telnet.cD26-Apr-200555.5 KiB2,6612,116

telnet_locl.hD05-Feb-20052.9 KiB9139

terminal.cD05-Feb-20055.2 KiB235153

types.hD05-Feb-20052.1 KiB5214

utilities.cD05-Feb-200522.1 KiB923803

README

1	$OpenBSD: README,v 1.4 2003/11/08 19:17:29 jmc Exp $
2
3This is a distribution of both client and server telnet.  These programs
4have been compiled on:
5			telnet	telnetd
6	4.4 BSD-Lite	  x	  x
7	4.3 BSD Reno	  X	  X
8	UNICOS 9.1	  X	  X
9	UNICOS 9.0	  X	  X
10	UNICOS 8.0	  X	  X
11	BSDI 2.0	  X	  X
12	Solaris 2.4       x       x (no linemode in server)
13	SunOs 4.1.4	  X	  X (no linemode in server)
14	Ultrix 4.3	  X	  X (no linemode in server)
15	Ultrix 4.1	  X	  X (no linemode in server)
16
17In addition, previous versions have been compiled on the following
18machines, but were not available for testing this version.
19			telnet	telnetd
20	Next1.0		  X	  X
21	UNICOS 8.3	  X	  X
22	UNICOS 7.C	  X	  X
23	UNICOS 7.0	  X	  X
24	SunOs 4.0.3c	  X	  X (no linemode in server)
25	4.3 BSD		  X  	  X (no linemode in server)
26	DYNIX V3.0.12	  X	  X (no linemode in server)
27	Ultrix 3.1	  X	  X (no linemode in server)
28	Ultrix 4.0	  X	  X (no linemode in server)
29	SunOs 3.5	  X	  X (no linemode in server)
30	SunOs 4.1.3	  X	  X (no linemode in server)
31	Solaris 2.2       x       x (no linemode in server)
32	Solaris 2.3       x       x (no linemode in server)
33	BSDI 1.0	  X	  X
34	BSDI 1.1	  X	  X
35	DYNIX V3.0.17.9	  X	  X (no linemode in server)
36	HP-UX 8.0	  x       x (no linemode in server)
37
38This code should work, but there are no guarantees.
39
40Oct 23, 1995
41
42This is a bugfix release.
43
44	The change in the previous release from using makeutx() to
45	pututxline() caused problems on SunOS/Solaris.  It has been
46	changed back to using makeutx().  Symptoms include users
47	getting error messages when logging in about not being able
48	to open the tty.
49
50	Using memmove() instead of memcpy() caused problems under
51	SunOS 4.x, since it doesn't have memmove().  Config.generic
52	has been modified to include mem.o for SunOS 4.x.
53
54	Some new code was added to telnetd to do some enviornment
55	variable cleanup before execing login.  Thanks to Sam Hartman
56	at MIT for pointing this out.
57
58	A couple of other minor bugfixes.
59
60May 30, 1995
61
62This release represents what is on the 4.4BSD-Lite2 release, which
63should be the final BSD release.  I will continue to support of
64telnet, The code (without encryption) is available via anonymous ftp
65from ftp.cray.com, in src/telnet/telnet.YY.MM.DD.NE.tar.Z, where
66YY.MM.DD is replaced with the year, month and day of the release.
67If you can't find it at one of these places, at some point in the
68near future information about the latest releases should be available
69from ftp.borman.com.
70
71In addition, the version with the encryption code is available via
72ftp from net-dist.mit.edu, in the directory /pub/telnet.  There
73is a README file there that gives further information on how
74to get the distribution.
75
76Questions, comments, bug reports and bug fixes can be sent to
77one of these addresses:
78		dab@borman.com
79		dab@cray.com
80		dab@bsdi.com
81
82This release is mainly bug fixes and code cleanup.
83
84	Replace all calls to bcopy()/bzero() with calls to
85	memmove()/memset() and all calls to index()/rindex()
86	with calls to strchr()/strrchr().
87
88	Add some missing diagnostics for option tracing
89	to telnetd.
90
91	Add support for BSDI 2.0 and Solaris 2.4.
92
93	Add support for UNICOS 8.0
94
95	Get rid of expanded tabs and trailing white spaces.
96
97	From Paul Vixie:
98		Fix for telnet going into an endless spin
99		when the session dies abnormally.
100
101	From Jef Poskanzer:
102		Changes to allow telnet to compile
103		under SunOS 3.5.
104
105	From Philip Guenther:
106		makeutx() doesn't expand utmpx,
107		use pututxline() instead.
108
109	From Chris Torek:
110		Add a sleep(1) before execing login
111		to avoid race condition that can eat
112		up the login prompt.
113		Use terminal speed directly if it is
114		not an encoded value.
115
116	From Steve Parker:
117		Fix to realloc() call.  Fix for execing
118		login on solaris with no user name.
119
120January 19, 1994
121
122This is a list of some of the changes since the last tar release
123of telnet/telnetd.  There are probably other changes that aren't
124listed here, but this should hit a lot of the main ones.
125
126   General:
127	Changed #define for AUTHENTICATE to AUTHENTICATION
128	Changed #define for ENCRYPT to ENCRYPTION
129	Changed #define for DES_ENCRYPT to DES_ENCRYPTION
130
131	Added support for SPX authentication: -DSPX
132
133	Added support for Kerberos Version 5 authentication: -DKRB5
134
135	Added support for ANSI C function prototypes
136
137	Added support for the NEW-ENVIRON option (RFC-1572)
138	including support for USERVAR.
139
140	Made support for the old Environment Option (RFC-1408)
141	conditional on -DOLD_ENVIRON
142
143	Added #define ENV_HACK - support for RFC 1571
144
145	The encryption code is removed from the public distributions.
146	Domestic 4.4 BSD distributions contain the encryption code.
147
148	ENV_HACK: Code to deal with systems that only implement
149		the old ENVIRON option, and have reversed definitions
150		of ENV_VAR and ENV_VAL.  Also fixes ENV processing in
151		client to handle things besides just the default set...
152
153	NO_BSD_SETJMP: UNICOS configuration for
154		UNICOS 6.1/6.0/5.1/5.0 systems.
155
156	STREAMSPTY: Use /dev/ptmx to get a clean pty.  This
157		is for SVr4 derivatives (Like Solaris)
158
159	UTMPX: For systems that have /etc/utmpx. This is for
160		SVr4 derivatives (Like Solaris)
161
162	Definitions for BSDI 1.0
163
164	Definitions for 4.3 Reno and 4.4 BSD.
165
166	Definitions for UNICOS 8.0 and UNICOS 7.C
167
168	Definitions for Solaris 2.0
169
170	Definitions for HP-UX 8.0
171
172	Latest Copyright notices from Berkeley.
173
174	FLOW-CONTROL: support for RFC-XXXx
175
176
177   Client Specific:
178
179	Fix the "send" command to not send garbage...
180
181	Fix status message for "skiprc"
182
183	Make sure to send NAWS after telnet has been suspended
184	or an external command has been run, if the window size
185	has changed.
186
187	sysV88 support.
188
189   Server Specific:
190
191	Support flowcontrol option in non-linemode servers.
192
193	-k Server supports Kludge Linemode, but will default to
194	   either single character mode or real Linemode support.
195	   The user will have to explicitly ask to switch into
196	   kludge linemode. ("stty extproc", or escape back to
197	   to telnet and say "mode line".)
198
199	-u Specify the length of the hostname field in the utmp
200	   file.  Hostname longer than this length will be put
201	   into the utmp file in dotted decimal notation, rather
202	   than putting in a truncated hostname.
203
204	-U Registered hosts only.  If a reverse hostname lookup
205	   fails, the connection will be refused.
206
207	-f/-F
208	   Allows forwarding of credentials for KRB5.
209
210Februrary 22, 1991:
211
212    Features:
213
214	This version of telnet/telnetd has support for both
215	the AUTHENTICATION and ENCRYPTION options.  The
216	AUTHENTICATION option is fairly well defined, and
217	an option number has been assigned to it.  The
218	ENCRYPTION option is still in a state of flux; an
219	option number has been assigned to, but it is still
220	subject to change.  The code is provided in this release
221	for experimental and testing purposes.
222
223	The telnet "send" command can now be used to send
224	do/dont/will/wont commands, with any telnet option
225	name.  The rules for when do/dont/will/wont are sent
226	are still followed, so just because the user requests
227	that one of these be sent doesn't mean that it will
228	be sent...
229
230	The telnet "getstatus" command no longer requires
231	that option printing be enabled to see the response
232	to the "DO STATUS" command.
233
234	A -n flag has been added to telnetd to disable
235	keepalives.
236
237	A new telnet command, "auth" has been added (if
238	AUTHENTICATE is defined).  It has four sub-commands,
239	"status", "disable", "enable" and "help".
240
241	A new telnet command, "encrypt" has been added (if
242	ENCRYPT is defined).  It has many sub-commands:
243	"enable", "type", "start", "stop", "input",
244	"-input", "output", "-output", "status", and "help".
245
246	The LOGOUT option is now supported by both telnet
247	and telnetd, a new command, "logout", was added
248	to support this.
249
250	Several new toggle options were added:
251	    "autoencrypt", "autodecrypt", "autologin", "authdebug",
252	    "encdebug", "skiprc", "verbose_encrypt"
253
254	An "rlogin" interface has been added.  If the program
255	is named "rlogin", or the "-r" flag is given, then
256	an rlogin type of interface will be used.
257		~.	Terminates the session
258		~<susp> Suspend the session
259		~^]	Escape to telnet command mode
260		~~	Pass through the ~.
261	    BUG: If you type the rlogin escape character
262		 in the middle of a line while in rlogin
263		 mode, you cannot erase it or any characters
264		 before it.  Hopefully this can be fixed
265		 in a future release...
266
267    General changes:
268
269	A "libtelnet.a" has now been created.  This libraray
270	contains code that is common to both telnet and
271	telnetd.  This is also where library routines that
272	are needed, but are not in the standard C library,
273	are placed.
274
275	The makefiles have been re-done.  All of the site
276	specific configuration information has now been put
277	into a single "Config.generic" file, in the top level
278	directory.  Changing this one file will take care of
279	all three subdirectories.  Also, to add a new/local
280	definition, a "Config.local" file may be created
281	at the top level; if that file exists, the subdirectories
282	will use that file instead of "Config.generic".
283
284	Many 1-2 line functions in commands.c have been
285	removed, and just inserted in-line, or replaced
286	with a macro.
287
288    Bug Fixes:
289
290	The non-termio code in both telnet and telnetd was
291	setting/clearing CTLECH in the sg_flags word.  This
292	was incorrect, and has been changed to set/clear the
293	LCTLECH bit in the local mode word.
294
295	The SRCRT #define has been removed.  If IP_OPTIONS
296	and IPPROTO_IP are defined on the system, then the
297	source route code is automatically enabled.
298
299	The NO_GETTYTAB #define has been removed; there
300	is a compatibility routine that can be built into
301	libtelnet to achive the same results.
302
303	The server, telnetd, has been switched to use getopt()
304	for parsing the argument list.
305
306	The code for getting the input/output speeds via
307	cfgetispeed()/cfgetospeed() was still not quite
308	right in telnet.  Posix says if the ispeed is 0,
309	then it is really equal to the ospeed.
310
311	The suboption processing code in telnet now has
312	explicit checks to make sure that we received
313	the entire suboption (telnetd was already doing this).
314
315	The telnet code for processing the terminal type
316	could cause a core dump if an existing connection
317	was closed, and a new connection opened without
318	exiting telnet.
319
320	Telnetd was doing a TCSADRAIN when setting the new
321	terminal settings;  This is not good, because it means
322	that the tcsetattr() will hang waiting for output to
323	drain, and telnetd is the only one that will drain
324	the output...  The fix is to use TCSANOW which does
325	not wait.
326
327	Telnetd was improperly setting/clearing the ISTRIP
328	flag in the c_lflag field, it should be using the
329	c_iflag field.
330
331	When the child process of telnetd was opening the
332	slave side of the pty, it was re-setting the EXTPROC
333	bit too early, and some of the other initialization
334	code was wiping it out.  This would cause telnetd
335	to go out of linemode and into single character mode.
336
337	One instance of leaving linemode in telnetd forgot
338	to send a WILL ECHO to the client, the net result
339	would be that the user would see double character
340	echo.
341
342	If the MODE was being changed several times very
343	quickly, telnetd could get out of sync with the
344	state changes and the returning acks; and wind up
345	being left in the wrong state.
346
347September 14, 1990:
348
349	Switch the client to use getopt() for parsing the
350	argument list.  The 4.3Reno getopt.c is included for
351	systems that don't have getopt().
352
353	Use the posix _POSIX_VDISABLE value for what value
354	to use when disabling special characters.  If this
355	is undefined, it defaults to 0x3ff.
356
357	For non-termio systems, TIOCSETP was being used to
358	change the state of the terminal.  This causes the
359	input queue to be flushed, which we don't want.  This
360	is now changed to TIOCSETN.
361
362	Take out the "#ifdef notdef" around the code in the
363	server that generates a "sync" when the pty oputput
364	is flushed.  The potential problem is that some older
365	telnet clients may go into an infinate loop when they
366	receive a "sync", if so, the server can be compiled
367	with "NO_URGENT" defined.
368
369	Fix the client where it was setting/clearing the OPOST
370	bit in the c_lflag field, not the c_oflag field.
371
372	Fix the client where it was setting/clearing the ISTRIP
373	bit in the c_lflag field, not the c_iflag field.  (On
374	4.3Reno, this is the ECHOPRT bit in the c_lflag field.)
375	The client also had its interpretation of WILL BINARY
376	and DO BINARY reversed.
377
378	Fix a bug in client that would cause a core dump when
379	attempting to remove the last environment variable.
380
381	In the client, there were a few places were switch()
382	was being passed a character, and if it was a negative
383	value, it could get sign extended, and not match
384	the 8 bit case statements.  The fix is to and the
385	switch value with 0xff.
386
387	Add a couple more printoption() calls in the client, I
388	don't think there are any more places were a telnet
389	command can be received and not printed out when
390	"options" is on.
391
392	A new flag has been added to the client, "-a".  Currently,
393	this just causes the USER name to be sent across, in
394	the future this may be used to signify that automatic
395	authentication is requested.
396
397	The USER variable is now only sent by the client if
398	the "-a" or "-l user" options are explicity used, or
399	if the user explicitly asks for the "USER" environment
400	variable to be exported.  In the server, if it receives
401	the "USER" environment variable, it won't print out the
402	banner message, so that only "Password:" will be printed.
403	This makes the symantics more like rlogin, and should be
404	more familiar to the user.  (People are not used to
405	getting a banner message, and then getting just a
406	"Password:" prompt.)
407
408	Re-vamp the code for starting up the child login
409	process.  The code was getting ugly, and it was
410	hard to tell what was really going on.  What we
411	do now is after the fork(), in the child:
412		1) make sure we have no controlling tty
413		2) open and initialize the tty
414		3) do a setsid()/setpgrp()
415		4) makes the tty our controlling tty.
416	On some systems, #2 makes the tty our controlling
417	tty, and #4 is a no-op.  The parent process does
418	a gets rid of any controlling tty after the child
419	is fork()ed.
420
421	Use the strdup() library routine in telnet, instead
422	of the local savestr() routine.  If you don't have
423	strdup(), you need to define NO_STRDUP.
424
425	Add support for ^T (SIGINFO/VSTATUS), found in the
426	4.3Reno distribution.  This maps to the AYT character.
427	You need a 4-line bugfix in the kernel to get this
428	to work properly:
429
430	> *** tty_pty.c.ORG	Tue Sep 11 09:41:53 1990
431	> --- tty_pty.c	Tue Sep 11 17:48:03 1990
432	> ***************
433	> *** 609,613 ****
434	> 			if ((tp->t_lflag&NOFLSH) == 0)
435	> 				ttyflush(tp, FREAD|FWRITE);
436	> ! 			pgsignal(tp->t_pgrp, *(unsigned int *)data);
437	> 			return(0);
438	> 		}
439	> --- 609,616 ----
440	> 			if ((tp->t_lflag&NOFLSH) == 0)
441	> 				ttyflush(tp, FREAD|FWRITE);
442	> ! 			pgsignal(tp->t_pgrp, *(unsigned int *)data, 1);
443	> ! 			if ((*(unsigned int *)data == SIGINFO) &&
444	> ! 			    ((tp->t_lflag&NOKERNINFO) == 0))
445	> ! 				ttyinfo(tp);
446	> 			return(0);
447	> 		}
448
449	The client is now smarter when setting the telnet escape
450	character; it only sets it to one of VEOL and VEOL2 if
451	one of them is undefined, and the other one is not already
452	defined to the telnet escape character.
453
454	Handle TERMIOS systems that have separate input and output
455	line speed settings imbedded in the flags.
456
457	Many other minor bug fixes.
458
459June 20, 1990:
460	Re-organize makefiles and source tree.  The telnet/Source
461	directory is now gone, and all the source that was in
462	telnet/Source is now just in the telnet directory.
463
464	Separate makefile for each system are now gone.  There
465	are two makefiles, Makefile and Makefile.generic.
466	The "Makefile" has the definitions for the various
467	system, and "Makefile.generic" does all the work.
468	There is a variable called "WHAT" that is used to
469	specify what to make.  For example, in the telnet
470	directory, you might say:
471		make 4.4bsd WHAT=clean
472	to clean out the directory.
473
474	Add support for the ENVIRON and XDISPLOC options.
475	In order for the server to work, login has to have
476	the "-p" option to preserve environment variables.
477
478	Add the SOFT_TAB and LIT_ECHO modes in the LINEMODE support.
479
480	Add the "-l user" option to command line and open command
481	(This is passed through the ENVIRON option).
482
483	Add the "-e" command line option, for setting the escape
484	character.
485
486	Add the "-D", diagnostic, option to the server.  This allows
487	the server to print out debug information, which is very
488	useful when trying to debug a telnet that doesn't have any
489	debugging ability.
490
491	Turn off the literal next character when not in LINEMODE.
492
493	Don't recognize ^Y locally, just pass it through.
494
495	Make minor modifications for Sun4.0 and Sun4.1
496
497	Add support for both FORW1 and FORW2 characters.  The
498	telnet escpape character is set to whichever of the
499	two is not being used.  If both are in use, the escape
500	character is not set, so when in linemode the user will
501	have to follow the escape character with a <CR> or <EOF)
502	to get it passed through.
503
504	Commands can now be put in single and double quotes, and
505	a backslash is now an escape character.  This is needed
506	for allowing arbitrary strings to be assigned to environment
507	variables.
508
509	Switch telnetd to use macros like telnet for keeping
510	track of the state of all the options.
511
512	Fix telnetd's processing of options so that we always do
513	the right processing of the LINEMODE option, regardless
514	of who initiates the request to turn it on.  Also, make
515	sure that if the other side went "WILL ECHO" in response
516	to our "DO ECHO", that we send a "DONT ECHO" to get the
517	option turned back off!
518
519	Fix the TERMIOS setting of the terminal speed to handle both
520	BSD's separate fields, and the SYSV method of CBAUD bits.
521
522	Change how we deal with the other side refusing to enable
523	an option.  The sequence used to be: send DO option; receive
524	WONT option; send DONT option.  Now, the sequence is: send
525	DO option; receive WONT option.  Both should be valid
526	according to the spec, but there has been at least one
527	client implementation of telnet identified that can get
528	really confused by this.  (The exact sequence, from a trace
529	on the server side, is (numbers are number of responses that
530	we expect to get after that line...):
531
532		send WILL ECHO	1 (initial request)
533		send WONT ECHO	2 (server is changing state)
534		recv DO ECHO	1 (first reply, ok.  expect DONT ECHO next)
535		send WILL ECHO	2 (server changes state again)
536		recv DONT ECHO	1 (second reply, ok.  expect DO ECHO next)
537		recv DONT ECHO	0 (third reply, wrong answer. got DONT!!!)
538	***	send WONT ECHO	  (send WONT to acknowledge the DONT)
539		send WILL ECHO	1 (ask again to enable option)
540		recv DO ECHO	0
541
542		recv DONT ECHO	0
543		send WONT ECHO	1
544		recv DONT ECHO	0
545		recv DO ECHO	1
546		send WILL ECHO	0
547		(and the last 5 lines loop forever)
548
549	The line with the "***" is last of the WILL/DONT/WONT sequence.
550	The change to the server to not generate that makes this same
551	example become:
552
553		send will ECHO	1
554		send wont ECHO	2
555		recv do ECHO	1
556		send will ECHO	2
557		recv dont ECHO	1
558		recv dont ECHO	0
559		recv do ECHO	1
560		send will ECHO	0
561
562	There is other option negotiation going on, and not sending
563	the third part changes some of the timings, but this specific
564	example no longer gets stuck in a loop.  The "telnet.state"
565	file has been modified to reflect this change to the algorithm.
566
567	A bunch of miscellaneous bug fixes and changes to make
568	lint happier.
569
570	This version of telnet also has some KERBEROS stuff in
571	it. This has not been tested, it uses an un-authorized
572	telnet option number, and uses an out-of-date version
573	of the (still being defined) AUTHENTICATION option.
574	There is no support for this code, do not enable it.
575
576
577March 1, 1990:
578CHANGES/BUGFIXES SINCE LAST RELEASE:
579	Some support for IP TOS has been added.  Requires that the
580	kernel support the IP_TOS socket option (currently this
581	is only in UNICOS 6.0).
582
583	Both telnet and telnetd now use the cc_t typedef.  typedefs are
584	included for systems that don't have it (in termios.h).
585
586	SLC_SUSP was not supported properly before.  It is now.
587
588	IAC EOF was not translated  properly in telnetd for SYSV_TERMIO
589	when not in linemode.  It now saves a copy of the VEOF character,
590	so that when ICANON is turned off and we can't trust it anymore
591	(because it is now the VMIN character) we use the saved value.
592
593	There were two missing "break" commands in the linemode
594	processing code in telnetd.
595
596	Telnetd wasn't setting the kernel window size information
597	properly.  It was using the rows for both rows and columns...
598
599Questions/comments go to
600		David Borman
601		Cray Research, Inc.
602		655F Lone Oak Drive
603		Eagan, MN 55123
604		dab@cray.com.
605
606README:	You are reading it.
607
608Config.generic:
609	This file contains all the OS specific definitions.  It
610	has pre-definitions for many common system types, and is
611	in standard makefile fromat.  See the comments at the top
612	of the file for more information.
613
614Config.local:
615	This is not part of the distribution, but if this file exists,
616	it is used instead of "Config.generic".  This allows site
617	specific configuration without having to modify the distributed
618	"Config.generic" file.
619
620kern.diff:
621	This file contains the diffs for the changes needed for the
622	kernel to support LINEMODE is the server.  These changes are
623	for a 4.3BSD system.  You may need to make some changes for
624	your particular system.
625
626	There is a new bit in the terminal state word, TS_EXTPROC.
627	When this bit is set, several aspects of the terminal driver
628	are disabled.  Input line editing, character echo, and
629	mapping of signals are all disabled.  This allows the telnetd
630	to turn of these functions when in linemode, but still keep
631	track of what state the user wants the terminal to be in.
632
633	New ioctl()s:
634
635		TIOCEXT		Turn on/off the TS_EXTPROC bit
636		TIOCGSTATE	Get t_state of tty to look at TS_EXTPROC bit
637		TIOCSIG		Generate a signal to processes in the
638				current process group of the pty.
639
640	There is a new mode for packet driver, the TIOCPKT_IOCTL bit.
641	When packet mode is turned on in the pty, and the TS_EXTPROC
642	bit is set, then whenever the state of the pty is changed, the
643	next read on the master side of the pty will have the TIOCPKT_IOCTL
644	bit set, and the data will contain the following:
645		struct xx {
646			struct sgttyb a;
647			struct tchars b;
648			struct ltchars c;
649			int t_state;
650			int t_flags;
651		}
652	This allows the process on the server side of the pty to know
653	when the state of the terminal has changed, and what the new
654	state is.
655
656	However, if you define USE_TERMIO or SYSV_TERMIO, the code will
657	expect that the structure returned in the TIOCPKT_IOCTL is
658	the termio/termios structure.
659
660stty.diff:
661	This file contains the changes needed for the stty(1) program
662	to report on the current status of the TS_EXTPROC bit.  It also
663	allows the user to turn on/off the TS_EXTPROC bit.  This is useful
664	because it allows the user to say "stty -extproc", and the
665	LINEMODE option will be automatically disabled, and saying "stty
666	extproc" will re-enable the LINEMODE option.
667
668telnet.state:
669	Both the client and server have code in them to deal
670	with option negotiation loops.  The algorithm that is
671	used is described in this file.
672
673telnet:
674	This directory contains the client code.  No kernel changes are
675	needed to use this code.
676
677telnetd:
678	This directory contains the server code.  If LINEMODE or KLUDGELINEMODE
679	are defined, then the kernel modifications listed above are needed.
680
681libtelnet:
682	This directory contains code that is common to both the client
683	and the server.
684
685arpa:
686	This directory has a new <arpa/telnet.h>
687
688libtelnet/Makefile.4.4:
689telnet/Makefile.4.4:
690telnetd/Makefile.4.4:
691	These are the makefiles that can be used on a 4.3Reno
692	system when this software is installed in /usr/src/lib/libtelnet,
693	/usr/src/libexec/telnetd, and /usr/src/usr.bin/telnet.
694
695
696The following TELNET options are supported:
697
698	LINEMODE:
699		The LINEMODE option is supported as per RFC1116.  The
700		FORWARDMASK option is not currently supported.
701
702	BINARY: The client has the ability to turn on/off the BINARY
703		option in each direction.  Turning on BINARY from
704		server to client causes the LITOUT bit to get set in
705		the terminal driver on both ends,  turning on BINARY
706		from the client to the server causes the PASS8 bit
707		to get set in the terminal driver on both ends.
708
709	TERMINAL-TYPE:
710		This is supported as per RFC1091.  On the server side,
711		when a terminal type is received, termcap/terminfo
712		is consulted to determine if it is a known terminal
713		type.  It keeps requesting terminal types until it
714		gets one that it recongnizes, or hits the end of the
715		list.  The server side looks up the entry in the
716		termcap/terminfo data base, and generates a list of
717		names which it then passes one at a time to each
718		request for a terminal type, duplicating the last
719		entry in the list before cycling back to the beginning.
720
721	NAWS:	The Negotiate about Window Size, as per RFC 1073.
722
723	TERMINAL-SPEED:
724		Implemented as per RFC 1079
725
726	TOGGLE-FLOW-CONTROL:
727		Implemented as per RFC 1080
728
729	TIMING-MARK:
730		As per RFC 860
731
732	SGA:	As per RFC 858
733
734	ECHO:	As per RFC 857
735
736	LOGOUT: As per RFC 727
737
738	STATUS:
739		The server will send its current status upon
740		request.  It does not ask for the clients status.
741		The client will request the servers current status
742		from the "send getstatus" command.
743
744	ENVIRON:
745		This option is currently being defined by the IETF
746		Telnet Working Group, and an RFC has not yet been
747		issued, but should be in the near future...
748
749	X-DISPLAY-LOCATION:
750		This functionality can be done through the ENVIRON
751		option, it is added here for completeness.
752
753	AUTHENTICATION:
754		This option is currently being defined by the IETF
755		Telnet Working Group, and an RFC has not yet been
756		issued.  The basic framework is pretty much decided,
757		but the definitions for the specific authentication
758		schemes is still in a state of flux.
759
760	ENCRYPTION:
761		This option is currently being defined by the IETF
762		Telnet Working Group, and an RFC has not yet been
763		issued.  The draft RFC is still in a state of flux,
764		so this code may change in the future.
765