|
|
1.1 root 1: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(069) TO 4E(070), 29 Jan 88
2:
3: ckuusr.c
4: Put reference to SIGSTOP in #ifdef SIGTSTP conditionals.
5:
6: ckcmai.c
7: Update version number and date.
8:
9: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(068) TO 4E(069), 27 Jan 88
10:
11: ckcfn2.c:
12: In input(), set the rdatap pointer to the timeout message.
13:
14: ckucmd.c:
15: Change name of getwd() to gtword(), to avoid conflict with BSD getwd()
16: function.
17:
18: ckufio.c:
19: Change to conditionalize zgtdir() function, calling getwd() for BSD,
20: getcwd() for System V, and returning a constant string for others.
21:
22: ckutio.c:
23: Change foreground/background test in conint() for Berkeley to be based
24: on something that really works, namely testing the process group against
25: the controlling terminal's process group. There is apparently no way to
26: do this in Sys V... This fixes the disappearing prompt problem, at least
27: on BSD-based systems. (Thanks to Fuat Baran for this.)
28:
29:
30: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(067) TO 4E(068), 24 Jan 88
31:
32: Make this the standard released version, rename all files to ck* from xk*.
33:
34: Change version number and date in ckcmai.c.
35:
36: Makefile:
37: Add entries for sco286 and sco86 to Makefile (D.W. Bettinger, DEAN@SUVM)
38: Make ckudia.c depend on ckucmd.h (G. Uddeborg, [email protected])
39:
40: ckwart.c:
41: Change ungetc(c) to ungetc(c,fp) in case '/' in gettoken().
42:
43: ckcfns.c:
44: In function cwd(), after changing directory, ask system for new directory
45: name by calling new function zgtdir().
46:
47: ckuusr.c:
48: Add stptrap() function to allow job to be suspended by Ctrl-Z.
49: Change call to dial() to ckdial().
50:
51: ckudia.c:
52: Change name of dial() to ckdial() to avoid name conflict.
53: Add support for ATT 7300 modem from R.E. Hill (untested).
54:
55: ckutio.c:
56: Add corrections to conint() from Bob Brown ([email protected])
57: to make Ctrl-Z job suspension work right.
58: Add support for ATT 7300 modem from R.E. Hill (untested).
59:
60: ck?fio.c:
61: Add new function zgtdir() to ck[uvdmi]fio.c, to return name of current
62: working directory. Call it from ckcfns.c.
63:
64: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(066) TO 4E(067), 5 Aug 87
65:
66: This version makes the minor corrections to 4E(066) that proved necessary
67: after the beta test of that release.
68:
69: - ckcfns.c -
70:
71: In spar(), fix long packet negotiation to allow "set send packet-length"
72: override to work.
73: Rename maxsize parameter of getpkt to bufmax to avoid confusion with global
74: maxsize.
75:
76: - ckcfn2.c -
77:
78: In rpack(), allow 3 tries to get a packet. This allows for hosts (like IBM
79: mainframes) that echo the CR that terminates C-Kermit's packets with a CRLF.
80: Misc "lint" cleanups.
81:
82: - ckcmai.c -
83:
84: Update program version number and date, give credit to more people.
85:
86: - ckucon.c -
87:
88: Change wait(0) to wait((int *)0).
89:
90: - ckudia.c -
91:
92: Add Concord Condor CDS 220 2400b modem support from Jim Guyton.
93: Misc "lint" cleanups.
94:
95: - ckufio.c -
96:
97: Change wait(0) to wait((int *)0).
98: Don't #include <sys/file.h> for Xenix (this might be dangerous?).
99: In zxcmd, set effective group & user IDs for BSD to override security
100: checks of csh.
101:
102: - ckuker.mak (Makefile) -
103:
104: Added make options for cleaning out intermediate & object files and for lint.
105: Added make option for CDC VX/VE systems.
106: Added some comments for improved clarity.
107:
108: - ckutio.c -
109:
110: Break a line that was longer than 80 chars.
111: Add missing return in conditionals at end of ttpkt(), so program can run
112: on Pyramid and similar systems.
113: Add support for CDC VX/VE Sys V Unix from S.O. Lidie, Lehigh U.
114: Don't #include <sys/file.h> for Xenix.
115:
116: - ckuusr.h -
117:
118: Move definition of KERMRC here from ckuusr.c.
119:
120: - ckuusr.c -
121:
122: Fix parsing of "show paramaters" (now you can edit it).
123: Change wait(0) to wait((int *)0).
124: Remove some debug() statements.
125: Move definition of KERMRC from here to ckuusr.h, so "show" command can find it.
126: Set default prompt before reading init file instead of after, so "set prompt"
127: in init file will work.
128: Set effective group & user IDs for shell command execution.
129:
130: - ckuus2.c -
131:
132: Fix help message for "set send/receive packet-length".
133:
134: - ckuus3.c -
135:
136: Attempt to fix parsing of "remote cwd" command from take file.
137: Fix typo in "Extended-length packets requested" message.
138:
139: - ckvfio.c -
140:
141: Define PWDCMD so that "cwd" can work (hopefully).
142:
143: - ckvtio.c -
144:
145: Add missing syscleanup() function (just returns 0).
146:
147:
148: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4D(061) TO 4E(066), 5 Aug 87
149:
150: This version is being released as a test version, because it has not been
151: tested at all on the Mac, Amiga, VMS, or Data General, or on many of the common
152: Unix systems (SUN, etc), and has not been tested in local mode at all except
153: under Ultrix 2.0 on a VAX 750, and under 2.9BSD on a Pro-380.
154:
155:
156: MAJOR CHANGES:
157:
158: Added support for long packets.
159:
160: Performance improvements: less copying of received data, more efficient i/o.
161:
162: C-Kermit now takes its init file always, even if invoked with command-line
163: action arguments.
164:
165: Easy escape from packet mode (^C^C at any time).
166:
167: Added file bytesize mask to 'set file type {text, binary} {7, 8}' so that
168: Kermit can be used to strip 8th data bit during file transfer (e.g. of
169: Wordstar files), independent of parity setting. Default 8.
170:
171: Added 'set terminal bytesize {7, 8}'. Default 7.
172:
173: Added 'set retry' command to adjust packet retransmission limit.
174:
175: Included changes to support Data General, Apollo, Amiga, Mac with Megamax C.
176:
177: New 'make' options for sys5r3, CIE Regulus, HP-UX, IBM IX/370, zilog.
178:
179: Better statistics reporting.
180:
181: Fix a few major bugs:
182: . Loss of trailing control characters at end of file when sending.
183: . 2-character checksum now works with 8-bit binary files.
184: . Background/take-file interaction fixed, maybe.
185: . Insertion of spurious CRLF at position 4096 when doing 'kermit -k'.
186: . Parsing of multine 'get' command (again).
187:
188: Tested against:
189: Tested under: MS-Kermit VM/CMS DEC-20 VMS Prime Ultrix PDP11
190: . Ultrix 1.2 on VAX 8650 x
191: . Ultrix 1.1 on VAX 750 x
192: . Ultrix 2.0 on VAX 750 x x x x x x x
193: . Ultrix 2.0 on VAX 8700 x
194: . System V on 3B20 x x x
195: . 2.9BSD on Pro-380 x x
196:
197: THINGS NOT DONE:
198:
199: Sliding windows.
200:
201: Cleaning up the horrible #ifdef mess, especially in CKU[TF]IO.C (at least,
202: not very much).
203:
204: Improving the command parser. One obvious improvement would be to replace the
205: relatively limited CKUCMD command-parsing package with the newer, more general
206: and powerful CCMD package. This was not done because (a) CCMD is bigger, and
207: (b) CCMD has not yet been ported to all the systems that C-Kermit can be built
208: for (VMS, Data General, etc etc). Anyway, CKUCMD does the job.
209:
210: Command macros.
211:
212: A consistent, sensible treatment of program return codes, to allow C-Kermit
213: to be run from scripts or DCL procedures, etc, so that they can tell whether
214: Kermit "succeeded" or "failed". But what does failure or success mean?
215: What if it transfers 29 out of 30 files? What should the return code be?
216:
217: Improving modem support. There are ioctl's in BSD & Ultrix (TIOC(N)MODEM,
218: TIOC(N)CAR, TIOCWONLINE) for ignoring/heeding modem signals, but it's not
219: clear (to me) which versions of BSD they apply to. If somebody wants to
220: straighten this out in ckutio.c, be my guest.
221:
222: Dealing in any way with lock files or bidirectional terminal lines, esp. the
223: acucntrl business in 4.3BSD, the uugetty business in Sys V, making the program
224: run suid, etc. Got many, many hints about this, but it's so touchy I'll leave
225: this to somebody who knows what she's doing and can test the results on a
226: variety of systems. The main problem is that this area is the least
227: consistent among all the Unix variants. Lock files and directories, their
228: names, the permissions thereon, and the contents thereof differ from system to
229: system, from one version of a system to the next, and within the same version
230: of the same system, from site to site.
231:
232: REMOTE KERMIT command support in the C-Kermit server.
233:
234: Attribute packets.
235:
236: Dialing code for ATT7300 from Richard E. Hill.
237:
238: "Demon dialer" code from Jon Zeeff.
239:
240: Code for automatically choosing a dialout line from Frank Wortner.
241:
242: Support for Tandy 6000 and Alcyon Regulus from Frank Wortner.
243:
244: etc etc
245:
246:
247: CHANGES, MODULE BY MODULE:
248:
249: - ckcdeb.h -
250:
251: remove #ifdef LONG_DEF ... #endif because LONG_DEF wasn't used anywhere.
252: remove old commented-out Amiga junk (Phil Julian).
253:
254: define FREAD and FWRITE for Fortune, which doesn't have sys/file.h
255: (David Sizeland).
256:
257: Put conditional comments around vax11c #includes if not vax11c (Ron Heiby).
258:
259: Add typedef SIGTYP for signal(), it's void under Sys V R3, int elsewhere
260: (Ron Heiby).
261:
262: - ckcfn2.c -
263:
264: Insert #include ckcsym.h before other includes for benefit of Megamax C,
265: so that symbol MAC can be defined (Jim Noble)
266:
267: Remove extraneous * from "*pkt++" in for-statement in chk2() (Jim Noble).
268:
269: change all "screen(SCR_PT,'Q',(long)n,recpkt);" to
270: "screen(SCR_PT,'Q',(long)(*n),recpkt);" (3 places) (Jim Noble).
271:
272: Fix type-2 block checks for binary files (make everything unsigned)
273: (David Wilson).
274:
275: Change name of unchar() macro to xunchar(), to remove conflict with unchar
276: typedef for unsigned character on ATT3Bx SVR3 systems (Ron Heiby).
277:
278: Add support for long packets, mostly in rpack() and spack().
279:
280: In input(), recognize a valid Error packet even if it has the wrong
281: sequence number.
282:
283: Make chk2() only return the low order 12 bits of the checksum, to ward off
284: sign extension problems.
285:
286: Remove extra level of copying by eliminating call to inlin() in rpack().
287: Instead, call ttinl() directly.
288:
289: Replace rpack() and spack() with "book-Kermit" versions, to allow receiving
290: and sending of long packets, and removing many extraneous and time-consuming
291: validity checks.
292:
293: Change packet logging functions to start at the ^A when there are leading
294: nulls (e.g. padding) that would otherwise act as string terminators.
295:
296: Recode dopar() to do a simple table lookup, rather than calculate parity,
297: to improve packet construction speed.
298:
299: Fix resend() to resend a packet even if it has leading null pad characters.
300:
301: - ckcfns.c -
302:
303: Zillions of "#ifdef datageneral...#endif" sections added, mostly having
304: to do with wildcard expansion, yuck (the ckc* files weren't s'posed to have
305: system dependencies).
306:
307: Changed extern long tsecs to extern int tsecs.
308:
309: Fixed getpkt() to remember final leftovers, so that trailing control
310: characters are not ommitted during send (Gordon Scott).
311:
312: Fixed sdebu() to display seol rather than eol (Scott Ribe).
313:
314: Add rdebu() to display rpar() results.
315:
316: Change name of unchar() macro to xunchar() to avoid S5r3 name conflict.
317:
318: Cast tsecs to (long) in call to tlog in tstats() (Dan Murphy).
319:
320: Replace rpar() and spar() with "book-Kermit" versions.
321:
322: Remove extraneous variable chklen.
323:
324: Add resetc() function to reset some statistics counters.
325:
326: Move fstats(), tstats(), sdebu(), and rdebu() from here to ckuus2.c,
327: because ckcfns.c had grown too large for some systems (like PDP-11s).
328: Must keep text size of each module below 8K!
329:
330: - ckcker.h -
331:
332: Change name of unchar() macro to xunchar().
333:
334: - ckcmai.c -
335:
336: Process init file before reading command line args.
337:
338: SAS version had some code to support the REMOTE KERMIT command via a
339: temp file kludge, which was omitted (do it right, use CCMD, maybe next
340: release).
341:
342: Shortened hlptxt again, sigh (for Xenix).
343:
344: #include "ckcsym.h" for Mac.
345:
346: #ifdef datageneral for longer filenames.
347:
348: #ifdef for Apollo which wants to use main() for something else.
349:
350: New server REMOTE HELP message for Mac.
351:
352: Remove extraneous variable chklen.
353:
354: - ckcpro.w -
355:
356: Change calling convention for rpar(), which now returns a string pointer.
357:
358: Reset the tty after returning from packet protocol.
359:
360: Remove extraneous variable 'image', which caused problems for some compilers.
361:
362: Issue "Escape back" messages when given 'send' or 'receive' command in
363: remote mode.
364:
365: Terminate with message when error packet received and running in background
366: (Les Mikesell).
367:
368: Only reset statistics counters when files are actually being transferred.
369:
370: - ckucmd.c -
371:
372: Many conditionals added to support Apollo and Data General.
373:
374: - ckufio.c -
375:
376: make zchout return -1 or 0, rather than just passing along ferror's
377: return code.
378:
379: change NULL arg to execl to (char *)NULL in zxcmd().
380:
381: Various conditionals for Apollo Aegis.
382:
383: Updated support for Fortune (now FT18), from David Sizeland, London University
384: Medical School.
385:
386: #include <sys/types.h> before other includes (Les M).
387:
388: - ckutio.c -
389:
390: Many Apollo Aegis conditionals.
391:
392: Minor Fortune changes.
393:
394: In conint(), always perform background check, so that backgrd flag can
395: be set correctly. This allows errors in TAKE files to be fatal once again
396: (as they were in 4C). (Gordon Scott)
397:
398: Also in conint(), enable SIGTERM and SIGHUP signals so lock files can be
399: cleaned up (Les M).
400:
401: Rearrange the whole conint() function until it seems to make sense, and
402: try to make connoi() symmetrical with it, i.e. put back the same interrupts
403: that conint() set traps for.
404:
405: Remove trailing text from #endif's.
406:
407: In ttpkt(), the call to fcntl should OR the FNDELAY bit into the flags,
408: not AND it! (2 places) (Howard Chu, umich) For BSD, replace this call
409: with an ioctl() to set and unset FIONBIO (blocking/nonblocking i/o).
410: (Later, don't do any of this for BSD. Measurements showed BSD does better
411: with blocking reads and buffer checks.)
412:
413: Make some changes to myread() so that it actually works under 4.xBSD.
414: Change some of the System III/V code as well, so that myread() can actually
415: return -1 when no data is available (inspection of the previous code showed
416: that this could never happen before). (Later, BSD doesn't use myread() any
417: more.)
418:
419: Add parity to list of args for ttpkt(), so that it can be saved for use by
420: other tt functions, particularly ttinl(). Saves another copy step. Add
421: parity arg to calls from ckcpro.w and ckudia.c. *** WARNING -- This required
422: corresponding changes in ck[idvm...]tio.c, which could not be tested! ***
423:
424: Allow user to type ^C^C anytime during packet protocol to exit from
425: the program and restore terminal modes, by checking for this in ttinl(),
426: and adding a new -2 return code. *** Need to change ck[vd...]tio.c too! ***
427:
428: Add support for HP-UX dialout modems from Bill Coalson of McDonnell Douglas.
429:
430: Add syscleanup() function, currently empty.
431:
432: Rearrange myread() a little bit for doing myunread() (Les M).
433:
434: Totally rewrite ttinl() for efficiency & cleanliness. No #ifdef's!
435:
436: - ckuusr.h -
437:
438: Add symbol for 'set terminal'.
439:
440: - ckuusr.c -
441:
442: Return(0) from parser when we exit from command file.
443:
444: change dcl of istat & qstat from int to SIGTYP.
445:
446: in cmdlin(), make sure to set quiet = 1 if 'k' option was elected. This
447: fixes the infamous 4K CRLF bug (the 'conoll("")' in ckcmai.c was inserting
448: an unbuffered CRLF into the buffered data after the first 4K buffer).
449:
450: Add 'set retry'.
451:
452: Add call to syscleanup() from doexit().
453:
454: Change some GOOD_EXITs to BAD_EXITs.
455:
456: Fix parsing of the last line of multiline 'get' to allow editing.
457:
458: Fix reading multiline 'get' commands from 'take' file.
459:
460: Move functions shopar(), dolog(), debopn() to ckuus2 because ckuusr.c was
461: getting too big to compile on some systems (PDP-11s, etc). Also, move
462: statistics display to new function dostat() in ckuus2.c.
463:
464: - ckuus2.c -
465:
466: Some new messages for Data General.
467:
468: Add '-e' (extended packet length) to usage() message, but remove -h so
469: whole message still fits on screen.
470:
471: Fix hmsg() to allow editing of 'help' commands. Previously, operations like
472: 'help send<esc><^W>' would fracture the command line.
473:
474: Move functions shopar(), dolog(), debopn() here from ckuusr.c. Add dostat().
475:
476: In shopar(), display limits on send & receive packet lengths, file and
477: terminal byte sizes.
478:
479: Move fstats(), tstats(), sdebu(), and rdebu() here from ckcfns.c.
480:
481: - ckuus3.c -
482:
483: Conditionals for Data General.
484:
485: Add 'set retry'.
486:
487: Add support for long packets in 'set send/receive packet-length'.
488:
489: Add trailing argument to 'set file type {binary, text} {7, 8}'.
490:
491: Add 'set terminal bytesize {7, 8}'.
492:
493: Remove extraneous variable 'image', which caused problems for some compilers.
494:
495: Increase debug and transaction log string buffer lengths, and do length
496: checking before sprintf()'s to avoid core dumps.
497:
498: - ckucon.c -
499:
500: Before forking, do signal(SIGUSR1,SIG_SIGN) to avoid killing parent if
501: connecting to a line with no carrier. Without this, the child's signal would
502: arrive before the parent's handler was set up (Les M).
503:
504: - ckudia.c -
505:
506: Change declarations of savAlrm and savInt from int to SIGTYP (Ron Heiby).
507:
508: Change Hayes dialing string from AT DT to AT D.
509:
510: Change Ventel modem dial string from "<K%s'r>" to "<K%s\r>" (Jim Knutson).
511:
512: - ckuscr.c -
513:
514: Change declaration of savAlrm from int to SIGTYP (Ron Heiby).
515:
516: Don't output gratuitous messages when in quiet mode.
517:
518: Increase script buffer size (SBUFL) from 300 to 512 (Les M).
519:
520: Remove 7-char restriction on "expect" strings (Les M). Then remove this
521: change after core dumps.
522:
523: Log script execution to session log. Requires addition of new flushi()
524: function.
525:
526: - ckwart.c -
527:
528: Several minor fixes from Jim Noble, mostly regarding format of output file.
529:
530: - Makefile (ckuker.mak) -
531:
532: New Fortune support under "make ft18" (David Sizeland).
533:
534: New make option for "sys5r3" (Ron Heiby).
535:
536: New make option for "cie" (David Lawyer).
537:
538: New make option for "hpux" (Bill Coalson).
539:
540: New make option for "ix370" (Wayne Van Pelt).
541:
542: New make option for "zilog" (Dave Woolley).
543:
544: Add Xenix hints (Dan Murphy).
545:
546:
547: C-KERMIT FOR UNIX, CHANGES FROM 4D(060) TO 4D(061), 9 SEP 86:
548:
549: Changes from Jack Rouse and Phil Julian of SAS Institute:
550: . Commodore Amiga support replaced, all-new CKI*.* files.
551: . Revert CKUCMD.[CH] and CKUUS?.[CH] to their old selves (mostly).
552: . Fix multiline GET parsing.
553: . Supply a missing printf() parameter in CKWART.C.
554:
555: Other changes:
556: . Fix top-level parse loop in CKUUSR.C to reset any erroneous start state.
557: . Make sysinit() in CK[UVMI]IO.C return -1 if it fails, 0 if it succeeds.
558: . Have CKCMAI.C check sysinit() return code.
559: . Change refs in CKUFIO.C to _file member of FILE structure to fileno().
560: . In CKUFIO.C, have zclosf() kill fork before wait().
561: . In CKUTIO.C, fix typos in Sys-V speed setting code.
562: . In CKCFN2.C fix errpkt() to close open files.
563: . Add 4.3BSD acu control code to CKUTIO.C, under NEWUUCP conditional.
564:
565: Compiled and tested under Ultrix 1.1 (= 4.2BSD), Ultrix 1.2 (whatever that
566: may be a hybrid of), 2.9BSD on a DEC Pro/380, and true 4.3BSD on a VAX
567: 11/750 (4.3BSD includes an earlier version of C-Kermit -- 4C(057) -- on
568: its distribution tape).
569:
570:
571: C-KERMIT FOR UNIX, CHANGES FROM 4C(058) TO 4D(060), 29 APR 86:
572:
573: . Add support for Commodore Amiga (Lattice C) from Davide Cervone of Rochester
574: University in modules CKI*.*, with minor changes to CKCMAI.C, CKUUS?.C,
575: CKUCMD.C, CKCDEB.H. No effect on UNIX Kermit.
576:
577: . Fix several minor bugs in UNIX version:
578: - Multiline GET command failure when executed from TAKE file (CKUUSR.C).
579: - File collision renaming bugs fixed, algorithm improved (CKUFIO.C).
580: - CONNECT command now reports fork creation failure (CKUCON.C).
581:
582:
583: C-KERMIT FOR UNIX, CHANGES FROM 4C(057) TO 4C(058), 19 MAR 86:
584:
585: makefile:
586: . Add special entry "rtu" for Masscomp.
587: . Fix up "bsd29" entry.
588:
589: ckcdeb.h:
590: . Added defs for CHAR and LONG for 2.9 BSD.
591:
592: ckcfns.c:
593: . Make reof() return a value, like it's supposed to.
594: . Make spar() set the right packet terminator (seol, not eol).
595: . Change tinit() to put a NAK packet in retransmit buffer, but don't send it.
596: . Reset cxseen in reof(), so it isn't sticky for the next file.
597:
598: ckcfn2.c:
599: . Fix input() to treat NAK for packet n+1 as ACK for packet n.
600: . Defend against writing 0 past end of buffer in rpack().
601:
602: ckcpro.w:
603: . Don't send NAK automatically at beginning of receive.
604: . In <sseof> rule, call sfile with argument xflg, like sfile expects.
605: . Sleep a couple secs before returning to give last packet some time to escape.
606:
607: ckucon.c:
608: . Remove ^S from among escape character arguments.
609:
610: ckufio.c:
611: . Change execl() calls to have NULL as 5th arg, rather than (char *)0.
612: . Fix up 2.9 BSD stuff, make it use opendir() for directory stepping.
613:
614: ckutio.c:
615: . Fix nontimed read in ttinl() to work.
616: . Change msleep() to return immediately if argument is 0 (for dial pause).
617: . Skip setting console modes in con...() functions if not a real tty.
618: . Give system error message in ttopen() if line can't be opened.
619: . Remove erroneous references to DIRSIZ.
620: . Fix up 2.9BSD stuff.
621:
622: ckuusr.c:
623: . Change execl() calls to have NULL as 5th arg, rather than 0, or (char *)0.
624:
625: ckvfio.c (VAX/VMS support):
626: . Fix system() to allow spawning interactive shell if '!' command given.
627: . Fix zopeni() to not spuriously reject certain calls, so REMOTE commands work.
628: . Fix msleep(m) to return immediately if m==0.
629:
630:
631: C-KERMIT FOR UNIX, CHANGES FROM 4C(056) TO 4C(057), 31 JUL 85:
632:
633: general (many modules affected):
634: . Change "set send packet-length" to override Send-Init value.
635: . Change still more global character variables from int or char to CHAR.
636: . Fix 4.1BSD and C/70 support (Charles Brooks), 2.9 support (Herm Fischer).
637:
638: ckcfns.c:
639: . Server always executes generic (but not host) commands in text mode.
640: . Change calling convention for getchx() to allow better reporting of eof.
641: Some earlier changes had apparently broken PDP-11 support for binary
642: files because of sign extension...
643: . Again, several hours after initial announcement of 4C(057) found that above
644: change had busted things for 68000s (again) because of still more int/char
645: conversion problems. Changed 'next' from int to char and moved its file
646: begin/end function to a new flag variable, 'first'. Hopefully, not too many
647: copies got out; those that did are dated 29 July; the version with this fix
648: is dated 31 July. Sigh...
649:
650: ckuusr.c:
651: . Fix timing statistics to work for 16-bit machines too (Dan).
652: . Change calls to execl() to terminate with "(char *)0", not "0".
653:
654: ckufio.c:
655: . Fix bug that sometimes prevented sending files with 14-char long names.
656:
657: ckutio.c:
658: . Herm fixed it up so all the changes in previous edits that broke his
659: modem control code are now more compatible with it. Also, myread() -- the
660: nonblocking equivalent of read() -- was fixed to report errors better.
661:
662: ckudia.c:
663: . Many changes from Herm & Dan, mostly relating to modem control and resetting
664: alarms to get the dialing-with-no-carrier-to-connected-with-carrier
665: transition working again.
666:
667:
668: C-KERMIT FOR UNIX, CHANGES FROM 4C(055) TO 4C(056), 11 JUL 85:
669:
670: ckcpro.w:
671: . Make new ssfile state, to allow for display of data in ack to file header.
672: . If data comes in ack to file header, log to transaction file.
673: . Put local filename in data field of ack to F packet.
674: . Add calls to new rtimer(), gtimer() to allow transactions to be timed.
675: . When sending, include D in EOF packet in all cases when interrupted.
676: Previously, only "czseen" would do it, but not cxseen.
677: . Upon receipt of Z packet, send Ack AFTER closing file rather than before.
678: If file can't be closed, send Error packet instead of Ack.
679: . Upon receipt of error packet while receiving file, discard file.
680: . Upon receipt of unexpected packet type, send Error, not Nak.
681:
682: ckcfns.c:
683: . Change clsof() to accept an argument specifying whether to discard.
684: . Change clsof() to keep incomplete file regardless of arg if keep != 0.
685: . Change clsof() to return -1 if output file could not be closed.
686: . Change name of getch() to getchx() to avoid conflict with libraries.
687: . Fix Yet Another Problem with 8th-bit Quoting Negotation. The bug was that
688: if other side said 'N' we would treat 'N' as quoting prefix rather than "NO"
689: (but only if parity was set to other than none).
690: . Remove input buffer flush from sfile() (why was it ever there???).
691: . Change seof() to accept an argument to put in the Z-packet data field.
692: . Add transaction timing statistics to reof(),reot() for transaction log.
693: . Combine sfile() and sxpack() into one function.
694:
695: ckcfn2.c:
696: . Improve performance of rpack by reducing scan for soh to number of chars
697: read rather than whole buffer (required changing inlin()'s return code).
698: . Allow rpack to skip over "blank lines" without failing; this was preventing
699: file transfer with some systems that always sent CRLF before transmitting
700: anything (e.g. UCLA's MVS/TSO VTAM).
701: . Don't flush input buffer at end of rpack(), because if the packet that we
702: just read is a repeat or an echo, the one we want might be queued up after
703: it. Instead, flush in input() only after the desired packet arrives.
704: . Allow user to type ^A^C^C to interrupt rpack and exit cleanly from program.
705:
706: ckuusr.c:
707: . Add "incomplete" to "set" parse table and display incomplete in "show".
708: . Add "%" command for comment lines.
709: . Add elapsed time and effective baud rate display to "statistics" command.
710: . Fix "show parameters", had send/receive end-of-packet reversed.
711: . Make modem-type lookup in "show" a little cleaner.
712: . Fix "echo" to interpret \ooo escapes in its argument.
713:
714: ckuus2.c:
715: . Add "help set incomplete".
716: . Fix help message for "set line".
717:
718: ckuus3.c:
719: . Add "set incomplete" support.
720: . Allow "set prompt" argument in doublequotes and strip quotes if used, to
721: allow specification of prompt with leading &/or trailing blanks.
722: . Fix "set send/receive padding/pad-character" -- they had variables reversed.
723:
724: ckufio.c:
725: . For Pro/Venix V1, make MAXWILD and SSPACE even smaller, so malloc() still
726: has some space left to allocate...
727: . Change zclose() to return -1 if file could not be closed.
728:
729: ckutio.c:
730: . Use Sys III/V nonblocking read() technique also for 4.xBSD -- improves
731: performance noticably!
732: . Add rtimer() and gtimer() functions for resetting/getting elapsed time.
733: . Don't return failure from tthang() if line wasn't open.
734: . Print warning message if tthang() or ttunlk() fail.
735: . In ttclos(), relinquish exclusive access.
736: . Change some #ifdefs so they depend on features, like FIONREAD, rather than
737: system, like BSD4. This allows collapsing a lot of redundant code.
738:
739: ckucon.c:
740: . Add hangup (h) option to escape character arguments.
741:
742: ckuscr.c:
743: . Change static timeInt() to global scrtime() to avoid problems on code
744: mapped systems.
745:
746:
747: C-KERMIT FOR UNIX, CHANGES FROM 4C(054) TO 4C(055), 28 JUNE 85:
748:
749: ckudia.c (all changes by Dan Schullman, DEC):
750: . Add support for US Robotics modem (untested) from Joe Orost at Berkeley.
751: . Reorganize MDMINF data structure to accommodate US Robotics (some char
752: fields had to become strings).
753: . Allow interrupts (SIGINT, e.g. ^C) to cancel dialing in progress.
754: . Ring bell when connection made successfully.
755: . Close line on failures.
756: . Allow stored numbers with DF100 and 200 modems.
757:
758: ckudia.c now supports the following modems:
759: . Cermetek Info-Mate 212 A
760: . DEC DF03-AC
761: . DEC DF100 Series
762: . DEC DF200 Series
763: . General Data Comm 212A/ED
764: . Hayes Smartmodem 1200 & compatibles
765: . Penril
766: . Racal Vadic
767: . US Robotics 212A
768: . Ventel
769: Plus "unknown" modems and direct (modemless) connections.
770:
771:
772: C-KERMIT FOR UNIX, CHANGES FROM 4C(053) TO 4C(054), 25 JUNE 85:
773:
774: ckuker.mak (makefile):
775: . Add "make ft17" for Fortune 16:32 For:Pro 1.7.
776: . Add "make uts24" for Amdahl UTS 2.4
777: . Add "make valid" for Valid Scaldstar CAD system
778: . Add "make c70" for BBN C/70 IOS 2.4
779:
780: ckcmai.c:
781: . Add call to sysinit()
782:
783: ck[uvm]tio.c:
784: . Add sysinit() function. For VMS, open console. For others, null for now.
785:
786: ckutio.c, ckufio.c:
787: . Add support for Fortune 16:32, mostly like 4.1bsd.
788: . Ditto for Amdahl UTS 2.4, mostly like V7.
789:
790: ckuus2.c:
791: . Expand a couple tabs in hlp1 (-h help message) so things line up right.
792:
793:
794: C-KERMIT FOR UNIX, CHANGES FROM 4C(052) TO 4C(053), 21 JUNE 85:
795:
796: ckcfn2.c:
797: . Change dopar() to be of type CHAR.
798: . Fix dopar() to calculate odd parity correctly.
799:
800: ckucon.c, ckuscr.c:
801: . Add "extern CHAR dopar();" declarations.
802:
803:
804: C-KERMIT FOR UNIX, CHANGES FROM 4C(050) TO 4C(052), 18 JUNE 85:
805:
806: ckcfns.c:
807: . Repair rpar() and spar() handling of 8th bit prefix negotiation.
808: . In sinit(), when sending from stdin, allow "-a name" to work.
809: . In rcvfil(), guard against receiving a null F packet.
810:
811: ckcmai.c:
812: . Change hlptxt[] to contain less than 256 characters (for Xenix)
813:
814: ckcpro.c:
815: . In proto() call ttopen() with a temp, x, rather than "local", then only
816: set local if x was set.
817:
818: ckucmd.c:
819: . In cmifi(), make y long rather than int. This was making some 16-bit
820: machines erroneously report that files longer than 32K could not be found.
821:
822: ckuker.mak (makefile):
823: . Change symbol 3BX to ATT3BX (has to start with letter)
824: . Remove line continuations in the middle of strings
825: . Add entry for sys3nid (System III/V on PDP-11 with no I&D space)
826:
827: ckufio.c:
828: . Add appropriate #ifdef for TOWER1 in zkself()
829: . Add 2.9bsd identification string
830:
831: ckutio.c:
832: . Move definition of CTTNAM from here to ckcdeb.h, so it can be shared.
833: . In initrawq() (for V7 only) read the proc table again after fork().
834: . Change symbol 3BX to ATT3BX.
835: . Get rid of the (void) casts in strxxx() invocations -- the proliferation
836: of conditionals was getting ridiculous, and it was only to please lint.
837: . In conbin() for Sys III/V, open terminal in 7-bit, parity-enabled mode rather
838: than 8-bit, no-parity mode (some sites actually use parity).
839: . In conint(), trap and ignore QUIT signal, trap SIGHUP and handle like SIGINT.
840: This prevents lock files from being left behind after hangup or quit.
841: . In connoi(), turn off traps for SIGQUIT, SIGHUP.
842: . In ttopen(), add Sys III/V code using ctermid() to better determine remote/
843: local status when stdin redirected. If not Sys III/V and stdin redirected,
844: assume local, rather than remote, so that "set speed" and other local-mode
845: only commands will work.
846: . Add 2.9bsd identification string
847: . Make new ANYBSD symbol to select 4.1, 4.2, and 2.9. In some cases, all 3
848: work the same, in others, 2.9 and 4.2 are the same, 4.1 special.
849:
850: ckuus*.c:
851: . In command line invocation, base local/remote determination on CTTNAM.
852: . In "set line" only ask ttopen() to set local/remote if not default tty.
853: . Ignore SIGQUIT and SIGINT signals while inferior shell active in XXSHE:.
854: Previously, both Kermit and the inferior shell would catch them.
855: . In XYLINE: call ttopen() with a temp, x, rather than "local", then only
856: set local if x was set.
857: . Change message "status report..." to "status report:" to avoid dot confusion.
858:
859:
860: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4.2(030) TO 4C(050), 30 May 85:
861:
862: All files except ckwart.* have been renamed according to a consistent
863: convention, see ckaaaa.hlp for an explanation.
864:
865: Copyright notices added to every module, so we can't be enjoined from
866: distributing our own program if we give the right to other organizations,
867: like Berkeley, to distribute it.
868:
869: ckwart.c
870:
871: . Move the #define in the txt1 string to not start on a new line.
872: . Fix the comments printed by wart so they can't be construed as comments
873: by the compiler that compiles wart.
874: . Include formfeed among the skipped-over whitespace characters.
875: . Add wart version information.
876:
877: ckcdeb.h (formerly ckdebu.h):
878:
879: Forget about typedefing LONG to be unsigned long -- it causes too many
880: problems for PDP-11 C compilers, etc. Just let LONG be long.
881:
882: If symbols DEBUG and TLOG not defined (e.g. in Makefile), then define
883: null macros to replace calls to the debug() and tlog() functions, to save
884: space and execution time. Program is too big for Macintosh with these
885: functions compiled in.
886:
887: Establish a symbol NLCHAR. If this symbol is defined, then text (ascii)
888: files are stored with a single character (such as lf or cr) terminating
889: each line, and this character is the value of NLCHAR. If not defined,
890: then the system uses CRLF. When NLCHAR is defined, C-Kermit maps between
891: that character and CRLF.
892:
893: ckcfns.c, ckcfn2.c (formerly ckfns.c, ckfns2.c):
894:
895: . change all calls to screen() to new form.
896: . fix bug in sfile() that sometimes prevented literal names from working.
897: . don't translate send-as names in sfile, always use them literally.
898: . change input() to always resend() after getting a NAK.
899: . change getpkt to clear leftovers when starting new file (next = -1),
900: so that filenames in F pkt wouldn't have garbage after previous file
901: was interrupted.
902: . Change call to zchin() to use new calling convention so bytes with
903: hi bit on won't be confused with eof on some systems.
904: . Reset czseen in seof, not in clsif, so that remote ^X while C-Kermit
905: sending will result in correct Z packet with D in data.
906: . In resend(), don't send any packet if packet buffer is empty.
907: . Un-hardwire getch() from Unix newline text file convention.
908: . Fix bug that sometimes resulted in contents of R or X packet
909: having first character doubled.
910: . Fix bug in getpkt that prevented leftovers from being transmitted
911: after end of file.
912: . Have tinit() clear c[xz]seen and filnam to prevent bad things happening
913: after interruption or emergency protocol exit.
914: . Have syscmd() return 0 if called with null string. This allows single
915: process systems like the Macintosh to act as servers, even if they can't do
916: commands like remote directory.
917: . Send out initial nak when doing receive, so that there will be something
918: in the packet buffer to resend.
919: . Check for failure return code from zchout, to catch disk full errors, etc.
920: . When server getting input from a system function, call zopeni() on new
921: ZSYSFN channel, rather than circumventing zopeni() by calling zopen().
922: . Clean up inlin() a little, use maxt vs MAXTRY consistently.
923: . Change rpack,spack,rpar,spar,etc to use the new, separated send/receive
924: packet parameters (padding,timeout,eol,soh,etc).
925:
926: ckcker.h (formerly ckermi.h):
927:
928: . Removed #include <stdio.h> and <ctype.h> from ckermi.h. Macintosh does not
929: need all that... (thanks, Bill)
930: . Remove include of ckdebu.h (now ckcdeb.h).
931: . Add defs for LF and NUL.
932: . Add def for new ZSYSFN file i/o channel.
933:
934: ckcpro.w (formerly ckprot.w) Protocol Module:
935:
936: . Add "a" state to cancel any transaction.
937: . Remove entries for input='N', since this is now handled by input().
938: . Fix "a" state to not cause "OK" message when files closed.
939:
940: ckucmd.c (formerly ckcmd.c) Unix Command Package:
941:
942: . Set global cmerrp (error prefix) to be same as prompt, but with '>' stripped.
943: . Allow interactive command continuation using trailing '\'.
944: . Change "*bp++ == NUL;" in getwd() to simply "bp++;".
945: . Test for CR as well as NL for line termination (for Apollo Aegis).
946: . In ckucmd.h, #define getchar specially for VMS and Aegis.
947: . In cmfld, return(0) from filling out default when ESC typed; this prevents
948: "log trans <ESC>transact.log <ESC>transact.log <ESC>transact.log ..."
949: . In cmtxt, preserve pointers & counts across calls in case of reparse.
950: . In getwd, return -1, NOT -2, if ^U (line kill) is typed.
951:
952: ckucon.c (formerly ckconu.c) Connect module:
953:
954: . When writing to session log, make some minimal attempt to recover
955: from disk full or other i/o errors (just turn off logging flag).
956: . Add baud and parity info to status display.
957:
958: ckudia.c (formerly ckdial.c) Dial command:
959:
960: . Support added for Racal-Vadic, Cermetek, Penril, General Datacomm.
961: . Use msleep() for higher precision timing.
962:
963: ckufio.c (formerly ckzunx.c, and before that ckzbsd.c):
964:
965: Started from Charles Brooks's 4.2 ckzunx.c, which is the original C-Kermit
966: release 4.2 version, to which he added 4.1bsd support.
967:
968: . Fixed zltor() to only count dots after the last '/'.
969: . Declared malloc as "char *malloc()".
970: . Change fprintf(fp[n],s) to fputs(s, fp[n]) in zsout & zsoutl.
971: . Added zkself() function to log self out, for use by server "bye".
972: . Changed calling convention for zchin() to allow 68000's etc to return EOF.
973: . Make zopeno() chown the file to self, in case program set[ug]id'd.
974: . Changed znewn() to try not to contruct a name that is too long.
975: . Merge in Gregg Wonderly's v7 support.
976: . Make various changes to v7 support to fit proc table stuff to other systems.
977:
978: . (023) Changed zopeni(), when called with new ZSYSFN channel number,
979: to invoke zxcmd() to start a fork and get its fd; also changed zclose()
980: and chkfn() accordingly.
981:
982: . (024) In zchki(), allowed 0 as well as S_IFREG as S_IFMT value for ordinary
983: file; Sys V stat() can return either of these values for an ordinary file.
984: Also, insert missing #else in zkself().
985:
986: . (025) declare zchki() to be of type 'long', so that it can return valid
987: file sizes for big files. Also fix internal variables that hold size to
988: also be long. (Same change to ckvfio.c.) Also, change ckcfns.c and ckucmd.c
989: to declare 'long zchki();'.
990:
991: ckutio.c (formerly ckxunx.c and ckxbsd.c):
992:
993: Started from Charles Brooks's 4.2 ckxunx.c, which is the original C-Kermit
994: release 4.2 version, to which he added 4.1bsd support.
995:
996: . Added the following for Pro/Venix Version 1:
997: - Filled in msleep() using alarm(-clockticks).
998: - Filled in conchk() and ttchk() using TIOCQCNT.
999: - Changed default tty name (dftty) to be "/dev/com1.dout".
1000: - Added line locking via /usr/spool/uucp/LCK..devname and TIOCEXCL.
1001: . Changed local variable c from int to CHAR in ttinl().
1002: . Let CEB's code to hangup line upon close in 4.1bsd also work for 4.2bsd.
1003: . Removed flock() from ttopen(), call ttlock() before trying to open tty.
1004: . Corrected some places where alarms & signals were not turned off.
1005:
1006: . Changed calling convention for ttopen() to allow it to set the "local"
1007: variable, since ttopen can call the system to figure out whether a given
1008: device is the job's controlling tty. Also had to change all modules that
1009: call ttopen() to pass this variable by reference instead of by value.
1010:
1011: . In ttopen, copy ttname string into a static ttnmsv string global to ckutio
1012: module, rather than just copying the pointer (which is pointing at a moving
1013: target). Should fix PC/IX tthang() problem.
1014:
1015: . Add support for AT&T 3B-series under 3BX conditional; initially, it just
1016: follows UXIII conditional, but uses special uucp lock file name.
1017:
1018: ckuusr.c, ckuus2.c, ckuus3.c (formerly ckuser.c, ckusr2.c, ckusr3.c):
1019:
1020: . all occurrences of printf(s) replaced by printf("%s",s) or puts(s).
1021: . shortening of remaining long strings.
1022: . continuation lines now allowed in commands if line ends with "\".
1023: . make "dir" command arg default to ".", not "*", to prevent recursive listing.
1024: . make "!" command with no args do system("$SHELL").
1025: . removed redundant definitions of ncmd, nrmt, nprm.
1026: . totally redefined and rewrote screen() function.
1027: . Change send-as to use cmtxt, not cmfld; remove cmcfm.
1028: . Fix send command to wait for confirmation after wild filespec (this was
1029: broken by send-as change above, few people saw it).
1030: . Put 'log debug' command in #ifdef DEBUG
1031: . Put 'log transaction' command in #ifdef TLOG
1032: . Use 'transact.log' as default name for transaction log, rather than
1033: 'transaction.log', which is too long for all but 4.2bsd Unixes.
1034: . Use symbols for exit() & doexit() return codes, not hardwired 0 and 1.
1035: . Use symbol for name of init file.
1036: . Put Unix-specific messages in #ifdef's
1037: . In 'set line', put speed back to -1 if not local.
1038: . Change "*xargv++;" in cmdlin() to simply "xargv++;".
1039: . Change all "if (x = (cmcfm()) < 0)" to "if ((x = cmcfm()) < 0)".
1040: . In ckuus3, change "turnch == y" to "turnch = y"; this bug prevented
1041: "set handshake" from working.
1042: . Add code in shopar() to look up and display modem type correctly.
1043: . Change "set line" code to have ttopen() figure out local/remote mode.
1044: . Fix "set line" not to erroneously set ttname if it ttopen fails.
1045: . In remote cwd parsing, accept CR as well as NL as password terminator.
1046: . In local directory command, use DIRCMD rather than "ls -l ".
1047: . In screen() function SCR_QE, print long argument with %ld so the ^A
1048: status report doesn't show all 0's on systems where ints and longs
1049: are different length (%ld was already used in the other screen functions).
1050: . Fix multiline 'get' parsing to allow editing (required fixes to ckucmd.c).
1051: . Add conditionals for init file name for various systems.
1052: . Phase out the following set commands:
1053: set end-of-packet, set start-of-packet, set timeout, set padding & pad-ch.
1054: Replace by set send (each of these) and set receive (each of these), to
1055: allow inbound & outbound packet parameters to be set separately.
1056: . Put new set send/receive params in show command display.
1057: . Add version info for ckudia and ckuscr to 'sho ver'.
1058: . Add init file name to 'sho param'.
1059: . 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.