-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.