Return to BSD News archive
Xref: sserve comp.bugs.4bsd:1913 comp.unix.bsd:8076 Newsgroups: comp.bugs.4bsd,comp.unix.bsd Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!charon.amdahl.com!pacbell.com!sgiblab!spool.mu.edu!agate!stanford.edu!CSD-NewsHost.Stanford.EDU!CS.Stanford.EDU!jonathan From: jonathan@CS.Stanford.EDU (Jonathan Stone) Subject: Bug in 386BSD, Net-2 telnets, Berkeley telnet.91.03.25: "send ayt" doesn' t work Message-ID: <1992Nov17.041308.5252@CSD-NewsHost.Stanford.EDU> Followup-To: comp.bugs.4bsd Sender: news@CSD-NewsHost.Stanford.EDU Organization: Computer Science Department, Stanford University. Date: Tue, 17 Nov 1992 04:13:08 GMT Lines: 66 [[This may be very old news, but I don't recall seeing it before, and archie hasn't helped me find any source code with the bug fixed. If it is old news, apologies, and please let me know via mail. ]] Index:: telnet SEND command broken in client (e.g., SEND AYT) Synopsis:: Sending simple options, such as AYT, doesn't work. Repeat-by:: build a telnet client from any of the above source code. (the relevant file differs only in copyright notices and one debugging statement for all three of the above releases). Start a telnet with the command "telnet". Type "show options", then "connect <somehost>", where <somehost> is a host that understands the AYT option. Type a telnet escape and then "send ayt". Observe that the telnet options debugging shows junk, viz: telnet> send ayt SENT IAC 268439864 Diagnosis:: In commands.c:sendcmd(), options that don't have a special handler function are sent by NET2ADD(IAC, what). The local variable "what" is never assigned, resulting in junk being sent to the telnet server. Fix:: The patch below works for me with telnet.91.03.25 source compiled on a Decstation. the relevant file differs only in copyright notices and one debugging statement for all three of the above releases: net-2, the March 1989 telnet release, and BSD *** commands.c.DIST Mon Mar 25 14:14:23 1991 --- commands.c Mon Nov 16 19:36:52 1992 *************** *** 277,283 **** int argc; char **argv; { - int what; /* what we are sending this time */ int count; /* how many bytes we are going to need to send */ int i; int question = 0; /* was at least one argument a question */ --- 277,282 ---- *************** *** 350,357 **** (s->narg > 1) ? argv[i+2] : 0); i += s->narg; } else { ! NET2ADD(IAC, what); ! printoption("SENT", IAC, what); } } return (count == success); --- 349,356 ---- (s->narg > 1) ? argv[i+2] : 0); i += s->narg; } else { ! NET2ADD(IAC, s->what); ! printoption("SENT", IAC, s->what); } } return (count == success);