Annotation of 42BSD/usr.bin/uucp/CHANGES, revision 1.1

1.1     ! root        1: List of Changes to UUCP
        !             2: CHANGES        5.1     83/07/02
        !             3: This is a list of changes made to the base version of uucp.
        !             4: An attempt is made to justify the changes made.
        !             5: This list may be useful to those implementing yet better versions.
        !             6:        Tom Truscott
        !             7: 
        !             8: anlwrk.c: lots of changes. See the comments at the top.
        !             9:        Main efficiency improvement: eliminate stat(II)s.
        !            10:        Main bug fix: avoid sending files to wrong system.
        !            11: 
        !            12: Uses Berkeley 4.2bsd directory reading subroutines.
        !            13:        Useful if someone wants to run this uucp under 4.2bsd.
        !            14: 
        !            15: Added uucp subdirectories.  See 'README' or 'INSTALL' for details.
        !            16:        Subdirectories are enabled by #define-ing UUDIR in uucp.h.
        !            17:        No more assembler code needed.
        !            18:        grep UUDIR *.[hc]  to see how it is implemented.
        !            19: 
        !            20: Times of form 'hh:mm' are uniformly printf-ed with "%d:%02d".
        !            21:        The %02d guarantees a 2 digit number w/ leading zero if needed.
        !            22: 
        !            23: uucp work files (e.g. spool files) are created with umask==WFMASK (uucp.h).
        !            24: WFMASK can disable reading by 'others'.  In fact that is the default,
        !            25: which might be annoying, but you can change it.
        !            26: LOG files (LOGFILE, SYSLOG, ERRLOG) are created with umask=LOGMASK (uucp.h),
        !            27: which as distributed permits general read access to avoid loud user screams.
        !            28: User files are created with mode (not umask!) at least BASEMODE (uucp.h)
        !            29: and possibly with more permissions if the user so specified.
        !            30: To avoid loud user screams, BASEMODE should probably be 666
        !            31: since uucp-created files are owned by uucp.
        !            32: 
        !            33: chkpth.c: uses dynamic allocation due to Doug Kingston.
        !            34:        chkpth() and chkperm() are no longer called for vanilla
        !            35:        Spool area requests, so they can be made 'tougher'.
        !            36:        These routines, and how they are used, is a bleak area
        !            37:        of uucp that should be scrapped and redone coherently.
        !            38: 
        !            39: #define for SYSIII added.  The idea is to have code that runs
        !            40: on SYSIII etc. as well as v7, 32V, 4.1bsd, etc.
        !            41: However it has never been tested and surely won't work.
        !            42: 
        !            43: cntrl.c: lots off changes here.  Mostly performance enhancements.
        !            44:        Bypasses chkpth/chkperm/anyread checks for vanilla spool files.
        !            45:        No longer logs 'COPY SUCCEEDED' in LOGFILE, only failures.
        !            46:        (Still logs request data. And SYSLOG still logs file transfers.)
        !            47:        Has 'PATIENCE' when shipping huge files (this partially works,
        !            48:        the huge file gets over okay, and is signed off, but the
        !            49:        next attempted transfer fails.  Not catastrophic, but not nice.)
        !            50:        Cranks up a uuxqt each time ten 'X' files have gone past
        !            51:        (to avoid collecting 100+ X files before uuxqt starts!)
        !            52:        ultouch() is called only rarely.  A missing chmod after an 'xmv'
        !            53:        has been added.  Due to the extra diligence in chkperm, etc.
        !            54:        the old 'put files in /usr/spool/uucppublic' may no longer
        !            55:        work "right".  Sorry, but I am not sure how it is supposed to work.
        !            56:        I will look into this someday, sooner if it is an actual problem.
        !            57: 
        !            58: vectors/buffers for L.sys lines increased in versys.c and conn.c
        !            59: to permit 1000 char lines and 100 'fields' on a line.
        !            60: 
        !            61: conn.c:        obscure changes here, mostly in the send/expect sequence.
        !            62:        File descriptor prediction implemented (not tested!),
        !            63:        extremely obscure problem apparently first noted by Steve Bellovin.
        !            64:        Default end of 'send' string is \r, not \n.
        !            65:        PAUSE5 pauses 5 seconds.  \d pauses 1 second (\d\d\d\d\d pauses 5).
        !            66:        foo\c  sends 'foo' with no ending \r.  \05 sends control-e.
        !            67:        \s sends a space (so does \40). CR sends a \r, LF sends \n.
        !            68:        "" sends a \r.  Output is in even parity, changable with send strings
        !            69:        P_ZERO, P_EVEN, P_ODD, P_ONE.  BREAK sends a break (or simulates one).
        !            70:        And expect string of "" expects nothing, just returns, so
        !            71:        to send an initial \r one can just do
        !            72:                "" ""   ogin:--ogin:
        !            73:        to poke the remote site into sending a login message.
        !            74:        Send strings are only printed in debug if uid <= PRIV_UIDS (uucp.h).
        !            75: 
        !            76:        Alan Watt's date changes were in decvax, but should mentioned here.
        !            77:        Except I am not sure how they work.  Look near the end of conn.c.
        !            78: 
        !            79: expfile() returns 0 if the expanded file is a vanilla spool file.
        !            80:        That way chkpth/chkperm can be bypassed, and those routines
        !            81:        can have several huge loopholes removed.
        !            82: 
        !            83: gename.c has Alan Watt's (a) base 62 sequence numbering and (b)
        !            84:        greatly reduced locking rate.
        !            85:        The comments at the top describe it fairly well.
        !            86:        It looks awful, but just use it.  It works.
        !            87: 
        !            88: gio.c: ultouch() is called occasionally (kludge!)
        !            89:        IO errors are checked for.
        !            90: gnsys.c        calls each system only once in a uucico session.
        !            91:        Also, calls callok() only once for each system.
        !            92:        I forget how that works.
        !            93: 
        !            94: imsg.c:        strips parity bits, in case the incoming chars have some.
        !            95: 
        !            96: logent.c:      greatly simplified!  Justs opens LOGFILE for append
        !            97:        and then seeks to end and writes each new entry.
        !            98:        Can cause scrambling on systems w/o guaranteed append-to-end,
        !            99:        but is too good a speedup to pass up.
        !           100: 
        !           101: pk.c:  check-summing is done correctly on machines which do not
        !           102:        sign-extend characters.  Time-outs made more generous.
        !           103: 
        !           104: lint:  The code has been de-linted as best I could.
        !           105:        uucp.h contains lots of declarations of functions which
        !           106:        return non-int, like strcpy(), etc.
        !           107: 
        !           108: uucplock.c:
        !           109:        ultouch() changed to be done only occasionally.
        !           110:        Only changes st_ctime, not atime or mtime,
        !           111:        so programs can be written to display time spent locked.
        !           112: 
        !           113: uucp:  uucp x foo!y  causes a uucico to call only system foo,
        !           114:        not a uucico to try to call everyone with spooled work.
        !           115: 
        !           116: uucp.h:        unused #defines have been removed.
        !           117: 
        !           118: uulog.c:       greatly simplied, since logent.c is greatly simplied.
        !           119:        Only used in forms 'uulog -u user' and 'uulog -s system'.
        !           120:        Also, 'uulog -uuser' and 'uulog -ssystem' are permitted.
        !           121:        And both options may be specifed. None is an error.
        !           122: 
        !           123: uux:   -g<g> option added to specify priority grade.
        !           124:        -c option does not copy.  -l is a synonym.
        !           125:        'X' files use local system name to avoid possible name conflict.
        !           126:        uucico cranked up calls only target system, not everyone.
        !           127: 
        !           128: uuxqt: reads commands from /usr/lib/uucp/L.cmds.
        !           129:        A line of form 'PATH=...' changes the command search path.
        !           130: 
        !           131: uucpname.c:    A real kludge went here.
        !           132:        On some UNIX systems, a program's set-user-id bit is ignored
        !           133:        if the invoker is root.  But then uucp would create files
        !           134:        owned by root, and if not generally writable uucp
        !           135:        would later be unable to write on them (e.g. LOGFILE).
        !           136:        So uucpname, since it is called at the start of
        !           137:        every relevant uucp program, checks for getuid()==geteuid()==0
        !           138:        in which case it changes its uid/gid to that of the owner of
        !           139:        the file /usr/lib/uucp/uucico.
        !           140: 
        !           141: Debugging mode is permitted only to invokers with uid <= PRIV_UIDS.
        !           142: 
        !           143: dialout.c routine has dialend() routine which is called to hang up.
        !           144: Tue Mar 29 16:25:01 EST 1983
        !           145: 
        !           146: Makefile: GROUP variable added so file OWNER and GROUP are both set correctly.
        !           147: uuxqt/uucico/uuclean are no longer executable by 'others'.
        !           148: 
        !           149: uucp.h: PRIV_UIDS reduced to 3 to reduce security danger.
        !           150: 
        !           151: cico.c: cleanup() ioctl(II)s changed to avoid hang-up on Gould/SEL machine.
        !           152: 
        !           153: anlwrk.c: Infinite loop check was buggy, causing occasional,
        !           154: sometimes persistent, 'NO WORK' messages.  Simpler method now used.
        !           155: 
        !           156: conn.c: dialout() argument format changed to support variant dialers.
        !           157: Also, #defines added to support different UNIX-es understanding
        !           158: of different baud rates.
        !           159: 
        !           160: Compatibility mods:
        !           161: #include <ascii.h> in dialout.c now deleted.  ncsu!mcm
        !           162:        (Mike Mitchell)
        !           163: 
        !           164: System V compatibility mods.  burl!lda, Larry Auton
        !           165: PATH=... in Makefile changed to APATH=... .
        !           166: 
        !           167: FIOCLEX added to prevent ACU/communication files being inherited by children.
        !           168: 
        !           169: Files cleaned up (register variables added) by Mike Mitchell (ncsu!mcm).
        !           170: 
        !           171: u[bs]_sst.c, us_rrs.c: "a+" fopen mode changed to "r+".  NOTE:
        !           172:        uusub, uustat are not claimed to work in this version.
        !           173:        Further, "r+" does not work in 4.1bsd or 32V.
        !           174: 
        !           175: cntrl.c calls wait(II) after uuxqt()s are started, to avoid
        !           176: filling the proc table with zombies.
        !           177: 
        !           178: uuxqt now sorts "X" files to keep execution in order.
        !           179: 
        !           180: setline.c: fixes for 'system III' sites.  NOT TESTED.
        !           181: 
        !           182: gwd.c: The pwd(I) is run with effective uid reverted to the real uid.
        !           183: 
        !           184: logent also prints to stderr if debugging is on
        !           185: 
        !           186: UNET channel added.  Still running slowly, though.
        !           187: 
        !           188: Changed XQTDIR from /usr/lib/uucp/.XQTDIR to /usr/spool/uucp/XTMP.
        !           189: 
        !           190: Add gethostname().
        !           191: 
        !           192: Add SYSFILECR.
        !           193: 
        !           194: sysexits.h added

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.