|
|
1.1 ! root 1: C-KERMIT FOR UNIX, CHANGES FROM 4C(056) TO 4C(057), 31 JUL 85: ! 2: ! 3: general (many modules affected): ! 4: . Change "set send packet-length" to override Send-Init value. ! 5: . Change still more global character variables from int or char to CHAR. ! 6: . Fix 4.1BSD and C/70 support (Charles Brooks), 2.9 support (Herm Fischer). ! 7: ! 8: ckcfns.c: ! 9: . Server always executes generic (but not host) commands in text mode. ! 10: . Change calling convention for getchx() to allow better reporting of eof. ! 11: Some earlier changes had apparently broken PDP-11 support for binary ! 12: files because of sign extension... ! 13: . Again, several hours after initial announcement of 4C(057) found that above ! 14: change had busted things for 68000s (again) because of still more int/char ! 15: conversion problems. Changed 'next' from int to char and moved its file ! 16: begin/end function to a new flag variable, 'first'. Hopefully, not too many ! 17: copies got out; those that did are dated 29 July; the version with this fix ! 18: is dated 31 July. Sigh... ! 19: ! 20: ckuusr.c: ! 21: . Fix timing statistics to work for 16-bit machines too (Dan). ! 22: . Change calls to execl() to terminate with "(char *)0", not "0". ! 23: ! 24: ckufio.c: ! 25: . Fix bug that sometimes prevented sending files with 14-char long names. ! 26: ! 27: ckutio.c: ! 28: . Herm fixed it up so all the changes in previous edits that broke his ! 29: modem control code are now more compatible with it. Also, myread() -- the ! 30: nonblocking equivalent of read() -- was fixed to report errors better. ! 31: ! 32: ckudia.c: ! 33: . Many changes from Herm & Dan, mostly relating to modem control and resetting ! 34: alarms to get the dialing-with-no-carrier-to-connected-with-carrier ! 35: transition working again. ! 36: ! 37: ! 38: C-KERMIT FOR UNIX, CHANGES FROM 4C(055) TO 4C(056), 11 JUL 85: ! 39: ! 40: ckcpro.w: ! 41: . Make new ssfile state, to allow for display of data in ack to file header. ! 42: . If data comes in ack to file header, log to transaction file. ! 43: . Put local filename in data field of ack to F packet. ! 44: . Add calls to new rtimer(), gtimer() to allow transactions to be timed. ! 45: . When sending, include D in EOF packet in all cases when interrupted. ! 46: Previously, only "czseen" would do it, but not cxseen. ! 47: . Upon receipt of Z packet, send Ack AFTER closing file rather than before. ! 48: If file can't be closed, send Error packet instead of Ack. ! 49: . Upon receipt of error packet while receiving file, discard file. ! 50: . Upon receipt of unexpected packet type, send Error, not Nak. ! 51: ! 52: ckcfns.c: ! 53: . Change clsof() to accept an argument specifying whether to discard. ! 54: . Change clsof() to keep incomplete file regardless of arg if keep != 0. ! 55: . Change clsof() to return -1 if output file could not be closed. ! 56: . Change name of getch() to getchx() to avoid conflict with libraries. ! 57: . Fix Yet Another Problem with 8th-bit Quoting Negotation. The bug was that ! 58: if other side said 'N' we would treat 'N' as quoting prefix rather than "NO" ! 59: (but only if parity was set to other than none). ! 60: . Remove input buffer flush from sfile() (why was it ever there???). ! 61: . Change seof() to accept an argument to put in the Z-packet data field. ! 62: . Add transaction timing statistics to reof(),reot() for transaction log. ! 63: . Combine sfile() and sxpack() into one function. ! 64: ! 65: ckcfn2.c: ! 66: . Improve performance of rpack by reducing scan for soh to number of chars ! 67: read rather than whole buffer (required changing inlin()'s return code). ! 68: . Allow rpack to skip over "blank lines" without failing; this was preventing ! 69: file transfer with some systems that always sent CRLF before transmitting ! 70: anything (e.g. UCLA's MVS/TSO VTAM). ! 71: . Don't flush input buffer at end of rpack(), because if the packet that we ! 72: just read is a repeat or an echo, the one we want might be queued up after ! 73: it. Instead, flush in input() only after the desired packet arrives. ! 74: . Allow user to type ^A^C^C to interrupt rpack and exit cleanly from program. ! 75: ! 76: ckuusr.c: ! 77: . Add "incomplete" to "set" parse table and display incomplete in "show". ! 78: . Add "%" command for comment lines. ! 79: . Add elapsed time and effective baud rate display to "statistics" command. ! 80: . Fix "show parameters", had send/receive end-of-packet reversed. ! 81: . Make modem-type lookup in "show" a little cleaner. ! 82: . Fix "echo" to interpret \ooo escapes in its argument. ! 83: ! 84: ckuus2.c: ! 85: . Add "help set incomplete". ! 86: . Fix help message for "set line". ! 87: ! 88: ckuus3.c: ! 89: . Add "set incomplete" support. ! 90: . Allow "set prompt" argument in doublequotes and strip quotes if used, to ! 91: allow specification of prompt with leading &/or trailing blanks. ! 92: . Fix "set send/receive padding/pad-character" -- they had variables reversed. ! 93: ! 94: ckufio.c: ! 95: . For Pro/Venix V1, make MAXWILD and SSPACE even smaller, so malloc() still ! 96: has some space left to allocate... ! 97: . Change zclose() to return -1 if file could not be closed. ! 98: ! 99: ckutio.c: ! 100: . Use Sys III/V nonblocking read() technique also for 4.xBSD -- improves ! 101: performance noticably! ! 102: . Add rtimer() and gtimer() functions for resetting/getting elapsed time. ! 103: . Don't return failure from tthang() if line wasn't open. ! 104: . Print warning message if tthang() or ttunlk() fail. ! 105: . In ttclos(), relinquish exclusive access. ! 106: . Change some #ifdefs so they depend on features, like FIONREAD, rather than ! 107: system, like BSD4. This allows collapsing a lot of redundant code. ! 108: ! 109: ckucon.c: ! 110: . Add hangup (h) option to escape character arguments. ! 111: ! 112: ckuscr.c: ! 113: . Change static timeInt() to global scrtime() to avoid problems on code ! 114: mapped systems. ! 115: ! 116: ! 117: C-KERMIT FOR UNIX, CHANGES FROM 4C(054) TO 4C(055), 28 JUNE 85: ! 118: ! 119: ckudia.c (all changes by Dan Schullman, DEC): ! 120: . Add support for US Robotics modem (untested) from Joe Orost at Berkeley. ! 121: . Reorganize MDMINF data structure to accommodate US Robotics (some char ! 122: fields had to become strings). ! 123: . Allow interrupts (SIGINT, e.g. ^C) to cancel dialing in progress. ! 124: . Ring bell when connection made successfully. ! 125: . Close line on failures. ! 126: . Allow stored numbers with DF100 and 200 modems. ! 127: ! 128: ckudia.c now supports the following modems: ! 129: . Cermetek Info-Mate 212 A ! 130: . DEC DF03-AC ! 131: . DEC DF100 Series ! 132: . DEC DF200 Series ! 133: . General Data Comm 212A/ED ! 134: . Hayes Smartmodem 1200 & compatibles ! 135: . Penril ! 136: . Racal Vadic ! 137: . US Robotics 212A ! 138: . Ventel ! 139: Plus "unknown" modems and direct (modemless) connections. ! 140: ! 141: ! 142: C-KERMIT FOR UNIX, CHANGES FROM 4C(053) TO 4C(054), 25 JUNE 85: ! 143: ! 144: ckuker.mak (makefile): ! 145: . Add "make ft17" for Fortune 16:32 For:Pro 1.7. ! 146: . Add "make uts24" for Amdahl UTS 2.4 ! 147: . Add "make valid" for Valid Scaldstar CAD system ! 148: . Add "make c70" for BBN C/70 IOS 2.4 ! 149: ! 150: ckcmai.c: ! 151: . Add call to sysinit() ! 152: ! 153: ck[uvm]tio.c: ! 154: . Add sysinit() function. For VMS, open console. For others, null for now. ! 155: ! 156: ckutio.c, ckufio.c: ! 157: . Add support for Fortune 16:32, mostly like 4.1bsd. ! 158: . Ditto for Amdahl UTS 2.4, mostly like V7. ! 159: ! 160: ckuus2.c: ! 161: . Expand a couple tabs in hlp1 (-h help message) so things line up right. ! 162: ! 163: ! 164: C-KERMIT FOR UNIX, CHANGES FROM 4C(052) TO 4C(053), 21 JUNE 85: ! 165: ! 166: ckcfn2.c: ! 167: . Change dopar() to be of type CHAR. ! 168: . Fix dopar() to calculate odd parity correctly. ! 169: ! 170: ckucon.c, ckuscr.c: ! 171: . Add "extern CHAR dopar();" declarations. ! 172: ! 173: ! 174: C-KERMIT FOR UNIX, CHANGES FROM 4C(050) TO 4C(052), 18 JUNE 85: ! 175: ! 176: ckcfns.c: ! 177: . Repair rpar() and spar() handling of 8th bit prefix negotiation. ! 178: . In sinit(), when sending from stdin, allow "-a name" to work. ! 179: . In rcvfil(), guard against receiving a null F packet. ! 180: ! 181: ckcmai.c: ! 182: . Change hlptxt[] to contain less than 256 characters (for Xenix) ! 183: ! 184: ckcpro.c: ! 185: . In proto() call ttopen() with a temp, x, rather than "local", then only ! 186: set local if x was set. ! 187: ! 188: ckucmd.c: ! 189: . In cmifi(), make y long rather than int. This was making some 16-bit ! 190: machines erroneously report that files longer than 32K could not be found. ! 191: ! 192: ckuker.mak (makefile): ! 193: . Change symbol 3BX to ATT3BX (has to start with letter) ! 194: . Remove line continuations in the middle of strings ! 195: . Add entry for sys3nid (System III/V on PDP-11 with no I&D space) ! 196: ! 197: ckufio.c: ! 198: . Add appropriate #ifdef for TOWER1 in zkself() ! 199: . Add 2.9bsd identification string ! 200: ! 201: ckutio.c: ! 202: . Move definition of CTTNAM from here to ckcdeb.h, so it can be shared. ! 203: . In initrawq() (for V7 only) read the proc table again after fork(). ! 204: . Change symbol 3BX to ATT3BX. ! 205: . Get rid of the (void) casts in strxxx() invocations -- the proliferation ! 206: of conditionals was getting ridiculous, and it was only to please lint. ! 207: . In conbin() for Sys III/V, open terminal in 7-bit, parity-enabled mode rather ! 208: than 8-bit, no-parity mode (some sites actually use parity). ! 209: . In conint(), trap and ignore QUIT signal, trap SIGHUP and handle like SIGINT. ! 210: This prevents lock files from being left behind after hangup or quit. ! 211: . In connoi(), turn off traps for SIGQUIT, SIGHUP. ! 212: . In ttopen(), add Sys III/V code using ctermid() to better determine remote/ ! 213: local status when stdin redirected. If not Sys III/V and stdin redirected, ! 214: assume local, rather than remote, so that "set speed" and other local-mode ! 215: only commands will work. ! 216: . Add 2.9bsd identification string ! 217: . Make new ANYBSD symbol to select 4.1, 4.2, and 2.9. In some cases, all 3 ! 218: work the same, in others, 2.9 and 4.2 are the same, 4.1 special. ! 219: ! 220: ckuus*.c: ! 221: . In command line invocation, base local/remote determination on CTTNAM. ! 222: . In "set line" only ask ttopen() to set local/remote if not default tty. ! 223: . Ignore SIGQUIT and SIGINT signals while inferior shell active in XXSHE:. ! 224: Previously, both Kermit and the inferior shell would catch them. ! 225: . In XYLINE: call ttopen() with a temp, x, rather than "local", then only ! 226: set local if x was set. ! 227: . Change message "status report..." to "status report:" to avoid dot confusion. ! 228: ! 229: ! 230: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4.2(030) TO 4C(050), 30 May 85: ! 231: ! 232: All files except ckwart.* have been renamed according to a consistent ! 233: convention, see ckaaaa.hlp for an explanation. ! 234: ! 235: Copyright notices added to every module, so we can't be enjoined from ! 236: distributing our own program if we give the right to other organizations, ! 237: like Berkeley, to distribute it. ! 238: ! 239: ckwart.c ! 240: ! 241: . Move the #define in the txt1 string to not start on a new line. ! 242: . Fix the comments printed by wart so they can't be construed as comments ! 243: by the compiler that compiles wart. ! 244: . Include formfeed among the skipped-over whitespace characters. ! 245: . Add wart version information. ! 246: ! 247: ckcdeb.h (formerly ckdebu.h): ! 248: ! 249: Forget about typedefing LONG to be unsigned long -- it causes too many ! 250: problems for PDP-11 C compilers, etc. Just let LONG be long. ! 251: ! 252: If symbols DEBUG and TLOG not defined (e.g. in Makefile), then define ! 253: null macros to replace calls to the debug() and tlog() functions, to save ! 254: space and execution time. Program is too big for Macintosh with these ! 255: functions compiled in. ! 256: ! 257: Establish a symbol NLCHAR. If this symbol is defined, then text (ascii) ! 258: files are stored with a single character (such as lf or cr) terminating ! 259: each line, and this character is the value of NLCHAR. If not defined, ! 260: then the system uses CRLF. When NLCHAR is defined, C-Kermit maps between ! 261: that character and CRLF. ! 262: ! 263: ckcfns.c, ckcfn2.c (formerly ckfns.c, ckfns2.c): ! 264: ! 265: . change all calls to screen() to new form. ! 266: . fix bug in sfile() that sometimes prevented literal names from working. ! 267: . don't translate send-as names in sfile, always use them literally. ! 268: . change input() to always resend() after getting a NAK. ! 269: . change getpkt to clear leftovers when starting new file (next = -1), ! 270: so that filenames in F pkt wouldn't have garbage after previous file ! 271: was interrupted. ! 272: . Change call to zchin() to use new calling convention so bytes with ! 273: hi bit on won't be confused with eof on some systems. ! 274: . Reset czseen in seof, not in clsif, so that remote ^X while C-Kermit ! 275: sending will result in correct Z packet with D in data. ! 276: . In resend(), don't send any packet if packet buffer is empty. ! 277: . Un-hardwire getch() from Unix newline text file convention. ! 278: . Fix bug that sometimes resulted in contents of R or X packet ! 279: having first character doubled. ! 280: . Fix bug in getpkt that prevented leftovers from being transmitted ! 281: after end of file. ! 282: . Have tinit() clear c[xz]seen and filnam to prevent bad things happening ! 283: after interruption or emergency protocol exit. ! 284: . Have syscmd() return 0 if called with null string. This allows single ! 285: process systems like the Macintosh to act as servers, even if they can't do ! 286: commands like remote directory. ! 287: . Send out initial nak when doing receive, so that there will be something ! 288: in the packet buffer to resend. ! 289: . Check for failure return code from zchout, to catch disk full errors, etc. ! 290: . When server getting input from a system function, call zopeni() on new ! 291: ZSYSFN channel, rather than circumventing zopeni() by calling zopen(). ! 292: . Clean up inlin() a little, use maxt vs MAXTRY consistently. ! 293: . Change rpack,spack,rpar,spar,etc to use the new, separated send/receive ! 294: packet parameters (padding,timeout,eol,soh,etc). ! 295: ! 296: ckcker.h (formerly ckermi.h): ! 297: ! 298: . Removed #include <stdio.h> and <ctype.h> from ckermi.h. Macintosh does not ! 299: need all that... (thanks, Bill) ! 300: . Remove include of ckdebu.h (now ckcdeb.h). ! 301: . Add defs for LF and NUL. ! 302: . Add def for new ZSYSFN file i/o channel. ! 303: ! 304: ckcpro.w (formerly ckprot.w) Protocol Module: ! 305: ! 306: . Add "a" state to cancel any transaction. ! 307: . Remove entries for input='N', since this is now handled by input(). ! 308: . Fix "a" state to not cause "OK" message when files closed. ! 309: ! 310: ckucmd.c (formerly ckcmd.c) Unix Command Package: ! 311: ! 312: . Set global cmerrp (error prefix) to be same as prompt, but with '>' stripped. ! 313: . Allow interactive command continuation using trailing '\'. ! 314: . Change "*bp++ == NUL;" in getwd() to simply "bp++;". ! 315: . Test for CR as well as NL for line termination (for Apollo Aegis). ! 316: . In ckucmd.h, #define getchar specially for VMS and Aegis. ! 317: . In cmfld, return(0) from filling out default when ESC typed; this prevents ! 318: "log trans <ESC>transact.log <ESC>transact.log <ESC>transact.log ..." ! 319: . In cmtxt, preserve pointers & counts across calls in case of reparse. ! 320: . In getwd, return -1, NOT -2, if ^U (line kill) is typed. ! 321: ! 322: ckucon.c (formerly ckconu.c) Connect module: ! 323: ! 324: . When writing to session log, make some minimal attempt to recover ! 325: from disk full or other i/o errors (just turn off logging flag). ! 326: . Add baud and parity info to status display. ! 327: ! 328: ckudia.c (formerly ckdial.c) Dial command: ! 329: ! 330: . Support added for Racal-Vadic, Cermetek, Penril, General Datacomm. ! 331: . Use msleep() for higher precision timing. ! 332: ! 333: ckufio.c (formerly ckzunx.c, and before that ckzbsd.c): ! 334: ! 335: Started from Charles Brooks's 4.2 ckzunx.c, which is the original C-Kermit ! 336: release 4.2 version, to which he added 4.1bsd support. ! 337: ! 338: . Fixed zltor() to only count dots after the last '/'. ! 339: . Declared malloc as "char *malloc()". ! 340: . Change fprintf(fp[n],s) to fputs(s, fp[n]) in zsout & zsoutl. ! 341: . Added zkself() function to log self out, for use by server "bye". ! 342: . Changed calling convention for zchin() to allow 68000's etc to return EOF. ! 343: . Make zopeno() chown the file to self, in case program set[ug]id'd. ! 344: . Changed znewn() to try not to contruct a name that is too long. ! 345: . Merge in Gregg Wonderly's v7 support. ! 346: . Make various changes to v7 support to fit proc table stuff to other systems. ! 347: ! 348: . (023) Changed zopeni(), when called with new ZSYSFN channel number, ! 349: to invoke zxcmd() to start a fork and get its fd; also changed zclose() ! 350: and chkfn() accordingly. ! 351: ! 352: . (024) In zchki(), allowed 0 as well as S_IFREG as S_IFMT value for ordinary ! 353: file; Sys V stat() can return either of these values for an ordinary file. ! 354: Also, insert missing #else in zkself(). ! 355: ! 356: . (025) declare zchki() to be of type 'long', so that it can return valid ! 357: file sizes for big files. Also fix internal variables that hold size to ! 358: also be long. (Same change to ckvfio.c.) Also, change ckcfns.c and ckucmd.c ! 359: to declare 'long zchki();'. ! 360: ! 361: ckutio.c (formerly ckxunx.c and ckxbsd.c): ! 362: ! 363: Started from Charles Brooks's 4.2 ckxunx.c, which is the original C-Kermit ! 364: release 4.2 version, to which he added 4.1bsd support. ! 365: ! 366: . Added the following for Pro/Venix Version 1: ! 367: - Filled in msleep() using alarm(-clockticks). ! 368: - Filled in conchk() and ttchk() using TIOCQCNT. ! 369: - Changed default tty name (dftty) to be "/dev/com1.dout". ! 370: - Added line locking via /usr/spool/uucp/LCK..devname and TIOCEXCL. ! 371: . Changed local variable c from int to CHAR in ttinl(). ! 372: . Let CEB's code to hangup line upon close in 4.1bsd also work for 4.2bsd. ! 373: . Removed flock() from ttopen(), call ttlock() before trying to open tty. ! 374: . Corrected some places where alarms & signals were not turned off. ! 375: ! 376: . Changed calling convention for ttopen() to allow it to set the "local" ! 377: variable, since ttopen can call the system to figure out whether a given ! 378: device is the job's controlling tty. Also had to change all modules that ! 379: call ttopen() to pass this variable by reference instead of by value. ! 380: ! 381: . In ttopen, copy ttname string into a static ttnmsv string global to ckutio ! 382: module, rather than just copying the pointer (which is pointing at a moving ! 383: target). Should fix PC/IX tthang() problem. ! 384: ! 385: . Add support for AT&T 3B-series under 3BX conditional; initially, it just ! 386: follows UXIII conditional, but uses special uucp lock file name. ! 387: ! 388: ckuusr.c, ckuus2.c, ckuus3.c (formerly ckuser.c, ckusr2.c, ckusr3.c): ! 389: ! 390: . all occurrences of printf(s) replaced by printf("%s",s) or puts(s). ! 391: . shortening of remaining long strings. ! 392: . continuation lines now allowed in commands if line ends with "\". ! 393: . make "dir" command arg default to ".", not "*", to prevent recursive listing. ! 394: . make "!" command with no args do system("$SHELL"). ! 395: . removed redundant definitions of ncmd, nrmt, nprm. ! 396: . totally redefined and rewrote screen() function. ! 397: . Change send-as to use cmtxt, not cmfld; remove cmcfm. ! 398: . Fix send command to wait for confirmation after wild filespec (this was ! 399: broken by send-as change above, few people saw it). ! 400: . Put 'log debug' command in #ifdef DEBUG ! 401: . Put 'log transaction' command in #ifdef TLOG ! 402: . Use 'transact.log' as default name for transaction log, rather than ! 403: 'transaction.log', which is too long for all but 4.2bsd Unixes. ! 404: . Use symbols for exit() & doexit() return codes, not hardwired 0 and 1. ! 405: . Use symbol for name of init file. ! 406: . Put Unix-specific messages in #ifdef's ! 407: . In 'set line', put speed back to -1 if not local. ! 408: . Change "*xargv++;" in cmdlin() to simply "xargv++;". ! 409: . Change all "if (x = (cmcfm()) < 0)" to "if ((x = cmcfm()) < 0)". ! 410: . In ckuus3, change "turnch == y" to "turnch = y"; this bug prevented ! 411: "set handshake" from working. ! 412: . Add code in shopar() to look up and display modem type correctly. ! 413: . Change "set line" code to have ttopen() figure out local/remote mode. ! 414: . Fix "set line" not to erroneously set ttname if it ttopen fails. ! 415: . In remote cwd parsing, accept CR as well as NL as password terminator. ! 416: . In local directory command, use DIRCMD rather than "ls -l ". ! 417: . In screen() function SCR_QE, print long argument with %ld so the ^A ! 418: status report doesn't show all 0's on systems where ints and longs ! 419: are different length (%ld was already used in the other screen functions). ! 420: . Fix multiline 'get' parsing to allow editing (required fixes to ckucmd.c). ! 421: . Add conditionals for init file name for various systems. ! 422: . Phase out the following set commands: ! 423: set end-of-packet, set start-of-packet, set timeout, set padding & pad-ch. ! 424: Replace by set send (each of these) and set receive (each of these), to ! 425: allow inbound & outbound packet parameters to be set separately. ! 426: . Put new set send/receive params in show command display. ! 427: . Add version info for ckudia and ckuscr to 'sho ver'. ! 428: . Add init file name to 'sho param'. ! 429: . Replace system("pwd") in XXCWD code with system(PWDCMD), defined in ckufio.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.