[6055] in Athena Bugs
[daemon@ATHENA.MIT.EDU : [dab@berserkly.cray.com: Telnet/telnet release]]
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Mon Sep 17 19:06:30 1990
Date: Mon, 17 Sep 90 19:06:15 -0400
From: "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>
To: bugs@ATHENA.MIT.EDU
------- Forwarded transaction
[2454] daemon@ATHENA.MIT.EDU (Mark Rosenstein) Release_Engineering 09/17/90 15:40 (118 lines)
Subject: [dab@berserkly.cray.com: Telnet/telnet release]
Date: Mon, 17 Sep 90 15:39:50 -0400
From: Mark Rosenstein <mar@MIT.EDU>
To: rel-eng@MIT.EDU
Date: Fri, 14 Sep 90 17:28:38 -0500
From: dab@berserkly.cray.com (David Borman)
To: tcp-ip@nic.ddn.mil
Subject: Telnet/telnet release
A new BSD version of telnet and telnetd are now available for anonymous
ftp from ucbarpa.berkeley.edu. There are two files:
pub/telnet.90.09.14.tar.Z All the sources
pub/telnet.90.09.14.diff.Z Diffs from telnet.90.06.28
This release contains mostly bugfixes, and some POSIX changes.
If you are using one of my earlier version of telnet/telnetd, you'll
probably want to get this new version. My list of changes started
out pretty small, but then as time went by, more and more little
problems were discovered. There are no major functionality changes
with this release. If you have to make changes to get this code
running on your machine, please send me the changes and I'll try
to get them into the next release.
-David Borman, dab@cray.com
This list was extraced from the README giving more detail as to what
is changed with this release:
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.
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.
--[2454]-- (nref = [2455])
------- End forwarded transaction