⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.old

📁 里面包含了telnet的客户端和服务器端
💻 OLD
📖 第 1 页 / 共 2 页
字号:
This is a distribution of both client and server telnet.  These programshave been compiled on:			telnet	telnetd	BSD 4.3 Reno	  X	  X	UNICOS 5.1	  X	  X	UNICOS 6.0	  X	  X	UNICOS 6.1	  X	  X	UNICOS 7.0	  X	  X	SunOs 3.5	  X	  X (no linemode in server)	SunOs 4.1	  X	  X (no linemode in server)	DYNIX V3.0.17.9	  X	  X (no linemode in server)	Ultrix 3.1	  X	  X (no linemode in server)	Ultrix 4.0	  X	  X (no linemode in server)In addition, previous versions have been compiled on the followingmachines, but were not available for testing this version.			telnet	telnetd	SunOs 4.0.3c	  X	  X (no linemode in server)	BSD 4.3		  X  	  X (no linemode in server)	DYNIX V3.0.12	  X	  X (no linemode in server)Februrary 22, 1991:    Features:	This version of telnet/telnetd has support for both	the AUTHENTICATION and ENCRYPTION options.  The	AUTHENTICATION option is fairly well defined, and	an option number has been assigned to it.  The	ENCRYPTION option is still in a state of flux; an	option number has NOT been assigned to it yet.	The code is provided in this release for experimental	and testing purposes.	The telnet "send" command can now be used to send	do/dont/will/wont commands, with any telnet option	name.  The rules for when do/dont/will/wont are sent	are still followed, so just because the user requests	that one of these be sent doesn't mean that it will	be sent...	The telnet "getstatus" command no longer requires	that option printing be enabled to see the response	to the "DO STATUS" command.	A -n flag has been added to telnetd to disable	keepalives.	A new telnet command, "auth" has been added (if	AUTHENTICATE is defined).  It has four sub-commands,	"status", "debug", "disable", "enable" and "help".	A new telnet command, "encrypt" has been added (if	ENCRYPT is defined).  It has many sub-commands:	"enable", "type", "start", "stop", "input",	"-input", "output", "-output", "status", "auto",	"verbose", "debug", and "help".	An "rlogin" interface has been added.  If the program	is named "rlogin", or the "-r" flag is given, then	an rlogin type of interface will be used.		~.	Terminates the session		~<susp> Suspend the session		~^]	Escape to telnet command mode		~~	Pass through the ~.	    BUG: If you type the rlogin escape character		 in the middle of a line while in rlogin		 mode, you cannot erase it or any characters		 before it.  Hopefully this can be fixed		 in a future release...    General changes:	A "libtelnet.a" has now been created.  This libraray	contains code that is common to both telnet and	telnetd.  This is also where library routines that	are needed, but are not in the standard C library,	are placed.	The makefiles have been re-done.  All of the site	specific configuration information has now been put	into a single "Config.generic" file, in the top level	directory.  Changing this one file will take care of	all three subdirectories.  Also, to add a new/local	definition, a "Config.local" file may be created	at the top level; if that file exists, the subdirectories	will use that file instead of "Config.generic".	Many 1-2 line functions in commands.c have been	removed, and just inserted in-line, or replaced	with a macro.    Bug Fixes:	The non-termio code in both telnet and telnetd was	setting/clearing CTLECH in the sg_flags word.  This	was incorrect, and has been changed to set/clear the	LCTLECH bit in the local mode word.	The SRCRT #define has been removed.  If IP_OPTIONS	and IPPROTO_IP are defined on the system, then the	source route code is automatically enabled.	The NO_GETTYTAB #define has been removed; there	is a compatability routine that can be built into	libtelnet to achive the same results.	The server, telnetd, has been switched to use getopt()	for parsing the argument list.	The code for getting the input/output speeds via	cfgetispeed()/cfgetospeed() was still not quite	right in telnet.  Posix says if the ispeed is 0,	then it is really equal to the ospeed.	The suboption processing code in telnet now has	explicit checks to make sure that we received	the entire suboption (telnetd was already doing this).	The telnet code for processing the terminal type	could cause a core dump if an existing connection	was closed, and a new connection opened without	exiting telnet.	Telnetd was doing a TCSADRAIN when setting the new	terminal settings;  This is not good, because it means	that the tcsetattr() will hang waiting for output to	drain, and telnetd is the only one that will drain	the output...  The fix is to use TCSANOW which does	not wait.	Telnetd was improperly setting/clearing the ISTRIP	flag in the c_lflag field, it should be using the	c_iflag field. 	When the child process of telnetd was opening the	slave side of the pty, it was re-setting the EXTPROC	bit too early, and some of the other initialization	code was wiping it out.  This would cause telnetd	to go out of linemode and into single character mode.	One instance of leaving linemode in telnetd forgot	to send a WILL ECHO to the client, the net result	would be that the user would see double character	echo.	If the MODE was being changed several times very	quickly, telnetd could get out of sync with the	state changes and the returning acks; and wind up	being left in the wrong state.September 14, 1990:	Switch the client to use getopt() for parsing the	argument list.  The 4.3Reno getopt.c is included for	systems that don't have getopt().	Use the posix _POSIX_VDISABLE value for what value	to use when disabling special characters.  If this	is undefined, it defaults to 0x3ff.	For non-termio systems, TIOCSETP was being used to	change the state of the terminal.  This causes the	input queue to be flushed, which we don't want.  This	is now changed to TIOCSETN.	Take out the "#ifdef notdef" around the code in the	server that generates a "sync" when the pty oputput	is flushed.  The potential problem is that some older	telnet clients may go into an infinate loop when they	receive a "sync", if so, the server can be compiled	with "NO_URGENT" defined.	Fix the client where it was setting/clearing the OPOST	bit in the c_lflag field, not the c_oflag field.	Fix the client where it was setting/clearing the ISTRIP	bit in the c_lflag field, not the c_iflag field.  (On	4.3Reno, this is the ECHOPRT bit in the c_lflag field.)	The client also had its interpretation of WILL BINARY	and DO BINARY reversed.	Fix a bug in client that would cause a core dump when	attempting to remove the last environment variable.	In the client, there were a few places were switch()	was being passed a character, and if it was a negative	value, it could get sign extended, and not match	the 8 bit case statements.  The fix is to and the	switch value with 0xff.	Add a couple more printoption() calls in the client, I	don't think there are any more places were a telnet	command can be received and not printed out when	"options" is on.	A new flag has been added to the client, "-a".  Currently,	this just causes the USER name to be sent across, in	the future this may be used to signify that automatic	authentication is requested.	The USER variable is now only sent by the client if	the "-a" or "-l user" options are explicity used, or	if the user explicitly asks for the "USER" environment	variable to be exported.  In the server, if it receives	the "USER" environment variable, it won't print out the	banner message, so that only "Password:" will be printed.	This makes the symantics more like rlogin, and should be	more familiar to the user.  (People are not used to	getting a banner message, and then getting just a	"Password:" prompt.)	Re-vamp the code for starting up the child login	process.  The code was getting ugly, and it was	hard to tell what was really going on.  What we	do now is after the fork(), in the child:		1) make sure we have no controlling tty		2) open and initialize the tty		3) do a setsid()/setpgrp()		4) makes the tty our controlling tty.	On some systems, #2 makes the tty our controlling	tty, and #4 is a no-op.  The parent process does	a gets rid of any controlling tty after the child	is fork()ed.	Use the strdup() library routine in telnet, instead	of the local savestr() routine.  If you don't have	strdup(), you need to define NO_STRDUP.	Add support for ^T (SIGINFO/VSTATUS), found in the	4.3Reno distribution.  This maps to the AYT character.	You need a 4-line bugfix in the kernel to get this	to work properly:	> *** tty_pty.c.ORG	Tue Sep 11 09:41:53 1990	> --- tty_pty.c	Tue Sep 11 17:48:03 1990	> ***************	> *** 609,613 ****	> 			if ((tp->t_lflag&NOFLSH) == 0)	> 				ttyflush(tp, FREAD|FWRITE);	> ! 			pgsignal(tp->t_pgrp, *(unsigned int *)data);	> 			return(0);	> 		}	> --- 609,616 ----	> 			if ((tp->t_lflag&NOFLSH) == 0)	> 				ttyflush(tp, FREAD|FWRITE);	> ! 			pgsignal(tp->t_pgrp, *(unsigned int *)data, 1);	> ! 			if ((*(unsigned int *)data == SIGINFO) &&	> ! 			    ((tp->t_lflag&NOKERNINFO) == 0))	> ! 				ttyinfo(tp);	> 			return(0);	> 		}	The client is now smarter when setting the telnet escape	character; it only sets it to one of VEOL and VEOL2 if	one of them is undefined, and the other one is not already	defined to the telnet escape character.	Handle TERMIOS systems that have seperate input and output	line speed settings imbedded in the flags.	Many other minor bug fixes.June 20, 1990:	Re-organize makefiles and source tree.  The telnet/Source	directory is now gone, and all the source that was in	telnet/Source is now just in the telnet directory.	Seperate makefile for each system are now gone.  There	are two makefiles, Makefile and Makefile.generic.	The "Makefile" has the definitions for the various	system, and "Makefile.generic" does all the work.	There is a variable called "WHAT" that is used to	specify what to make.  For example, in the telnet	directory, you might say:		make 4.4bsd WHAT=clean	to clean out the directory.	Add support for the ENVIRON and XDISPLOC options.	In order for the server to work, login has to have	the "-p" option to preserve environment variables.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -