date and time created 83/07/02 18:46:56 by root
authorBill Joy <root@ucbvax.Berkeley.EDU>
Sun, 3 Jul 1983 09:46:56 +0000 (01:46 -0800)
committerBill Joy <root@ucbvax.Berkeley.EDU>
Sun, 3 Jul 1983 09:46:56 +0000 (01:46 -0800)
SCCS-vsn: usr.bin/uucp/DOC/CHANGES 5.1

usr/src/usr.bin/uucp/DOC/CHANGES [new file with mode: 0644]

diff --git a/usr/src/usr.bin/uucp/DOC/CHANGES b/usr/src/usr.bin/uucp/DOC/CHANGES
new file mode 100644 (file)
index 0000000..5bad69b
--- /dev/null
@@ -0,0 +1,194 @@
+List of Changes to UUCP
+CHANGES        5.1     83/07/02
+This is a list of changes made to the base version of uucp.
+An attempt is made to justify the changes made.
+This list may be useful to those implementing yet better versions.
+       Tom Truscott
+
+anlwrk.c: lots of changes. See the comments at the top.
+       Main efficiency improvement: eliminate stat(II)s.
+       Main bug fix: avoid sending files to wrong system.
+
+Uses Berkeley 4.2bsd directory reading subroutines.
+       Useful if someone wants to run this uucp under 4.2bsd.
+
+Added uucp subdirectories.  See 'README' or 'INSTALL' for details.
+       Subdirectories are enabled by #define-ing UUDIR in uucp.h.
+       No more assembler code needed.
+       grep UUDIR *.[hc]  to see how it is implemented.
+
+Times of form 'hh:mm' are uniformly printf-ed with "%d:%02d".
+       The %02d guarantees a 2 digit number w/ leading zero if needed.
+
+uucp work files (e.g. spool files) are created with umask==WFMASK (uucp.h).
+WFMASK can disable reading by 'others'.  In fact that is the default,
+which might be annoying, but you can change it.
+LOG files (LOGFILE, SYSLOG, ERRLOG) are created with umask=LOGMASK (uucp.h),
+which as distributed permits general read access to avoid loud user screams.
+User files are created with mode (not umask!) at least BASEMODE (uucp.h)
+and possibly with more permissions if the user so specified.
+To avoid loud user screams, BASEMODE should probably be 666
+since uucp-created files are owned by uucp.
+
+chkpth.c: uses dynamic allocation due to Doug Kingston.
+       chkpth() and chkperm() are no longer called for vanilla
+       Spool area requests, so they can be made 'tougher'.
+       These routines, and how they are used, is a bleak area
+       of uucp that should be scrapped and redone coherently.
+
+#define for SYSIII added.  The idea is to have code that runs
+on SYSIII etc. as well as v7, 32V, 4.1bsd, etc.
+However it has never been tested and surely won't work.
+
+cntrl.c: lots off changes here.  Mostly performance enhancements.
+       Bypasses chkpth/chkperm/anyread checks for vanilla spool files.
+       No longer logs 'COPY SUCCEEDED' in LOGFILE, only failures.
+       (Still logs request data. And SYSLOG still logs file transfers.)
+       Has 'PATIENCE' when shipping huge files (this partially works,
+       the huge file gets over okay, and is signed off, but the
+       next attempted transfer fails.  Not catastrophic, but not nice.)
+       Cranks up a uuxqt each time ten 'X' files have gone past
+       (to avoid collecting 100+ X files before uuxqt starts!)
+       ultouch() is called only rarely.  A missing chmod after an 'xmv'
+       has been added.  Due to the extra diligence in chkperm, etc.
+       the old 'put files in /usr/spool/uucppublic' may no longer
+       work "right".  Sorry, but I am not sure how it is supposed to work.
+       I will look into this someday, sooner if it is an actual problem.
+
+vectors/buffers for L.sys lines increased in versys.c and conn.c
+to permit 1000 char lines and 100 'fields' on a line.
+
+conn.c:        obscure changes here, mostly in the send/expect sequence.
+       File descriptor prediction implemented (not tested!),
+       extremely obscure problem apparently first noted by Steve Bellovin.
+       Default end of 'send' string is \r, not \n.
+       PAUSE5 pauses 5 seconds.  \d pauses 1 second (\d\d\d\d\d pauses 5).
+       foo\c  sends 'foo' with no ending \r.  \05 sends control-e.
+       \s sends a space (so does \40). CR sends a \r, LF sends \n.
+       "" sends a \r.  Output is in even parity, changable with send strings
+       P_ZERO, P_EVEN, P_ODD, P_ONE.  BREAK sends a break (or simulates one).
+       And expect string of "" expects nothing, just returns, so
+       to send an initial \r one can just do
+               "" ""   ogin:--ogin:
+       to poke the remote site into sending a login message.
+       Send strings are only printed in debug if uid <= PRIV_UIDS (uucp.h).
+
+       Alan Watt's date changes were in decvax, but should mentioned here.
+       Except I am not sure how they work.  Look near the end of conn.c.
+
+expfile() returns 0 if the expanded file is a vanilla spool file.
+       That way chkpth/chkperm can be bypassed, and those routines
+       can have several huge loopholes removed.
+
+gename.c has Alan Watt's (a) base 62 sequence numbering and (b)
+       greatly reduced locking rate.
+       The comments at the top describe it fairly well.
+       It looks awful, but just use it.  It works.
+
+gio.c: ultouch() is called occasionally (kludge!)
+       IO errors are checked for.
+gnsys.c        calls each system only once in a uucico session.
+       Also, calls callok() only once for each system.
+       I forget how that works.
+
+imsg.c:        strips parity bits, in case the incoming chars have some.
+
+logent.c:      greatly simplified!  Justs opens LOGFILE for append
+       and then seeks to end and writes each new entry.
+       Can cause scrambling on systems w/o guaranteed append-to-end,
+       but is too good a speedup to pass up.
+
+pk.c:  check-summing is done correctly on machines which do not
+       sign-extend characters.  Time-outs made more generous.
+
+lint:  The code has been de-linted as best I could.
+       uucp.h contains lots of declarations of functions which
+       return non-int, like strcpy(), etc.
+
+uucplock.c:
+       ultouch() changed to be done only occasionally.
+       Only changes st_ctime, not atime or mtime,
+       so programs can be written to display time spent locked.
+
+uucp:  uucp x foo!y  causes a uucico to call only system foo,
+       not a uucico to try to call everyone with spooled work.
+
+uucp.h:        unused #defines have been removed.
+
+uulog.c:       greatly simplied, since logent.c is greatly simplied.
+       Only used in forms 'uulog -u user' and 'uulog -s system'.
+       Also, 'uulog -uuser' and 'uulog -ssystem' are permitted.
+       And both options may be specifed. None is an error.
+
+uux:   -g<g> option added to specify priority grade.
+       -c option does not copy.  -l is a synonym.
+       'X' files use local system name to avoid possible name conflict.
+       uucico cranked up calls only target system, not everyone.
+
+uuxqt: reads commands from /usr/lib/uucp/L.cmds.
+       A line of form 'PATH=...' changes the command search path.
+
+uucpname.c:    A real kludge went here.
+       On some UNIX systems, a program's set-user-id bit is ignored
+       if the invoker is root.  But then uucp would create files
+       owned by root, and if not generally writable uucp
+       would later be unable to write on them (e.g. LOGFILE).
+       So uucpname, since it is called at the start of
+       every relevant uucp program, checks for getuid()==geteuid()==0
+       in which case it changes its uid/gid to that of the owner of
+       the file /usr/lib/uucp/uucico.
+
+Debugging mode is permitted only to invokers with uid <= PRIV_UIDS.
+
+dialout.c routine has dialend() routine which is called to hang up.
+Tue Mar 29 16:25:01 EST 1983
+
+Makefile: GROUP variable added so file OWNER and GROUP are both set correctly.
+uuxqt/uucico/uuclean are no longer executable by 'others'.
+
+uucp.h: PRIV_UIDS reduced to 3 to reduce security danger.
+
+cico.c: cleanup() ioctl(II)s changed to avoid hang-up on Gould/SEL machine.
+
+anlwrk.c: Infinite loop check was buggy, causing occasional,
+sometimes persistent, 'NO WORK' messages.  Simpler method now used.
+
+conn.c: dialout() argument format changed to support variant dialers.
+Also, #defines added to support different UNIX-es understanding
+of different baud rates.
+
+Compatibility mods:
+#include <ascii.h> in dialout.c now deleted.  ncsu!mcm
+       (Mike Mitchell)
+
+System V compatibility mods.  burl!lda, Larry Auton
+PATH=... in Makefile changed to APATH=... .
+
+FIOCLEX added to prevent ACU/communication files being inherited by children.
+
+Files cleaned up (register variables added) by Mike Mitchell (ncsu!mcm).
+
+u[bs]_sst.c, us_rrs.c: "a+" fopen mode changed to "r+".  NOTE:
+       uusub, uustat are not claimed to work in this version.
+       Further, "r+" does not work in 4.1bsd or 32V.
+
+cntrl.c calls wait(II) after uuxqt()s are started, to avoid
+filling the proc table with zombies.
+
+uuxqt now sorts "X" files to keep execution in order.
+
+setline.c: fixes for 'system III' sites.  NOT TESTED.
+
+gwd.c: The pwd(I) is run with effective uid reverted to the real uid.
+
+logent also prints to stderr if debugging is on
+
+UNET channel added.  Still running slowly, though.
+
+Changed XQTDIR from /usr/lib/uucp/.XQTDIR to /usr/spool/uucp/XTMP.
+
+Add gethostname().
+
+Add SYSFILECR.
+
+sysexits.h added