To: wermit-l@wkuvx1.wku.edu Subject: C-Kermit 6.1 Alpha.13 This is to announce C-Kermit 6.1 Alpha.13. Still a closed Alpha, like last time. Mainly just bug fixes to Alpha.12, with a few minor additions. As usual, several new people have been added to the mailing list (see notes at end about how to find out what happened in previous Alphas). (I am purposely not skipping over the number 13, since it is bad luck to be superstitious...) KERMIT + KERBEROS = KERMEROS (*) ??? C-Kermit is now set up to support Kerberos V, and in fact it has been built successfully on Linux with the Cygnus Kerberos V libraries, and can be used for making authenticated connections (see the new "linux+krb" makefile entry). It can even get tickets itself, and it has a whole new repertoire of commands and variables for dealing with Kerberos, which, by the way, all work just fine in Kermit 95, with both Kerberos IV and V (in the forthcoming 1.1.16 version). But (there's always a but...) C-Kermit can't handle encryption yet (even though K95 handles it very nicely). Why? Because the UNIX C-Kermit CONNECT module, ckucon.c, runs in two forks; once the forks split off, the two copies of the Kerberos modules can't see each other any more, and since they rely on shared variables, matters deteriorate rather rapidly (immediately). What about VMS? Since VMS C-Kermit runs in a single process and address space, I think Kerberos support could be added to VMS rather easily if there are Kerberos libraries available for it that use the same APIs as the ones we are using for Windows and UNIX. But let's get UNIX going first. More about Kerberos in the kerberos.txt file. And those of you not in the USA or Canada, remember the US government is picky about letting this stuff cross the border... PROGRAMMING CONTEST Anybody who is interested in having an authenticating and encrypting Kerberized C-Kermit (e.g. for secure scripted file transfers) is invited to help out with the following task, which is totally unrelated to Kerberos itself. This invitation is extended not because we are incapable of doing the work ourselves, but because we can never quite seem to get around to it due to the urgency of so many other items. The task is: Convert ckucon.c to run in a single address space. A little background... ckucon.c uses forks because this is the only mechanism portable across all UNIX versions for accomplishing simultaneous console and communications i/o. Some UNIX versions don't support select(), others do but only if a BSD sockets library is installed, and yet others do only for TCP connections but not on serial connections. And threads... well, even though we were using them happily in TOPS-20 over 20 years ago, they still haven't quite caught on or settled down in UNIX. Since Kerberos connections occur only over TCP/IP, it should be safe to assume the presence of select() (although how one calls it is another matter -- see, e.g., all the #ifdefs in ckutio.c). So ckucon.c can be reconstructed on the model of BSD Telnet. This might also make UNIX CONNECT sessions more snappy in general, obviating the need for the atrocities between the two forks when the echoing state changes, or autodownload or APCs are detected, etc. (Unfortunately, we still need a version of ckucon.c that uses threads rather than select(), because select() doesn't work on the BeBox, and neither do forks. But I think we'll need a separate CONNECT module for BeBox anyway, and I'm afraid any attempts to base portable code on threads is ill-advised.) First prize (well, there isn't really a prize -- "no good deed goes unpunished") (**) goes to whoever can create a ckucon.c module that supports both the dual-fork model (as now) and the select() model (since separate UNIX CONNECT modules will cause giant maintenance headaches) and that keeps all the features of the current module while remaining at least as efficient as it is now -- pay heed to the many tricks that are used to avoid single-character i/o in *each* direction. And remember that the Kermit definition of "portable" is probably a lot more restrictive than yours; see the section on portability in the ckcplm.doc file. (*) The fierce three-headed amphibian of Greek mythology. (**) (I think Dorothy Parker said this first.) Maybe a nice set of Kermit books? Is that punishment enough? GENERAL CHANGES SINCE ALPHA.12 (20 Jan 1998): . Added: \fsplit(string,&array) to put words of string into given array. . Added: \ferrstring(n) returns system error message for code n (UNIX & VMS). . Added: Function-call diagnostics. . Added: SET TCP REVERSE-DNS-LOOKUP { ON, OFF }. . Fixed: Missing error messages from command-line option syntax errors. . Fixed: Nonfunctional CPS display in 2nd and subsequent files in file group. . Fixed: Spurious second "." added to incoming filenames starting with ".". . Fixed: Various problems with array initializers. . Changed: FAST macro to use cautious rather than minimal prefixing. . Uncoupled: Dialing directory lookup messages from SET DIAL DISPLAY ON. . Increased: Command buffer sizes in BIGBUFOK builds. Brief highlights: \fsplit() makes it simple to break up and parse strings received during script execution or from a file; this is merely a generalization of \fword(), added in the previous Alpha. \ferrstring() can be used with \v(errno) and, on VMS (see below), with \v(pexitstatus) (where processes exit with regular VMS error codes). Functions now, for the first time, issue informative messages when they are called incorrectly, or encounter an execution error, and (optionally) cause the command that contains the function call to fail. Diagnostics can be turned on and off. UNIX-SPECIFIC CHANGES . Added: SET FLOW RTS/CTS for IRIX 5.3 and later (needs testing). . Added: New IRIX makefile entry: irix63. . Added: New AIX makefile entries: aix41, aix42, aix43. . Added: -pipe to Linux makefile entry. . Added: +DA1.0 to all HP-UX 10.00 and higher makefile entries. . Fixed: HP-UX 5.21 file-transfer statistics reporting. . Strengthened: Precautions against IRIX Telnet server bug when sending files. Open UNIX issues: . Compilation failures on SunSoft Interactive Unix 4.1. . Reportedly uid/gid switching does not work right on NeXTSTEP 3.3. . C-Kermit not building on FreeBSD 2.2.5 because "_xstr" undefined. . Still no C-Kermit 6.1 version for the BeBox or Plan 9. There have been several (incoherent) reports that C-Kermit 6.0 hangs in AIX 4.2, or actually hangs AIX 4.2 itself, or hangs its ports, but I have not yet been able to obtain clarifications or further details. Other reports indicate that C-Kermit 6.0, when built from source code using the rs6aix41c entry on an AIX 4.2 or 4.3 system, works just fine. Still others verify that the three different C-Kermit 6.0 AIX 4.x binaries that we have at our FTP site and on our CDROM work just fine. It's a mystery. VMS-SPECIFIC CHANGES . Enabled: \v(errno) and \v(errstring) for VMS to show last VMS error. . Enabled: \v(pexitstat) for VMS. . Fixed: Detection of subprocess failure via IF FAIL. . Fixed: Spurious character in terminal screen when modem hangs up. . Fixed: Some message stomping during dialing. Open VMS issues: . I don't have access to Alpha VMS 6.x any more, can't make binaries, sorry. . Inability to transfer certain types of files that Kermit-32 can transfer. . Inability to create or CD to a directory when the directory specification includes a DECnet node. WHERE TO FIND IT C-Kermit 6.1.193 Alpha.13 is in the kermit/test tree at the Kermit ftp site, along with early drafts of all the update documentation, etc: ftp://kermit.columbia.edu/kermit/test/tar/ cku193src.tar.Z Source code (UNIX and VMS), tar, UNIX compress cku193src.tar.gz Source code (UNIX and VMS), tar, gzipped cku193txt.tar.Z Other text files, tar, UNIX compress cku193txt.tar.gz Other text files, tar, gzipped ftp://kermit.columbia.edu/kermit/test/text/ Individual source and text files for UNIX, VMS, OS-9, AOS/VS, Stratus VOS, etc etc. Among the interesting text files: ckermit2.upd -- Detailed documentation of new features since 6.0. ckaaaa.hlp -- Overview of files, file naming conventions, etc. ckc193.upd -- Program edit history since 6.0. ckuins.doc -- UNIX installation instructions. ckvins.doc -- VMS installation instructions. ckvker.bwr -- VMS C-Kermit "beware file" (hints and tips). ckuker.bwr -- UNIX C-Kermit beware file. ckcplm.doc -- Program logic manual, API definition, etc. ckccfg.doc -- Program configuration options. alpha*.txt -- Announcements of each Alpha test. kerberos.txt -- Preliminary documentation of Kerberos features. INDIVIDUAL ALPHA.13 BINARIES: The binaries marked with (+) are Alpha.13, transferred using itself to the Kermit ftp site; the others are earlier 6.1 Alphas (built at sites I can't reach any more or that have since been upgraded to newer OS versions, etc): ftp://kermit.columbia.edu/kermit/test/bin/ + ckdker-aosvsii.pr: DG MV 2500 AOS/VS-II 2.20.73 + ckuker.aix41 IBM RS/6000 AIX 4.1 + ckuker.bsd44-hp9000_300 HP-9000/300 4.4BSD-Lite ckuker.bsdi2-2.1 PC, BSDI 2.1 ckuker.bsdi2-3.0 PC, BSDI 3.0 + ckuker.bsdi2-3.1 PC, BSDI 3.1 + ckuker.du32 DEC Alpha Digital UNIX 3.2 + ckuker.du40 DEC Alpha Digital UNIX 4.0 + ckuker.hpux500wintcp HP-9000/550 HP-UX 5.21 + TWG-TCP/IP 1.2 + ckuker.hpux80-hp9000_385 HP-9000/385 HP-UX 8.00 (no curses, no opt.) + ckuker.hpux80c-hp9000_385 HP-9000/385 HP-UX 8.00 (not optimized) + ckuker.hpux90-hp9000_712 HP-9000/712 HP-UX 9.05 (not optimized) + ckuker.hpux90o700-hp9000_712 HP-9000/712 HP-UX 9.05 (optimized) + ckuker.hpux100-10.20 HP-9000/715/33 HP-UX 10.20 (not optimized) + ckuker.hpux100o-10.20 HP-9000/715/33 HP-UX 10.20 (optimized) + ckuker.irix53 SGI IRIX 5.3 + ckuker.irix62 SGI IRIX 6.2 + ckuker.irix63 SGI IRIX 6.3 + ckuker.linux-1.2.13-i386 PC, Red Hat Linux 1.2.13 + ckuker.next-3.1-mc68040 NeXT 68040 NeXTSTEP 3.1 + ckuker.next33-3.3-mc68040 NeXT 68040 NeXTSTEP 3.3 + ckuker.qnx16 QNX 4.24 16-bit + ckuker.qnx32 QNX 4.24 32-bit + ckuker.sco32v504net PC, SCO OpenServer 5.0.4 + ckuker.sinix542-5.42-mips SNI SINIX 5.4.2 MIPS (RM200) + ckuker.solaris24-2.4-sparc Sun Sparc, Solaris 2.4 + ckuker.solaris2xg-2.4-sparc Sun Sparc, Solaris 2.4 (made with gcc) + ckuker.solaris2x25-2.4-sparc Sun Sparc, Solaris 2.4 + SunLink X.25 + ckuker.solaris25-2.5.1-sparc Sun Sparc, Solaris 2.5.1 + ckuker.solaris25g-2.5.1-sparcSun Sparc, Solaris 2.5.1 (made with gcc) + ckuker.solaris26-2.6-sparc Sun Sparc, Solaris 2.6 + ckuker.sunos41c-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 + ckuker.ultrix42c-4.3-mips DECstation 5000, Ultrix 4.3 + ckuker.unixware2-2.1.1 PC, Unixware 2.1.1 + ckuker.unixware2-2.1.2 PC, Unixware 2.1.2 ckvaker-vms62-nonet.exe: Alpha CPU, VMS 6.2, no TCP/IP ckvaker-vms62-tgv40a.exe: Alpha CPU, VMS 6.2, MultiNet 4.0A + ckvaker-vms71-nonet.exe: Alpha CPU, VMS 7.1, no TCP/IP + ckvaker-vms71-tgv40b.exe: Alpha CPU, VMS 7.1, MultiNet 4.0B + ckvvker-vms55-nonet.exe: VAX CPU, VMS 5.5-2, no TCP/IP + ckvvker-vms55-ucx20.exe: VAX CPU, VMS 5.5-2, UCX 2.0 ckvvker-vms61-nonet.exe: VAX CPU, VMS 6.1, no TCP/IP + ckvvker-vms61-tgv40a.exe: VAX CPU, VMS 6.1, MultiNet 4.0AX + ckvvker-vms71-nonet.exe: VAX CPU, VMS 7.1, no TCP/IP + ckvvker-vms71-tgv40b.exe: VAX CPU, VMS 7.1, MultiNet 4.0B STANDARD CANNED FINISH: I'd be glad to do more of these myself and spare you the trouble -- for that I'd need guest IDs on systems or configurations not listed above, to which I can Telnet from here, and which have the necessary C compilers, header files, and libraries. C-Kermit 6.1 has not yet been checked out in OS-9, Atari ST, or Macintosh -- volunteers? (But VOS and Amiga work is in progress.) Thanks to all of you for your help with and comments on this version so far! Please continue to beat on it and send any bug reports straight to me. If you do succeed in building it on a platform not listed above, please let me know the details (machine make & model, OS and version, separate TCP/IP product, if any, and the size (in bytes) of the resulting executable (for addition to the table at the end of the ckc193.upd file). And if you have trouble, of course, let me know about that too. - Frank P.S. And also let me know if you want off this mailing list.