📄 ckc211.txt
字号:
C-KERMIT CHANGE LOG (Changes since 8.0.200 of 12 Dec 2001)Chronological order: Go to the bottom to find the newest edits.---8.0.200---Known bugs (+ = fixed after release): + 1. tilde_expand() can call getcwd() with NULL arg. + 2. getexedir() called too early (fatal in combination with (1)). + 3. Kermit "get blah" where blah is a symlink; server refuses to send it. Should not do this if GET not recursive. ? 4. Dave Sneddon's report about VMS fore/background confusion. + 5. FTP GET path/file doesn't work - path not stripped - but MGET works. + 6. IRIX 5.3 compilation problems (have patches from Marcus Herbert) X 7. Filename completion bug (see below) (deferred). + 8. QNX6 herald and other problems.-------------Merged Jeff's changes, 20 Dec 2001: . Changed all occurrences of "ttnproto == NP_TELNET" to "IS_TELNET()" to account for the difference between SSH and Telnet. ckuscr.c, ckuus[3457].c, ckcnet.h, ckcfns.c, ckudia.c, ckutio.c, ckucon.c, ckucns.c. . Moved SSH pty failure warnings. ckuusr.c. . Security adjustments to FTP module, plus fix an error message. ckcftp.c. . Adjustment of some security-related #ifdefs. ckcdeb.h, ckuus2.c, ckctel.c. . Guard against calling getpwnam() with a NULL arg in tilde_expand() ckufio.c. . Moved getexedir() call to later, where it's safe. ckcmai.c.Added SSH ADD and many SSH SET commands from Jeff's spec. Fixed SHOW SSHto not dump core if variables weren't set. ckcker.h, ckuus[r3].c, 20 Dec 2001.C-Kermit in server mode, client says "get foo" where foo is a symlink.Server says "no files meet selection criteria" instead of sending the file.It should only refuse to follow symlinks if it's a recursive get. Fixedin sgetinit(): ckcpro.w, 21 Dec 2001.More work on SSH and SET/SHOW SSH commands. ckuus[r3].c, 21 Dec 2001.Undid Jeff's replacement of the SSH pseudoterminal allocation failuremessage, because now it comes out any time an SSH command has to bereparsed (in the non-SSHBUILTIN case). ckuusr.c, 21 Dec 2001.More SSH and SET SSH command work back & forth with Jeff, plus Jeff addedSET HOST /NET:SSH. ckcmai.c, ckuus[r37].c, ckcdeb.h, ckuusr.h, 22 Dec 2001.Added SSH OPEN switches. ckuusr.c, 22 Dec 2001.Added SSH CLEAR, HELP SSH, and HELP SET SSH. ckuus[r2].c, 23 Dec 2001.From Jeff: . SET TCP commands now apply to SSH . SSH V2 REKEY and FORWRD-{LOCAL,REMOTE}-PORT commands now implemented . Missing DLLs automatically disable appropriate authentication mechanisms.ckuusr.c ckcnet.c ckuus3.c ckcmai.c ckcnet.h ckuus4.c, 26 Dec 2001.From Jeff: . Remove SET SSH KEEPALIVES. . Add help text for SSH AGENT { ADD, DELETE, LIST }.ckuus[23].c, 28 Dec 2001.Added parsing for SSH AGENT { ADD, DELETE, LIST }. ckuusr.c, 28 Dec 2001.From Jeff: . Fixed a crash that can happen when making an SSH connection. . Filled in SSH AGENT actions. . Changed default for strict host key check (to ASK) and help text. . uploaded new binaries include ~kermit/os2test/beta/ssh-agent.exe . Read man ssh-agent on ftp.kermit.columbia.edu for details on what it does.ckuus[r23].c, 28 Dec 2001."ftp get path/filename" didn't work; the FTP client did not strip the pathfrom the local copy of the filename when doing a GET, even though it didfor MGET. Diagnosis: in doftpget(), the "if (!getone && !skipthis)" statementlacked an "else" part for the getone case. ckcftp.c, 28 Dec 2001.A while back Jeff reported that in FTP MGET, if you cancel a file with 'x',all the rest of the files arrive truncated to 0 bytes. I tried this on bothUnix and Windows and couldn't reproduce it.In the last-minute flurry to release C-Kermit 8.0, I thought I noticed the FTPclient failing to update the fullscreen file-transfer display. But it seemsto work right, at least in Unix. When downloading a big file with FTP, allthe display fields are updated as expected. But smaller files might go by toofast for the display to do anything. HOWEVER, in K95 the file transferdisplay does not update itself until the end of the file, even if the filetakes a long time to transfer. This happens in both the Console and GUIversions. A thread thing? (Jeff says no.) Yet the same display works fineon Telnet connections.In IRIX 5.3, the select()-based CONNECT module had to include <sys/time.h>or else it blew up with "struct timeval" unknown. Since there already wasa SYSTIMEH CFLAG, I added the #include within #ifdef SYSTIMEH..#endif andrebuilt with KFLAGS=-DSYSTIMEH, only to discover that the irix5* targetsdidn't bother to propogate KFLAGS. Fixed in ckucns.c, makefile, 30 Dec 2001.Increased IRIX5x Olimit from 2400 to 3000 because of ckuus[34].c. Added-ansi, since (Marcus Herbert reported) we were not actually getting ANSI-Ccompilation even though CK_ANSIC was defined. But now that we are, we getwarnings in <netinet/tcp.h>, which is included by ckcnet.h: bit-field 'th_off' type required to be int, unsigned int, or signed int. (3.5.2.1(30)) u_char th_off:4, ------ ^Tough. makefile, 30 Dec 2001.But adding -ansi to the IRIX 5x targets also make compilation bomb whenever wereferenced fdopen() or popen(), which evidently don't have prototypes in anyof the header files. Luckily we already have CFLAGS for this occasion too:DCLFDOPEN and DCLPOPEN. Added these to the irix51 target. Also had to copythe fdopen()-popen() prototype section to ckuusx.c, which has a new referenceto fdopen() in a workaround for the curses console buffering bug. makefile,ckuusx.c, 30 Dec 2001.The QNX6 version did not receive a proper herald (it announced itself as"unknown version". Reshuffled #ifdefs in ckuver.h, added display of QNX6and NEUTRINO symbols to ckuus5.c, 30 Dec 2001.Lucas Hart sent in a patch for the VMS problem. Apparently it was even worsethan Dave Sneddon had reported: 8.0 couldn't run at all under Batch. ckvtio.c,31 Dec 2001.A major obstacle to the usability of the FTP client is that certain commandsdon't behave as FTP users expect: CD, DIR, DELETE, MKDIR, etc, which are localrather remote, and there are no LCD (etc), USER, or ACCOUNT commands. Wecould fix this by adding an FTP command-language personality, but filemanagement commands can also be remote or local on connections to Kermitservers too. So:SET LOCUS { LOCAL, REMOTE, AUTO } Sets the locus for unprefixed file management commands. When LOCAL, a REMOTE (or R) prefix is required for to send file management commands to a remote server (e.g. RCD, RDIR). When REMOTE, an L prefix is required to issue local file management commands (e.g. LCD, LDIR). The word LOCAL can't be used as a prefix since it is used for declaring local variables.This applies to all types of connections, and thus is orthogonal to SETGET-PUT-REMOTE, which selects between Kermit and FTP for remote file-transferand management commands.The default LOCUS is AUTO, which means we switch to REMOTE whenever an FTPconnection is made, and to LOCAL whenever a non-FTP connection is made,and switch back accordingly whenever a connnection is closed.Implementation (31 Dec 2001): . None of this is compiled if LOCUS is not defined. . Added XYLOCUS (SET LOCUS) and LOCUS definitions: ckuusr.h. . Override by defining NOLOCUS (which inhibits definition of LOCUS). . Added LOCUS to SET keyword table: ckuusr.c. . Added locus & autolocus variables: ckuusr.c. . Added SET LOCUS parsing and variable setting: ckuus3.c. . Added display of LOCUS setting to SHOW COMMAND: ckuus5.c. . Added automatic locus setting to setlin(): ckuus7.c. . Added automatic locus setting to ftpopen() and ftpclose(): ckcftp.c.How to catch all the places where a Kermit connection is closed? Turns outwe've done this before, when we added the connection log. So I madedologend() take care of locus switching. But dologend() was not compiled inif certain symbols were defined, such as NOLOCAL, or not defined, such asCKLOGDIAL. So I (a) rearranged the #ifdefs so that even if these wouldotherwise have obliviated dologend(), now they leave a piece of it forlocus-setting; (b) moved the prototype out of #ifdefs; and (c) took all callsto it out of #ifdefs. ckcker.h, ckcfn2.c, ckcmai.c, ckucns.c, ckucon.c,ckuus[r347x].c, 31 Dec 2001.Added locus checking to the following commands: DIRECTORY, CD/CWD, CDUP,DELETE, PWD, MKDIR, RMDIR, RENAME. ckuusr.c, 31 Dec 2001.Added LDIRECTORY, LCD/LCWD, LCDUP, LDELETE, LPWD, LMKDIR, LRMDIR,LRENAME. ckuusr.[ch], 31 Dec 2001.Added USER and ACCOUNT commands, which are the same as FTP USER and FTPACCOUNT. ckuusr.[ch], ckcftp.c, 31 Dec 2001.Since automatic locus switching could be a big surprise for most people, Iprinted message any time it changed. ckcftp.c, ckuus[37].c, 31 Dec 2001.Added help text for the new L commands and filled in missing HELP text forSET GET-PUT-REMOTE, CDUP, MKDIR, and RMDIR. ckuus2.c, 31 Dec 2001.Changed help text of CD, DIR, etc, for LOCUS. Changed the help text forRCD, RPWD, RDEL, RDIR, etc, to mention that they also work with FTP servers.Updated HELP REMOTE for this too. ckuus2.c, 31 Dec 2001.Made sure code builds with NOLOCAL, NOLOGDIAL, and NOLOCUS (it does).The IKSD command, when given with a /USER: switch, sends the user ID to theIKSD. But the SET HOST /USER: command does not, when making a connection to aKermit service. This makes it impossible to script IKSD interactions usingonly client commands. Furthermore, even if you include a /PASSWORD switchwith the IKSD command, it does not send the password. I added code near thebottom of setlin() to do this. If we have a connection to a Kermit serviceand a /USER: switch was given, then we attempt a REMOTE LOGIN. If a/PASSWORD: switch was not given then if the username is "ftp" or "anonymous",we automatically supply a password of user@host; otherwise we prompt for apassword. If a /USER: switch was not given, it acts like before. It allworks, but it might not be the best way (or place) to do it. setlin():ckuus7.c, 31 Dec 2001. NOTE: The above change doesn't help with IKSD /USER:anonymous, the server prompts for password anyway, not sure why. NOTE 2: What about secure authentication? We have to test to see if user was already authenticated before sending the login packet.Added /opt/kermit and /opt/kermit/doc to info_dir[] list (for Solaris).ckuus5.c, 31 Dec 2001.From Jeff: new Help text for SET TERM FONT (K95 GUI). ckuus2.c, 1 Jan 2002.More work on help text for file management commands -- e.g. we can't lumpthe L-commands together with the unprefixed ones; they need separate entries.Also: added missing HELP REMOTE PWD, improved the default case (in whichhelp text had been omitted for a valid command). ckuus2.c, 1 Jan 2002.It seems VMS C-Kermit was pretty much ignoring the -B (force background) and-z (force foreground) command-line options. Fixed in congm(): ckvtio.c,1 Jan 2002.Tested the SET LOCUS business with VMS C-Kermit, which does not have abuilt-in FTP client. Of course in this case there is no automatic locusswitching, but SET LOCUS REMOTE works nicely on IKSD connections.From Jeff: . #ifdef adjustments for LOCUS changes. . SSH KEY CREATE /TYPE:SRP. . Fix \v(serial) to not be 8N2 by default if speed is 0. . Don't let doexit() run if sysinit() hasn't been called first.ckuus[r247x].c, 2 Jan 2002.Made SET BACKGROUND { ON, OFF } do exactly the same as -B and -z options.ckuus3.c, 2 Jan 2002.Updated user-visible copyright dates to 2002 (but still need to do all thesource-module comments). ckcmai.c, ckuus[25].c, 2 Jan 2002.Rearranged #include <sys/time.h> in ckucns.c that was done for IRIX 5.3,to avoid conflicts in SV/68 R3v6. 3 Jan 2002.From Dave Sneddon: Code changes in VMS sysinit() and congm() to work aroundproblems in batch, SPAWN'd, etc, and change CTTNAM from TT: to SYS$INPUT:.ckcdeb.h, ckvtio.c, 3 Jan 2002.From Jeff: . Fixed typo in definition of CTTNAM for VMS. ckcdeb.h . Moved macro definitions for SSHBUILTIN from ckuus3.c to ckuusr.h so they can be referenced in ckuus7.c . Added SSH functionality to SET HOST: SET HOST /NET:SSH /CONNECT hostname [port] /switches . Fixed SET NET TYPE so it won't reject SSH if SSH is installed. . Changes to allow IKSD to continue functioning. Somehow this minor change to ckcmai.c got lost in one of the back and forth exchanges. . HELP TEXT for UCS2 kverb . Fix a problem in K95 where multiple threads could be attempting to send a telnet negotiation simultaneously.ckcmai.c ckcdeb.h ckuus2.c ckuus3.c ckuusr.c ckuusr.h ckuus7.c ckctel.cck_crp.c ckuat2.h ckuath.c, 4 Jan 2002.From Jeff: Peter Runestig complaining that the Telnet Forward X code was corrupting data. This resulted in a very thorough examination of the telnet module code and a discovery of some rather significant problems. The root of the problems is the lack of thread safety. To correct this problem the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -