Tue Apr 7 01:02:17 1992 Ian Lance Taylor (ian@comton.airs.com) * Released version 1.03. Mon Apr 6 15:49:08 1992 Ian Lance Taylor (ian@comton.airs.com) * uucico.c (faccept_call): Marc Boucher: set *pqsys to NULL. * bnu.c (ubnu_read_systems, fbnu_find_port): Erik Forsberg: support multiple character modem classes. Fri Apr 3 00:37:25 1992 Ian Lance Taylor (ian@comton.airs.com) * sys2.unx: Petri Helenius: only clear known bits in termio or termios structure; didn't change HAVE_BSD_TTY handling--maybe next version. * configure.in: test TIMES_DECLARATION_OK correctly. * Makefile.in: update version to 1.03, remove distclean, add mostlyclean per GNU standards. * sys1.unx, chat.c: minor cleanups for gcc 2.1. Thu Apr 2 17:51:36 1992 Ian Lance Taylor (ian@comton.airs.com) * tstuu.c: conditionally declare times. * uucp.h, prot.c, sysinf.c, prtinf.c: added gcc 2.0 format checking to ulog, and fixed a few problems it discovered. Wed Apr 1 16:21:08 1992 Ian Lance Taylor (ian@comton.airs.com) * sys3.unx (esysdep_open_receive): David J. MacKenzie: some USG_STATFS systems use 512 as the block size of f_bfree, despite the existence of f_bsize. * port.c (fport_open): initialize stdin port. * policy.h, log.c: added CLOSE_LOGFILES configuration parameter. * sys2.unx: T. William Wells: handle a system without or . * configure.in: Franc,ois Pinard: warn if none of napms, nap, usleep, poll or select are available, since \p will sleep for a full second. * Makefile.in: Gerben Wierda: fixed uninstall to set file owner and mode correctly. Also changed install to handle uucp.info-4 and uustat.1. * MANIFEST: added uucp.info-4 and uustat.1. * uustat.1: Wrote. * uucico.8, uuxqt.8, uucp.1, uux.1: updated -x switch, cleaned up a bit. Tue Mar 31 14:40:06 1992 Ian Lance Taylor (ian@comton.airs.com) * sys1.unx (usysdep_initialize): use $PWD to get the current working directory if it's defined and correct. * sys1.unx (usysdep_initialize): Brian Antoine: use name from getpwname rather than getlogin. * uucp.texi: David J. MacKenzie: put in a number of corrections. Also split sys file and config file nodes, and rearranged several nodes. * protg.c (fgsenddata): Niels Baggesen: packet to retransmit did not get reset correctly. Mon Mar 30 10:03:28 1992 Ian Lance Taylor (ian@comton.airs.com) * tcp.c (ftcp_reset): Petri Helenius: TCP server never started uuxqt, because it exited in ftcp_reset. * policy.h, sysh.unx, sys2.unx (fsserial_lockfile): added HAVE_SVR4_LOCKFILES configuration parameter. * sys3.unx (esysdep_open_receive): Niels Baggesen: USG statfs has an f_bsize field. Sun Mar 29 23:04:20 1992 Ian Lance Taylor (ian@comton.airs.com) * uucp.h, sysinf.c, prot.c, prote.c, protf.c, protg.c, prott.c: Niels Baggesen: added new debugging types abnormal and uucp-proto. * uucico.c (fuucp), prot.c (freceive_file), file.c (fstore_recfile): Dirk Musstopf: if a file receive fails before it starts, perhaps because the file was too large, remember to remove the temporary file. * sys2.unx (fsserial_lock, fsserial_open, fsserial_write, fsserial_io): always block and unblock the read and write descriptors together. Sat Mar 28 14:40:50 1992 Ian Lance Taylor (ian@comton.airs.com) * uustat.c: allow multiple systems and users to be specified at once; likewise for kills and rejuvenates. Allow old and young to be combined with systems and users. As suggested by Niels Baggesen, make machine status output more columnar. * uucp.h, uucico.c, config.c, sys3.unx: Michael I Bushnell: renamed enum tstatus to tstatus_type to avoid conflict with on some systems. * config.c, sysinf.c, prtinf.c, chat.c: David J. MacKenzie: allow backslash newline quoting in all TAYLOR_CONFIG configuration files. * chat.c (fchat): David J. MacKenzie: handle empty subexpect strings correctly. * uucico.c (main, fcall): Petri Helenius: must dump controlling terminal before going to next alternate. Also fixed David J. MacKenzie bug in which a signal did not prevent the next alternates from being tried. Also made sure qtime was always freed up. * uucp.h, uucico.c (fdo_call), sysinf.c (tialternate), uuchk.c (ukshow): Franc,ois Pinard: allow a name to be given to an alternate, and display the name when placing a call. * chat.c (fcprogram), port.c (fport_open, fport_close): David J. MacKenzie: send port device rather than port name to a chat program using \Y; make sure port device is reset if port open fails and when port is closed. * uucico.c (fuucp), log.c (ulog, ustats, ustats_close): close log and statistics file every time master and slave switch roles. Fri Mar 27 00:31:23 1992 Ian Lance Taylor (ian@comton.airs.com) * uucico.c (fdo_call): Mark Mallett: minor cleanup. * uuname.c (main): Franc,ois Pinard: output aliases, added -a switch. * uucico.8, uuxqt.8, uux.1, uucp.1: David J. MacKenzie: changed .TP5 to .TP 5; also updated to 1.03. * tstuu.c: Roberto Biancardi: if SIGCHLD is not defined, define it as SIGCLD. * config.c: David J. MacKenzie: cMaxuuxqts is independent of HAVE_TAYLOR_CONFIG. * uucp.h: Gerben Wierda: don't always declare bzero. * sys7.unx (ussettime, fsysdep_lock_status): Niels Baggesen, Gerben Wierda: minor patches. * sys2.unx: Gerben Wierda: minor cleanups. * uucp.h: Niels Baggesen: simplified debugging message macros to avoid broken compilers. * sys2.unx: don't use TIOCEXCL locking. * sys2.unx: rework HAVE_UNBLOCKED_WRITES == 0 to work even if writes are unblocked. Correct initialization of fwrite_blocking. * Makefile.in, configure.in: David J. MacKenzie: various cleanups. Changed default newconfigdir definition. Supported compilation in a different directory. Used symbolic links if available. Changed default infordir definition per Franc,ois Pinard. * policy.h: David J. MacKenzie: various cleanups. Thu Mar 26 12:17:41 1992 Ian Lance Taylor (ian@comton.airs.com) * sys3.unx: reduced race condition in fsdo_lock. * sys1.unx: Gerben Wierda: various cleanups. Also don't set sa_flags to SV_INTERRUPT per Chip Salzenberg. Wed Mar 25 22:20:24 1992 Ian Lance Taylor (ian@comton.airs.com) * configure.in: Overhauled for readability and functionality as suggested by T. William Wells and others. Added bug checks, including for SCO memmove and ftime. Tue Mar 24 12:18:56 1992 Ian Lance Taylor (ian@comton.airs.com) * sysinf.c (uiread_systems): fixed handling of alternates in file-wide defaults. Wed Mar 18 01:01:25 1992 Ian Lance Taylor (ian@comton.airs.com) * config.c (tprocess_one_cmd): handle CMDTABTYPE_FULLSTRING correctly if there are no arguments. * Released beta version 1.03 * sys1.unx (usysdep_detach): open the controlling terminal in non delay mode since it might be a modem. Tue Mar 17 00:01:53 1992 Ian Lance Taylor (ian@comton.airs.com) * uucico.c (fdo_call, faccept_call): T. William Wells: set current time in status file when call completes. * sys1.unx (iswait), sys2.unx (fsserial_read, fsserial_write, fsserial_io): log signals when they occur, even if we continue some sort of loop, rather than waiting for the next ulog call. * sys2.unx (fsserial_lock, fsserial_open): don't block when opening the write descriptor. Mon Mar 16 00:14:43 1992 Ian Lance Taylor (ian@comton.airs.com) * system.h, uuxqt.c (uqdo_xqt_file), sys5.unx (fsysdep_execute): pass command to fsysdep_execute as first element of argument array. * tcp.c: declare _exit. * uucp.h: move definition of const before use for non ANSI C. * uucp.h, sys1.unx: undefine remove in uucp.h if the system does not have it to avoid conflict with macro definitions. * uucico.c, uuxqt.c, protf.c, prott.c, prote.c, config.c, chat.c, port.c, sys2.unx: miscellaneous cleanups. * tcp.c (ftcp_open): cast argument to bzero. * time.c (qtimegrade_parse): cast argument to qttime_parse to long. * file.c: changed iRecmode to unsigned int. * configure.in, uucp.h: on SCO 3.2.2 sig_atomic_t is defined in but not . * sys1.unx: undefined remove before the function definition to avoid trouble on systems for which it is a macro. * Makefile.in: removed dependencies of getopt.o. * sys1.unx, sys7.unx, tstuu.c: adjusted external declarations. * getopt.h, getopt.c: get new versions from glibc 1.01. * sys1.unx: don't declare sigemptyset. * version.c: updated to beta 1.03. * chat.c (fcsend): Scott Ballantyne: go ahead and send a character for an illegal escape sequence rather than failing out. * uuxqt.c (uqdo_xqt_file), sys5.unx (zsysdep_find_command): cast result of alloca. * protg.c (fgprocess_data): Niels Baggesen: improved debugging information. Also tweaked fgprocess_data code to use memchr to find the next DLE rather than searching for it by hand. * uucico.c (faccept_call, fuucp): accept SVR4 -U flag giving maximum file transfer size; accept and ignore SVR4 -R flag meaning that the system supports file restart. Sun Mar 15 00:21:56 1992 Ian Lance Taylor (ian@comton.airs.com) * sysinf.c (titime, titimegrade): permit a retry time to be specified as an optional additional argument. * uucico.c (zget_uucp_cmd, zget_typed_line): turn off DEBUG_PORT when doing DEBUG_HANDSHAKE. * policy.h, sysh.unx, sys1.unx, sys2.unx (fsblock_writes, fsserial_write, fsserial_io): added configuration parameters HAVE_UNBLOCKED_WRITES and SINGLE_WRITE. Also blocked signals while clearing afSignal in fsysdep_modem_close. * chat.c (icexpect, fcsend): turn off DEBUG_PORT while doing chat script debugging. * sysh.unx, sys2.unx (fsserial_lock, fsserial_open, fsserial_write, fsserial_io, fsysdep_tcp_read, fsysdep_tcp_write, fsysdep_tcp_io): T. William Wells: some systems don't support unblocked writes, so don't use them. * port.c (fport_read, fport_write): show calls to fport_read and fport_write under DEBUG_PORT. * bnu.c (fbnu_find_port): Scott Ballantyne: accept "Any" as a Device speed. Sat Mar 14 20:52:11 1992 Ian Lance Taylor (ian@comton.airs.com) * uucp.h, system.h, sysh.unx, uucico.c (main, zget_typed_line), uuxqt.c (main), uucp.c (main), uux.c (main, uxcopy_stdin), tcp.c (ftcp_open), log.c (ulog, ulog_close), sys1.unx (ussignal), sys2.unx (fsserial_close, fsysdep_modem_end_dial, fsserial_read, fsserial_write, fsserial_io, fsysdep_tcp_read, fsysdep_tcp_write, fsysdep_tcp_io): T. William Wells and Chip Salzenberg: keep an array of signals so that a new signal doesn't obliterate our knowledge of an old signal. Johan Vromans: if we get SIGINT continue the current session but don't start any new ones. * sysh.unx, sys1.unx (isspawn, espopen, iswait, fsysdep_mail, fsysdep_run, getcwd, mkdir), sys2.unx (fsrun_chat), sys3.unx (fsysdep_wildcard_start), sys5.unx (fsysdep_execute), sys7.unx (fsysdep_lock_status), uuxqt.c (uqdo_xqt_file), tcp.c (ftcp_open), tstuu.c (uchild): added function isspawn, espopen and iswait and channeled all execs of new processes and waits through them. Fri Mar 13 18:00:04 1992 Ian Lance Taylor (ian@comton.airs.com) * sysinf.c (uset_system_defaults): Chip Salzenberg: changed default login script timeout to 10 seconds. * prot.h, prot.c (freceive_data, breceive_char), protg.c, protf.c, prott.c, prote.c: changed breceive_char to go through freceive_data rather than calling fport_read directly. Added an freport argument to freceive_data, and change all old calls to pass it in as FALSE. Thu Mar 12 14:49:59 1992 Ian Lance Taylor (ian@comton.airs.com) * uucp.h: added a padding byte to scmd structure, since at least one compiler needs it. * uucp.c (main): use fake local name (from ``myname'' command) when generating an execution request intended for the local system. * sysh.unx: corrected readdir prototype. * sys2.unx: moved local header files ahead of sleep routine determination. * General overhaul to change debugging system. Debugging is now done by type rather than by number. iDebug is now interpreted as a bit sequence. DEBUG may only be 0 (no checks or debugging), 1 (checks, no debugging) or 2 (checks and debugging). The debugging names are parsed by idebug_parse and tidebug_parse in config.c. The debugging types are additive. Many source files changed. Inspired by Michael Richardson, Johan Vromans and Peter da Silva. Wed Mar 11 12:01:03 1992 Ian Lance Taylor (ian@comton.airs.com) * policy.h, uuxqt.c (uqdo_xqt_file): Chip Salzenberg: support Internet mail addresses in uuxqt replies (added configuration parameter HAVE_INTERNET_MAIL to control this). * sys7.unx (fskill_or_rejuv): permit uucp user to delete any job. * uucp.h, system.h, sysh.unx, config.c, uuxqt.c (main, uqabort), sys5.unx (isysdep_lock_uuxqt, fsysdep_unlock_uuxqt), bnu.c (ubnu_read_sysfiles): Marty Shannon: added max-uuxqts command, along with support for BNU Maxuuxqts, to limit number of concurrent uuxqt processes. * chat.c (icexpect, fcsend), uucico.c (zget_uucp_cmd, zget_typed_line): improved debugging by avoiding incredibly long lines. * system.h, sys5.unx (fsysdep_execute), uuxqt.c (uqdo_xqt_file): Jon Zeef: if a temporary failure occurs, retry the execution later. Tue Mar 10 12:40:30 1992 Ian Lance Taylor (ian@comton.airs.com) * sysh.unx, sys1.unx (isfork), sys2.unx, sys5.unx, tcp.c: Franc,ois Pinard: retry fork several times before giving up. * uucp.h, prot.c (fploop, fgot_data), file.c (usendfile_error, urecfile_error, frecfile_rewind): Niels Baggesen: if we can't read or write a file, treat it as a temporary error rather than a permanent error; if we get an error on write, drop the connection rather they try to continue. * uucp.h, system.h, sysh.unx, uucico.c (fuucp), prot.c (fsend_file, freceive_file), file.c (fsent_file, usendfile_error, freceived_file, urecfile_error, fmail_transfer), sys1.unx (usmake_spool_dir), sys4.unx (zsysdep_save_temp_file): if a file send fails, save the file away rather than lose it forever. * uucico.c (main): don't run uuxqt if we got a SIGTERM. * tcp.c (ftcp_open): Petri Helenius: have server fork twice to avoid zombies. * port.h, prtinf.c, v2.c, bnu.c (fbnu_find_port), uucico.c (fdo_call, faccept_call), uuchk.c (fkshow_port): added protocol command for ports, mostly to support BNU. Also modified uuchk to make the absence of any matching port or dialer more obvious. * sys3.unx (esysdep_open_receive): check size of destination file system as well as temporary file system; handle f_bsize field under FS_MNTENT. * configure.in, sysh.unx: test for including and in the same file, setting new configuration parameter HAVE_TERMIOS_AND_SYS_IOCTL_H accordingly; handle it in sysh.unx. Mon Mar 9 00:06:12 1992 Ian Lance Taylor (ian@comton.airs.com) * sys2.unx (fsserial_close): Franc,ois Pinard: sleep for a second after closing the serial port to give it a chance to settle. * sysh.unx (fsetterminfodrain), sys2.unx (fsserial_close, fsserial_reset, fsserial_set): wait for terminal output to drain before closing it, resetting it, or changing its parameters. * uucico.c (zget_uucp_cmd): Ted Lindgreen: strip parity bit from initial handshake strings. * system.h, sys3.unx (esysdep_open_send), uucico.c (fuucp): Ted Lindgreen: don't send a mail message if a file to send has been removed, since it might have been sent in a previous session. * uuchk.c (ukshow): Zacharias Beckman: put list of permitted programs and execution path on separate lines. * uucico.c (fdo_call, faccept_call): only look for hangup string in debugging mode, since there's nothing to be done with it anyhow. * uucico.c (faccept_call): Ted Lindgreen: report the minimum transfer grade requested during an incoming call in the log file. * uucp.h, uutime.h, config.c, uucico.c (fcall), time.c (ftimespan_match, btimegrade, cmax_size_now): added a new status type for ``wrong time to call''. If a system can never be called, this status type is not used (if an attempt is made to call the system, the status is left unchanged). Sun Mar 8 11:41:45 1992 Ian Lance Taylor (ian@comton.airs.com) * uucico.c (main, flogin_prompt, faccept_call): Ted Lindgreen: if we were asked to call a single system, or if a single system called in, then start uuxqt with -s for just that system. * uucico.c (main): Ted Lindgreen: ignore the -u option. * tstuu.c: Ted Lindgreen: don't include if it's not there. Also removed the ``ignore this error'' message from the chat scripts since it's no longer marked as an error. * sys2.unx (fsserial_set): Ted Lindgreen: if CRTSCTS is defined and turned on, then don't turn on IXOFF. * uucp.h, log.c, uucico.c (fdo_call, faccept_call): Ted Lindgreen: report the port name and (for incoming calls) the login name in the log file. Sat Mar 7 10:00:47 1992 Ian Lance Taylor (ian@comton.airs.com) * port.h, prtinf.c, sys2.unx (fsserial_lockfile, fsserial_lock): Peter da Silva: added ``lockname'' command to ports to permit specification of the file name to use when locking. * sys1.unx (usysdep_detach): let setpgrp fail silently. * sys2.unx: always include if it's present on the system. * time.c (btimegrade, cmax_size_now): removed extraneous semicolons. * sys2.unx (fsserial_lock, fsserial_open, fsserial_close): support TIOCEXCL locking. * sys2.unx (fsserial_open): preserve unknown bits in c_cflag when using HAVE_SYSV_TERMIO or HAVE_POSIX_TERMIOS. * prot.h: never included more than once. Fri Mar 6 21:53:28 1992 Ian Lance Taylor (ian@comton.airs.com) * uucp.h: Eric Ziegast: some systems don't define EXIT_SUCCESS or EXIT_FAILURE in stdlib.h. * uucp.h, uutime.h, uucico.c (fuucp), sysinf.c (uinittimetables, uaddtimetable), uuchk.c (main, ukshow_size, ukshow_time, qcompress_span), time.c (all new): rewrote time routines completely for consistency and simplicity. Fixed bug causing incorrect maximum possible transfer size. Added new file uutime.h. Wed Mar 4 10:06:13 1992 Ian Lance Taylor (ian@comton.airs.com) * sys2.unx (fsserial_lockfile, fsserial_lock, fsysdep_modem_open, fsysdep_direct_open, fsysdep_modem_close, fsysdep_direct_close): Petri Helenius: if the open failed on a serial port, the lock files were not removed. * config.c (igradecmp): the local variables in igradecmp have to be integers; signed characters might not work correctly (although they would in all normal cases). * sys4.unx (fsysdep_has_work): Johan Vromans: set *pbgrade correctly if we still have work left over that we haven't looked at yet. * tstuu.c (main, uchoose, fwriteable): Roberto Biancardi: use poll if we haven't got select. * uucico.c (zget_uucp_cmd): Michael Haberler: some systems send \n after Shere, rather than a null byte. Tue Mar 3 01:03:22 1992 Ian Lance Taylor (ian@comton.airs.com) * uuxqt.c (main, uqdo_xqt_file): permit local executions, don't get grade out of system dependent file name. * sys4.unx (fsysdep_get_work): Bob Denny: warn if we can't open a command file. * v2.c (uv2_read_systems): Jeff Putsch: infinite loop when reading time string. * uucp.h, sys1.unx, sys2.unx, sys3.unx, tstuu.c, configure.in: Thomas Fischer: some NeXT compatibility stuff: removed externs of sleep and alarm, included in uucp.h. * uucp.h, port.h, uucico.c (zget_uucp_cmd, zget_typed_line), port.c (cdebug_char, udebug_buffer), chat.c (icexpect, fcsend, fcphone), log.c (ulog): Michael Richardson: added LOG_DEBUG_START, LOG_DEBUG_CONTINUE and LOG_DEBUG_END to allow a debugging line in the log file to be built character by character. Used this new feature in chat script debugging, rather than having each character appear on a separate line. Added fPort_debug variable to control port debugging. * uustat.c (fsquery, fsquery_system, fsquery_show): handle execution files queued up for the local system correctly when using -q option (they still don't show up on any other option). * uucp.texi, protg.c (fgstart, fgshutdown): Aleksey P. Rudnev: added remote-window and remote-packet-size 'g' protocol parameters. Reset the parameters to their default values in fgshutdown. * sysh.unx, sys2.unx (fsserial_read, usalarm), sys1.unx (usset_signal, usysdep_detach), uucico.c (main): overhauled fsserial_read yet again. The timeout passed in is now an absolute bound. A special SIGALRM handler does some wierd stuff to avoid any possible race. * config.c (uread_config), sysinf.c (uiread_systems, fcallout_login, fcheck_login), prtinf.c (ffind_port, fread_dialer_info), chat.c (fctranslate), uucico.c (faccept_call): T. William Wells: when using HAVE_TAYLOR_CONFIG in combination with V2 or BNU configuration files, don't complain if the HAVE_TAYLOR_CONFIG files are missing. Mon Mar 2 10:21:36 1992 Ian Lance Taylor (ian@comton.airs.com) * sys2.unx (fsserial_read): T. William Wells: don't arbitrarily extend read timeout. * uux.c (main): check iSignal before entering fread, since the user may have hit ^C earlier in the program. Sun Mar 1 23:39:33 1992 Ian Lance Taylor (ian@comton.airs.com) * policy.h, uucp.h, sysh.unx, sys2.unx (fsserial_lock, fsysdep_modem_close, fsysdep_direct_close), util.c (strlwr), configure.in: Marc Unangst: added HAVE_SCO_LOCKFILES configuration parameter to force lock file names to lower case. Fri Feb 28 00:07:12 1992 Ian Lance Taylor (ian@comton.airs.com) * system.h, uucico.c (faccept_call, fdo_xcmd), uuxqt.c (uqdo_xqt_file), uux.c (main), uucp.c (main, ucspool_cmds), sys3.unx (zsysdep_spool_cmds), uux.1, uucp.1: added -j switch to uucp and uux to display the jobid of the spooled job. * uucp.h, system.h, sysh.unx, uucico.c (fuucp, fdo_xcmd, fok_to_send, fok_to_receive), uuxqt.c (uqdo_xqt_files), uux.c (main, uxcopy_stdin), uucp.c (main), file.c (freceived_file), config.c (fin_directory_list), sys1.unx (fsysdep_file_exists, fsuser_access, fsysdep_in_directory), sys3.unx (esysdep_open_send, fsysdep_move_file), sys5.unx (fsysdep_xqt_check_file): Chip Salzenberg: recheck file access permissions before sending, to try to avoid symbolic link games. Check that the user has search access on all directories down to the file, and read or write access to the file or directory itself. Check in uucp and uux as well as uucico, to provide early messages. Check the standard input file in uuxqt. Be more careful about creating files in the spool directory. This eliminates all security problems I know of, except for a very short race in fsysdep_move_file. * sys3.unx (esysdep_open_send): give an error message if we try to send a directory (used to just fail silently). * system.h, sysh.unx, sys1.unx (usysdep_detach, ussignal, fsysdep_catch, usysdep_start_catch), sys2.unx (fsysdep_modem_end_dial, fsserial_read), uux.c (main): T. William Wells: fsysdep_catch obviously must be a macro, since it calls setjmp. Also TIOCNOTTY sets the process group to 0, so we don't have to fork before calling it. Thu Feb 27 00:08:09 1992 Ian Lance Taylor (ian@comton.airs.com) * sys1.unx, sys6.unx, sys7.unx: added some extern definitions. * configure.in, uucp.h, system.h, sysh.unx, uucico.c (main, ucatch, uabort, zget_typed_line, zget_uucp_cmd), uuxqt.c (main, uqcatch, uqabort), uux.c (main, uxcatch, uxrecord_file, uxabort), uucp.c (main, uccatch, ucrecord_file, ucabort), uustat.c (main, uscatch), uulog.c (main, ulcatch), uuname.c (main, uncatch), uucheck.c (main, ukcatch), log.c (ulog_fatal_fn, ulog, ulog_close), tstuu.c (main, uchild, uprepare_test), sys1.unx (usysdep_initialize, usysdep_detach, usysdep_signal, fsysdep_catch, usysdep_end_catch, ussignal, fsset_signal, fsysdep_run, raise), sys2.unx (usalarm, usysdep_pause, fsserial_lock, fsserial_open, fsysdep_stdin_close, fsysdep_modem_close, fsysdep_modem_end_dial, fsserial_read, fsserial_write, fsserial_io), sys5.unx (fsysdep_execute): T. William Wells: overhaul to support detaching from the terminal and completely reliable signals. uucico now calls usysdep_detach at various points; new option -D prevents detaching. The signal handling code all goes through usysdep_signal, fsysdep_catch and usysdep_end_catch. A signal now just sets iSignal, which is checked at various points, notably in the port routines and in the main loops in uucico and uuxqt. Tue Feb 25 10:59:23 1992 Ian Lance Taylor (ian@comton.airs.com) * protg.c (fgwait_for_packet): Bob Denny: reset the count of timeouts only when data is recognized, so that we aren't fooled by a sequence of imperfect echoes. * sys5.unx (zsysdep_get_xqt): Bob Denny: don't warn if opendir gets ENOENT. I think POSIX requires ENOTDIR, but what can you do? Mon Feb 24 14:37:10 1992 Ian Lance Taylor (ian@comton.airs.com) * uucico.c (main, uusage): don't treat an extra argument as a port name. * sys3.unx (esysdep_truncate): Roberto Biancardi: support F_CHSIZE and F_FREESP in esysdep_truncate. * configure.in, sys2.unx (fsserial_read, usysdep_pause): Roberto Biancardi: use poll to sleep less than a second if we haven't got anything else. * v2.c (uv2_read_systems, fv2_find_port), bnu.c (ubnu_read_systems, fbnu_find_port, fbnu_read_dialer_info), uustat.c (fsworkfile_show): Roberto Biancardi: skip spaces and tabs after doing a strtok ((char *) NULL, ""). * copy.c (fcopy_file), sys1.unx (esysdep_fopen), sys2.unx, sys3.unx (esysdep_open_receive, esysdep_truncate, fsdo_lock, fscmd_seq), sys5.unx (fsysdep_execute), sys7.unx, tstuu.c: John Theus: some systems use instead of . Also changed the code to call creat instead of open when appropriate. Should now work on V7, with the exception of O_NONBLOCK and O_NDELAY in sys2.unx and tstuu.c. * uucp.h: John Theus: if we don't have vprintf, ulog is defined without an ellipsis, so don't declare it with one. Sun Feb 23 14:45:53 1992 Ian Lance Taylor (ian@comton.airs.com) * uucp.h, system.h, bnu.c (ubnu_read_systems), config.c (fin_directory_list), sys1.unx (fsysdep_in_directory), sys5.unx (fsysdep_xqt_check_file), uucp.c (main), uuxqt.c (uqdo_xqt_file), uucico.c (fdo_xcmd, fok_to_send, fok_to_receive), tstuu.c (uprepare_test): only permit files to be received into directories that are world writeable. Check for this in fsysdep_in_directory, with a new argument. Changed calls appropriately. In tstuu create /usr/tmp/tstuu as world writeable. * bnu.c (ubadd_perm_alternate): Doug Evans: after all that, I got it wrong: WRITE only applies to remote requests. * uucp.h, uucico.c (fuucp, fdo_xcmd, fok_to_send, fok_to_receive), uuxqt.c (uqdo_xqt_file), uuchk.c (ukshow), sysinf.c (uset_system_defaults, tialternate), sys5.unx (fsysdep_xqt_check_file), bnu.c (ubadd_perm_alternate): fixed READ and WRITE handling to match BNU semantics. Added zcalled_local_send, zcalled_local_receive, zcalled_remote_send and zcalled_remote_receive fields to ssysteminfo structure for this, and handled them in all the appropriate places. Sat Feb 22 22:30:59 1992 Ian Lance Taylor (ian@comton.airs.com) * Complete overhaul of configuration to use automatic shell script. Eliminated conf.h, now generated by configure. Renamed Makefile to Makefile.in. Added policy.h for administrative decisions and other choices which can not be made automatically. Many changes to many source files, none having to do with code. Thu Feb 20 17:57:55 1992 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (fdo_call): Chip Salzenberg: some systems truncate the Shere= machine name to 7 characters. Wed Feb 19 14:36:31 1992 Ian Lance Taylor (ian at comton.airs.com) * sys7.unx (fskill_or_rejuv): make sure that only the submitter or the superuser is permitted to cancel (or rejuvenate) a request. * system.h, sysh.unx, sys3.unx (zsfile_to_jobid, zsjobid_to_file), sys4.unx (zsysdep_jobid), sys7.unx, uustat.c, Makefile, MANIFEST: wrote uustat. Changed CSEQLEN in sys3.unx from 5 to 4. Added several new system dependent functions, mostly in sys7.unx. * system.h, sys1.unx, log.c, file.c, chat.c, protg.c, uucico.c: rearranged the time functions for the convenience of uustat. Made isysdep_time take an optional pimicros arguments. Renamed usysdep_full_time to isysdep_process_time, and made clear that it need only work within a single process. Changed usysdep_localtime to take a time returned by isysdep_time rather than always use the current time. Changed the calls as appropriate. Tue Feb 18 14:03:19 1992 Ian Lance Taylor (ian at comton.airs.com) * uuxqt.c (main): pass fdaemon argument correctly to usysdep_initialize. Mon Feb 17 17:09:16 1992 Ian Lance Taylor (ian at comton.airs.com) * uuxqt.c (uqdo_xqt_file): T. William Wells: make sure sh uses absolute path of command, rather than relying on PATH. * sys5.unx (zsysdep_find_command): Michael Nolan: allow full command name to be specified by remote system, not just basename, if command is not in path. * log.c (ulog): don't use headers when outputting to terminal. * sys2.unx (fsrun_chat): Bob Denny: log chat program messages as LOG_NORMAL, not LOG_ERROR. Fri Feb 14 00:17:57 1992 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (ucatch), uuxqt.c (uqcatch): Neils Baggesen: under HAVE_BNU_LOGGING, don't lose the system name when dieing. * uulog.c, Makefile, MANIFEST: wrote uulog. * uuname.c, Makefile, MANIFEST: wrote uuname. * bnu.c (ubadd_perm_alternate): T. William Wells: must xstrdup the system name before calling uadd_validate. * log.c (ulog_close): Micheal Nolan: don't refer to eLdebug if the DEBUG configuration parameter is 0. * uucp.c (main): Niels Baggesen: abtname must be copied into memory, or it will be overwritten by the next file to be copied. Sun Feb 9 00:12:58 1992 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (fuucp), prot.c (fsend_file, freceive_file): Bob Denny: call fmail_transfer before calling fsysdep_did_work, because the latter frees up strings used by the former. * sysh.unx, sys1.unx (mkdir), uudir.c (new file), Makefile: added HAVE_MKDIR configuration parameter for systems without the mkdir system call. The emulation function in sys1.unx invokes the new suid program uudir which sets its uid to uucp and invokes /bin/mkdir. Added rules to create uudir to Makefile. Sat Feb 8 14:25:50 1992 Ian Lance Taylor (ian at comton.airs.com) * sysh.unx, sys1.unx (opendir, readdir, closedir), sys4.unx, sys5.unx: added HAVE_OLD_DIRECTORIES configuration parameter to support systems without opendir/readdir/closedir which use original Unix directory format. * sysh.unx, sys1.unx (dup2): added HAVE_DUP2 configuration parameter and dup2 emulation function. * sys1.unx (zsysdep_local_name): put utsname structure on stack rather than making it static. * sysh.unx, sys1.unx (usysdep_initialize, getcwd): if we have neither getcwd nor getwd, fork /bin/pwd to get the current working directory. * system.h, uucico.c (main), uuxqt.c (main), uux.c (main), uucp.c (main), uuchk.c (main), sys1.unx (usysdep_initialize), sys6.unx (fsysdep_needs_cwd, zsysdep_add_cwd): because getting the current working directory can be expensive on Unix, since some implementation of getcwd fork a shell to execute pwd, only try to get the cwd if it is going to be needed by uux or uucp. * uucico.c (main), uuxqt.c (main), uux.c (main), uucp.c (main), uuchk.c (main), log.c (ulog): handle all possible signals raised by abort, namely SIGABRT, SIGILL and SIGIOT. In ulog always call abort rather than raise (SIGABRT). * sys4.unx (usysdep_get_work_free): the qSwork_file information was freed up incorrectly if a file transfer failed. * sysh.unx, sys2.unx: Archaic Zilog System III computers use setret and longret rather than setjmp and longjmp, so I added a HAVE_SETRET configuration option. * prott.c (ftstart, ftsenddata): shifts of integers by more than 15 are not portable. * prot.c (fsend_file, freceive_file, fploop, fgot_data): I ran into an old compiler which couldn't handle the calls to pffile, so I simplified them to use a variable. * port.c (fmodem_dial): cast result of alloca. * getopt.h, getopt.c: Jay Vassos-Libove: renamed getopt and related variables by macro defining them to gnu_*. This avoids conflicts with system header files and system libraries. Fri Feb 7 12:08:42 1992 Ian Lance Taylor (ian at comton.airs.com) * everything: added HAVE_STRING_H and HAVE_STRINGS_H. Removed include of in every source file and put it in uucp.h. Since I had to change everything anyhow, added 1992 to the copyright date. * uucico.c (fcall): Bob Denny: retry time not reached is not really an error, so just make a normal log entry for it. Sun Feb 2 01:38:47 1992 Ian Lance Taylor (ian at comton.airs.com) * uucp.c (main): Get the file name for the destination of a local copy using zsysdep_real_file_name rather than zsysdep_in_dir, since the latter doesn't get the basename of the argument. * sys3.unx (fsysdep_get_status): Niels Baggesen: cast enum to int before comparison. * system.h, uucp.c (main), uux.c (main), sys6.unx (fsysdep_access, fsysdep_daemon_access): Niels Baggesen: check user access to file since programs are running setuid. Previously uucp and uux permitted a file readable only by uucp to be transferred to another system by user request! * chat.c (fchat): Michael Nolan: portions of a chat string might be separated by more than just a single space if they are read from a V2 or BNU configuration file. Fri Jan 31 19:51:57 1992 Ian Lance Taylor (ian at comton.airs.com) * protg.c: Chip Salzenberg: change default window size to 7. * sys3.unx (fsdo_unlock): Michael Nolan: cast result of alloca to (char *), not that it really matters. * log.c (ulog): Michael Nolan: if SIGABRT is not defined, just call abort. Thu Jan 30 18:19:33 1992 Ian Lance Taylor (ian at comton.airs.com) * bnu.c (ubadd_perm): Michael Nolan: debugging check was done wrong for entry with LOGNAME but no MACHINE. Wed Jan 29 13:28:59 1992 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (zget_uucp_cmd): Patrick Smith: only wait a short time for the hangup string. * sys4.unx (iswork_cmp): Patrick Smith: fixed casts to not cast away const. Tue Jan 28 11:06:34 1992 Ian Lance Taylor (ian at comton.airs.com) * sys1.unx, sys3.unx, tstuu.c: Jay Vassos-Libove: removed some declarations of system functions that conflict with system header files on BSD/386 alpha. * Makefile: Jeff Ross: make sure the uninstall target restores the original file owner and mode. * protg.c (fgsendcmd): the previous patch wasn't really correct. Mon Jan 27 22:30:47 1992 Ian Lance Taylor (ian at comton.airs.com) * log.c (ustats): Marty Shannon: don't report a failed transfer under USE_BNU_LOGGING. * sys3.unx (zsysdep_real_file_name): Marty Shannon: a trailing '/' on the name means that it is a directory, even if the directory does not already exist. * uucico.c (fuucp): Marty Shannon: the -f flag indicating that directories should not be created was not being handled correctly. * uucico.c (fcall): Chip Salzenberg: set .Status correctly if wrong time to call. * protg.c (fgsendcmd): John Antypas: didn't handle null byte at end of command which was exactly a power of two in length correctly. Tue Jan 21 14:37:10 1992 Ian Lance Taylor (ian at comton.airs.com) * Released version 1.02. * system.h, uucico.c (main), uux.c (main), uucp.c (main, zcone_system), sys1.unx (fsysdep_run): Chip Salzenberg: have uucp and uux start up uucico -s system rather than uucico -r1. Mon Jan 20 11:45:38 1992 Ian Lance Taylor (ian at comton.airs.com) * sys1.unx (fsysdep_make_dirs): don't try to create a directory with no name. * version.c: change version number to 1.02. * uucico.8, uuxqt.8, uucp.1, uux.1: change version number to 1.02. * MANIFEST: removed texinfo.tex; it's twice the size of any other file, so I think it's just to large to distribute. * uucico.c (fcall, fdo_call): Marty Shannon: update the time in the .Status file if it's the wrong time to call, and upon receiving a call. Sun Jan 19 13:29:23 1992 Ian Lance Taylor (ian at comton.airs.com) * protg.c (fgsendcmd, fgsenddata): Dave Platt: if the remote UUCP accepts packets larger than 64 bytes, assume it can handle differing packet sizes, so if we have a small amount of data to send, use a small packet. Besides the two routines mentioned, also made minor changes to other routines to get the packet length out of the packet data rather than always assuming the same packet size. * conf.h, uucp.h: Matthew Lyle: some systems don't declare errno in , so I added HAVE_ERRNO_DECLARATION. * conf.h, uucp.h, util.c (bsearch): added HAVE_BSEARCH configuration parameter. Sat Jan 18 17:45:28 1992 Ian Lance Taylor (ian at comton.airs.com) * tstuu.c (utransfer): Mike Park: don't sleep when the input buffer is full; it's too slow. * Makefile: when making a distribution,change the mode of separate copies of the configuration files Makefile, conf.h and sysh.unx. * uucico.c (faccept_call): Marty Shannon: update .Status file on incoming calls. * uucp.h, prot.h, uucico.c (fuucp), prot.c (fsend_file, fpsendfile_confirm, freceive_file, fprecfile_confirm, fxcmd, ustats_failed), file.c (fsent_file, usendfile_error, freceived_file, urecfile_error, frecfile_rewind, fmail_transfer): reworked calls to fsydep_did_work and sending of mail messages to be more sensible. Now sends mail to requestor if request fails permanently and does not remove file if request fails only temporarily. Thu Jan 16 11:33:08 1992 Ian Lance Taylor (ian at comton.airs.com) * protg.c (fgsendcmd, fgsenddata): zero out unused bytes in short packets. * prot.c (zgetcmd), protf.c (ffsendcmd), prott.c (ftsendcmd), prote.c (fesendcmd): Niels Baggesen: added some debugging messages. * protg.c (fgsendcmd): corrected misspelling in debugging message. * log.c (ustats): Niels Baggesen: add FAILED to end of xferstats line if appropriate. * uuxqt.c (uqdo_xqt_file): Niels Baggesen: was checking strcmp return value incorrectly, so messages to other systems were not being sent. * sys2.unx, tstuu.c: Mike Park: ioctl is sometimes declared varadic, so we can't declare it. Wed Jan 15 02:03:43 1992 Ian Lance Taylor (ian at comton.airs.com) * sys1.unx: put \n at end of fsysdep_run error message. * sysh.unx, sys1.unx, sys2.unx, tstuu.c: Mike Park: on some systems includes but can only be included once; added HAVE_SYS_TIME_AND_TIME_H to sysh.unx. * tstuu.c: Mike Park: removed prototype for times since some systems don't have clock_t. * conf.h, sys2.unx, util.c: Mike Park: some systems don't have . Every macro used from it already had a check to make sure it was defined anyhow. * tstuu.c (uprepare_test): Mike Park: sh on NeXT interprets a leading ~, so we have to quote the argument to system(3). Incredible. * conf.h, uucp.h: Mike Park: if HAVE_ALLOCA is 0 when compiling with gcc, don't define alloca as a macro. This will let the NeXT define it in some header file. * sysh.unx, sys2.unx, sys5.unx, tstuu.c: Mike Park: handle HAVE_UNION_WAIT completely. Assume that system(3) returns an int which should be put into the w_status field. Define macros for union wait if they are not already defined. Move all this stuff into sysh.unx rather than duplicating it in three different files. * conf.h, uucp.h, sysh.unx, config.c, bnu.c, v2.c, uucico.c, uuxqt.c, uux.c, uucp.c, uuchk.c, Makefile: set directory to look for configuration files in in Makefile rather than in sysh.unx. This forced a number of changes, as now all new style configuration files are looked up using NEWCONFIGLIB. Old style configuration files are looked up using OLDCONFIGLIB. Mon Jan 13 00:35:43 1992 Ian Lance Taylor (ian at comton.airs.com) * sys3.unx: David Nugent: don't declare chmod, since it may be prototyped to take an argument that is smaller than an int. * uucico.c (faccept_call): Chip Salzenberg: only declare sportinfo if it will be used (if HAVE_TAYLOR_CONFIG is true). * sys3.unx (isysdep_get_sequence): Chip Salzenberg: avoid use before set warning from gcc. * protf.c (ffprocess_data): Chip Salzenberg: avoid use before set warning from gcc. * sysh.unx, sys2.unx (fsserial_read, usysdep_pause): Chip Salzenberg: added HAVE_USLEEP configuration parameter for the AIX usleep routine. * uuchk.c, prtinf.c, config.c: Chip Salzenberg: strcmp is a macro on AIX, so avoid declaring it and undef it in config.c where we want to declare it because we want to take its address. * uucp.h, sys3.unx (fsysdep_get_status, fsysdep_set_status): Chip Salzenberg: handle out of range status codes in status files. * Makefile, sysh.unx: defined LIBDIR in the Makefile, rather than forcing the user to define it in two different places. * sys.unx, tstuu.c: Chip Salzenberg: can't declare execl, since it is varadic. * sys1.unx, sys2.unx, sys3.unx, sys5.unx, tstuu.c: David Nugent: can't declare open or fcntl, since they may use ... in header file prototype; added declaration for popen; added casts of first mkdir argument to char *. * sysh.unx, tstuu.c (uchild): Mike Park: added HAVE_WAITPID and HAVE_WAIT4 configuration parameters to allow the use of wait4 as found on the NeXT. * tstuu.c (uprepare_test): Mike Park: use IPUBLIC_DIRECTORY_MODE rather than S_IRWXU | S_IRWXG | S_IRWXO. * sysinf.c (tisystem): Mike Park: ulog was being passed the wrong number of arguments. Sun Jan 12 14:32:47 1992 Ian Lance Taylor (ian at comton.airs.com) * Eliminated CONFIG, INSTALL and THANKS. They are now included in uucp.texi. Changed README and MANIFEST accordingly. Added uucp.info* and texinfo.tex to MANIFEST. * Makefile, uucp.texi: renamed taylor.texi to uucp.texi. * uucico.c (fcall, fdo_call): John Antypas: pass in sportinfo structure for fdo_call to use for an unknown port. * log.c (ulog): allocate enough bytes to name file if HAVE_BNU_LOGGING is in use but zLogfile has no %s. Sat Jan 11 12:11:56 1992 Ian Lance Taylor (ian at comton.airs.com) * Makefile: changed to correspond to GNU standards, according to standards.text of 24 Nov 91. * Makefile: Franc,ois Pinard: use $(INSTALL_PROGRAM) and $(INSTALL) rather than cp to install the programs. * time.c (ftime_now), sys1.unx (usysdep_localtime): John Antypas: use memcpy to get the result of localtime rather than relying on structure assignment. * sysh.unx, prtinf.c: Hannu Strang: changed definition of SYSDEP_STDIN_CMDS to pass structure instead of address of structure to avoid bug in AIX compiler which causes it to fail to recognize an address constant containing the -> operator. Tue Jan 7 10:22:43 1992 Ian Lance Taylor (ian at comton.airs.com) * Released beta 1.02. * protg.c (fgcheck_errors): discount out of order packets in the total error count, and allow a negative error count to mean that any number of errors are accepted. * sysinf.c (tadd_proto_param): Niels Baggesen: allocate number of protocol parameters based on *pc, not sIhold.cproto_params. Sat Jan 4 16:42:21 1992 Ian Lance Taylor (ian at comton.airs.com) * log.c (ulog): tweaked HAVE_V2_LOGGING slightly. * v2.c (uv2_read_systems): set chat script correctly. * uucp.h, sys3.unx: avoid redefining SEEK_SET if it appears in but not . * chat.c (fcsend): made fcsend into a static function. * uucp.h, uucico.c, uuxqt.c, uux.c, uucp.c, uuchk.c, version.c: changed abProgram and abVersion from const char [] to char [] because the Microsoft compiler on SCO can't handle const char [] arrays correctly. * uux.c (main): allocate enough space for log message. * sys1.unx (usysdep_localtime): to get the current time, we can't call usysdep_full_time if the latter uses times. * sys1.unx, sys3.unx: added a couple more extern definitions for SCO 3.2.2. * uucico.c (main): start uuxqt even if a call fails. * sysh.unx, system.h, uuxqt.c (uqdo_xqt_file), sys5.unx (fsysdep_xqt_check_file): Chip Salzenberg: added configuration option ALLOW_FILENAME_ARGUMENTS to permit arguments that look like filenames, to allow undoing the patch I just made. Fri Jan 3 00:44:59 1992 Ian Lance Taylor (ian at comton.airs.com) * system.h, uuxqt.c (uqdo_xqt_file), sys5.unx (fsysdep_xqt_check_file): David J. Fiander: make sure that if an argument looks like a filename we are permitted to access it. * sys3.unx (fsdo_lock): remove temporary file if link fails in fsdo_lock. Thu Jan 2 00:01:53 1992 Ian Lance Taylor (ian at comton.airs.com) * protg.c (fgstart, fgshutdown, fgprocess_data): count remote rejections separately from resent packets when counting errors. Tue Dec 31 14:31:38 1991 Ian Lance Taylor (ian at comton.airs.com) * protg.c (fgstart): Franc,ois Pinard: forgot to initialize cGdelayed_packets. * prot.h, uucico.c, prote.c: added the 'e' protocol, creating the new file prote.c * prot.c (freceive_data), protf.c (fffile), prott.c (ftfile): changed pffile protocol entry point to pass number of bytes being sent; fixed bug in freceive_data which caused to ask for the wrong number of bytes when the buffer was empty. Mon Dec 30 23:16:48 1991 Ian Lance Taylor (ian at comton.airs.com) * sys2.unx (fsserial_open): Chip Salzenberg: don't turn on IXON and IXOFF initially; after all, the initialization packets might contain an XOFF character. Sun Dec 29 00:00:42 1991 Ian Lance Taylor (ian at comton.airs.com) * uucp.h, prot.c (fploop): John Theus: check for EOF before reading from file to work around bug in Tektronix library. * protg.c (fprocess_data): don't send RR packets when an error occurs; the other side will probably ignore them, and it may confuse some Telebit modems. * sys1.unx (usysdep_localtime): don't take the address of a cast value. * log.c (zldate_and_time): wasn't allocating enough buffer space. Sat Dec 28 01:09:58 1991 Ian Lance Taylor (ian at comton.airs.com) * uuxqt.c (uqdo_xqt_file): forgot to initialize zmail. * uucp.h, time.c, copy.c, sys1.unx, sys2.unx, sys3.unx, sys4.unx, sys5.unx, config.c, log.c, uuxqt.c, uux.c, tstuu.c: added a bunch of externs to decrease the number of implicit function definitions. * system.h, sys1.unx (usysdep_localtime), log.c (zldate_and_time): Lele Gaifax: put the full year in the log file, using the format YYYY-MM-DD HH:MM:SS.HH (ending in hundredths of seconds). * config.c (uprocesscmds): Terry Gardner: allow a # to be quoted in a configuration file. Also made uprocesscmds reentrant. * sysh.unx, sys2.unx (fsrun_chat), sys5.unx (fsysdep_execute), tstuu.c (uchild): Monty Solomon: added HAVE_UNION_WAIT configuration option to pass a variable of type union wait to the wait and waitpid system calls. * sysh.unx, sys1.unx (usysdep_initialize): John Theus: added HAVE_GETWD to use getwd instead of getcwd. * sysh.unx, sys1.unx (usysdep_full_time): added HAVE_FTIME configuration option. * tstuu.c (uchild): use TIMES_TICK from sysh.unx rather than CLK_TCK. * conf.h, uucp.h, util.c, getopt.c, tstuu.c: added HAVE_STRCHR and HAVE_INDEX to conf.h. Fri Dec 27 01:00:41 1991 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (fuucp): set fmasterdone correctly when running as a slave. * port.c (cpshow, upshow, fport_read, fport_write, fport_io): cleaned up debugging code by isolating out upshow and by making cpshow handle backslash. * tstuu.c (uprepare_test): create spool directories by hand, to make sure test 6 can be done and to test creating needed directories. * conf.h, uucp.h, bnu.c, v2.c, chat.c, protg.c, prott.c, sysinf.c, tcp.c, getopt.c, tstuu.c, util.c: added HAVE_MEMFNS and HAVE_BFNS to conf.h. Changed memset calls to use bzero. * protg.c (fgcheck_errors, fgprocess_data): added protocol parameter ``errors'' to set maximum number of errors permitted. Also made fgprocess_data only reply once per batch of data. Thu Dec 26 17:54:54 1991 Ian Lance Taylor (ian at comton.airs.com) * tcp.c (ftcp_dial, itcp_port_number): Monty Solomon: cast arguments to avoid prototype errors on NeXT. Mon Dec 23 00:16:19 1991 Ian Lance Taylor (ian at comton.airs.com) * uucp.h, sysinf.c, uucico.c (main, flogin_prompt, faccept_call), uuchk.c (main): David Nugent: allow debugging level to be set for a specific system. Sun Dec 22 15:51:10 1991 Ian Lance Taylor (ian at comton.airs.com) * conf.h, uucp.c, sysh.unx, tcp.c, sys1.unx, sys2.unx, sys3.unx, sys5.unx, sys6.unx, tstuu.c: Monty Solomon: added HAVE_UNISTD_H to conf.h for systems which don't have . Also added externs for all functions from , which required adding definitions for pid_t, uid_t and off_t to sysh.unx. * config.c, prtinf.c, time.c, uuchk.c: added externs for strcasecmp or strncasecmp, to avoid implicit function definitions now that I took the prototypes out of uucp.h. * sys3.unx (fsysdep_get_status): Franc,ois Pinard: the code added to avoid scanf had a stupid bug. * uucp.h: Monty Solomon: removed prototypes for strcasecmp and strncasecmp from uucp.h, since they may be in string.h. Sat Dec 21 16:04:58 1991 Ian Lance Taylor (ian at comton.airs.com) * uucp.h, uucico.c (ucatch), prot.c (fpsendfile_confirm, fprecfile_confirm, ustats_failed), file.c (fsent_file, freceived_file), log.c (ustats): Terry Gardner: record failed file transfers in the statistics file. * uucico.c: change protocol ordering to 't', 'g', 'f'. * uucico.c (faccept_call), tstuu.c (uprepare_test): John Theus: don't warn if the port file doesn't exist when the slave mode uucico looks up the port. * sys1.unx, sys5.unx: moved fsysdep_file_exists from sys5.unx to sys1.unx so that uucico can call it. * uux.c: Fran,cois Pinard: remove parentheses from ZSHELLSEPS so that they may be used to quote arguments as documented. This means that may not be used to start subshell, but that is no great loss. * uux.c (main): use ulog to report illegal grade error message. * sys1.unx (fsysdep_run): use the real program name from abProgram in the error messages in fsysdep_run. Thu Dec 19 19:02:28 1991 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (fdo_call, faccept_call): Terry Gardner: put the length of the conversation in the ``Call complete'' log file message. * uux.c: added space and tab to ZSHELLSEPS, because otherwise the command was parsed to include whitespace. * protg.c, protf.c: Oleg Tabarovsky: added statistical logging messages to the 'g' and 'f' protocols. These go to the main log file right now, but I'm not sure if that's appropriate. * sys2.unx (fsserial_set): don't change terminal settings if we don't have to. * port.c (fport_io): add complete diagnostics for fport_io so we can see every byte that goes in or out. * uucico.c (fuucp): don't give user name in errors produced by getting the next command. * uuxqt.c (main): don't process execute files for unknown systems. This is not unreasonable, I hope, and it avoids errors caused by an uninitialized sUnknown structure. * sys4.unx (fsysdep_get_work_init): sort the previously found files all together so we can correctly check new files using bsearch. * protf.c (pfprocess, pfprocess_data, pfwait): Franc,ois Pinard: don't kill 'f' protocol because of an illegal byte. Also slightly optimized the protocol to wait for up to seven characters at a time rather than just one. Wed Dec 18 00:12:42 1991 Ian Lance Taylor (ian at comton.airs.com) * sysh.unx, sys2.unx, tstuu.c: Terry Gardner: added USE_FOR_UNBLOCKED configuration parameter to support systems that don't permit O_NONBLOCK and O_NDELAY to both be set. * tstuu.c (uchild): give the uucico processes a chance to die on their own rather than killing them immediately. * uuxqt.c (main, uqdo_xqt_file): David Nugent: keep rescanning the list of execute files until nothing can be done. Also, don't remove the execute file if we get some sort of internal error. * sys4.unx (fsysdep_get_work, usysdep_get_work_free): David Nugent: after we've processed all the work files we found initially, rescan the work directory to pick up any that may have come in in the meantime. Also, reset iSwork_file to 0 in usysdep_get_work_free so that we can handle more than one system. * tstuu.c, uucico.c (main, fwait_for_calls, flogin_prompt): added -l option to uucico to prompt for the login name and password once and then exit. Tue Dec 17 00:24:41 1991 Ian Lance Taylor (ian at comton.airs.com) * uucp.h, uucico.c, uuxqt.c, uux.c, uucp.c, config.c (uread_config), log.c (ulog): eliminated ulog_program and added abProgram and ulog_to_file. Made log messages output to stderr more Unix like. * log.c (ulog): use a fixed number of fields in a log file message by replacing a missing system or user with '-'. * port.h, chat.c (renamed fchat_send to fcsend), bnu.c (fbnu_read_dialer_info), prtinf.c (tpcomplete), sys2.unx (fsysdep_modem_close), uuchk.c (ukshow_dialer): T. William Wells: change the modem complete and abort strings into chat scripts. * sys2.unx (fsserial_open): on BSD start in RAW mode to avoid dropping characters when we switch over. I originally thought being able to use XON/XOFF was worth the risk; I no longer think so. * tstuu.c (uprepare_test): have shell script sleep before printing the login name to make sure the second system has finished flushing its input buffer. * protg.c (fginit_sendbuffers), prott.c (ftsendcmd): David Nugent: avoid sending confidential information by zeroing out memory buffers before using them. * sysinf.c (tirequest, titransfer), prtinf.c (tpseven_bit, tpreliable, tpdtr_toggle): Marc Unangst: several functions did not accept true and false as boolean strings, contradicting the documentation. * uucp.h, system.h, sysh.unx, sys1.unx (usysdep_full_time), file.c (fstore_sendfile, fsent_file, fstore_recfile, freceived_file), log.c (ustats): generate statistics in microseconds instead of seconds for more accurate time keeping. * sys2.unx (fsserial_open): David Nugent: flush pending input when a serial port is opened. This will clear out a NO\sCARRIER string left by a previous dropped connection. Mon Dec 16 11:26:17 1991 Ian Lance Taylor (ian at comton.airs.com) * uucico.c (main), uuxqt.c (main), tstuu.c (main, uchild): David Nugent: ignore SIGHUP in uucico and uuxqt, so that they are unaffected by the parent shell closing down and by the remote terminal dropping the connection. * bnu.c (ubnu_read_sysfiles, ubnu_read_systems, fbnu_find_port, fbnu_read_dialer_info): Mike Bernson: ignore lines that begin with whitespace, fix compilation error. Sat Dec 14 20:59:10 1991 Ian Lance Taylor (ian at comton.airs.com) * sys2.unx (fsserial_open): don't turn on ISTRIP initially. * uucp.h, sysinf.c, chat.c (icexpect), uuchk.c (ukshow_chat): added chat-seven-bit command to allow control over whether parity bits are stripped out of chat scripts. * uucp.h, port.h, chat.c (fchat, fcprogram), config.c (tprocess_one_cmd), prtinf.c, sysinf.c (tichat, tprocess_chat_cmd), bnu.c (fbnu_read_dialer_info), port.c (fpdo_dial), uucico.c (fdo_call, faccept_call) uuchk.c (ukshow_chat): changed processing of chat commands to go through tprocess_chat_cmd, avoiding repetition. All chat script information is now held in an schat_info structure. Eliminated the fchat_program function, renaming it fcprogram and making it static to chat.c (it is now called via fchat). Added CMDTABTYPE_PREFIX. Added INIT_CHAT macro to initialize chat script information. Added TTYPE_CMDTABTYPE and CARGS_CMDTABTYPE to eliminate hex constants in tprocess_one_cmd. * sys5.unx (zsysdep_get_xqt): Oleg Tabarovsky: don't stop processing files just because opendir failed on one; it could just be because we don't have read permission. Fri Dec 13 17:43:52 1991 Ian Lance Taylor (ian at comton.airs.com) * config.c (uprocesscmds): don't continually allocate and free the array of arguments. Thu Dec 12 12:46:01 1991 Ian Lance Taylor (ian at comton.airs.com) * prot.c (fgetcmd): Franc,ois Pinard: don't bother to give an error if the final HY doesn't come in; apparently the MtXinu UUCP doesn't send it. * chat.c (icexpect, fchat_send): Franc,ois Pinard: add some chat script debugging messages. * log.c (ulog): David Nugent: move ERROR: from the start of the line to after the date and time; this makes it easier to use awk on log files. * sys3.unx (fsdo_lock), sys1.unx (usysdep_initialize): do locking using link rather than O_CREAT | O_EXCL to avoid race conditions and to safely run as the superuser. * sys3.unx (fsysdep_move_file): fcopyfile now creates the destination file with IPRIVATE_MODE, so we don't need to chmod to it. * sys1.unx (usysdep_initialize, fsysdep_other_config): set the GID as well as the UID, in case anybody wants to run this as a setgid package. Wed Dec 11 10:03:22 1991 Ian Lance Taylor (ian at comton.airs.com) * conf.h, uucp.h, util.c (strtol): Mark Powell: added my own version of strtol to util.c, for systems which lack it. * protg.c (fgstart, fgexchange_init): if we start resending packets during initialization, don't forget which packets we have already seen; otherwise the other side may assume we've already seen them while we're looking for them. Tue Dec 10 15:42:41 1991 Ian Lance Taylor (ian at comton.airs.com) * conf.h, sysh.unx, log.c (ulog, ustats), tstuu.c (uprepare_test): Arne Ludwig: merged in Arne Ludwig's patches to support V2 and BNU style logging, with some minor additions and changes. * sys1.unx, sys3.unx, sys5.unx, uux.c, uucp.c, uucico.c, copy.c, uucp.h, system.h: create directories when necessary rather than assuming that they exist. Added fmkdirs argument to esysdep_fopen and fcopy_file, changing all calls. Added fpublic argument to fsysdep_make_dirs, changing all calls. Moved fsysdep_make_dirs and fsdirectory_exists from sys3.unx to sys1.unx. Added checks for ENOENT in several places in sys3.unx and sys5.unx. * log.c, port.c (fport_open), sys2.unx (fsserial_open): added ulog_device routine to record device name. This is currently only used for the BNU statistics file, but more uses might arise later. * file.c, log.c, uucp.h: moved statistics file routines from file.c to log.c in preparation for supporting BNU log file routines. Mon Dec 9 12:00:52 1991 Ian Lance Taylor (ian at comton.airs.com) * bnu.c (ubnu_read_systems): Arne Ludwig: the device entry for a system can be followed by a comma and a list of protocols. * sysh.unx, sys3.unx (fsdo_lock): Richard Todd: add HAVE_V2_LOCKFILES, in which the process ID is written out in binary. * uuxqt.c (uqdo_xqt_file): Richard Todd: the requestor address is relative to the requesting system. * config.c (uprocesscmds, umulti_pushback): Richard Todd: each line pushed back because of "#" is local to a particular smulti_file structure. * prtinf.c (asPdialer_cmds): Richard Todd: exit the current dialer if the special command "#" is seen. A similar thing should be put in for ports, but it's marginally more complex. * config.c (uprocesscmds): Richard Todd: don't warn if the special "#" command is unrecognized. Sat Dec 7 13:05:40 1991 Ian Lance Taylor (ian at comton.airs.com) * config.c (uprocesscmds): Franc,ois Pinard: don't limit the number of arguments to a command! * chat.c (fchat): handle a chat script which consists only of a single string. Fri Dec 6 16:11:29 1991 Ian Lance Taylor (ian at comton.airs.com) * sys5.unx (fsysdep_execute): David J. Fiander: if execve fails with ENOEXEC, try using /bin/sh with a quoted argument. * uux.c (main): split arguments the way /bin/sh does. If any shell metacharacters appears, request uuxqt to execute the command using /bin/sh. * tstuu.c (uprepare_test): allow the uux to test to send a failure message. * uuxqt.c (uqdo_xqt_file): don't send mail on successful execution unless specifically requested; pay attention to the 'n' line which requests mail on success; ignore the 'Z' line because it now specifies the default action. * sys1.unx (usysdep_initialize), sys6.unx (zsysdep_add_cwd): Franc,ois Pinard: getcwd may legitimately fail, so only give an error if we really need the result. * chat.c (ccescape): Franc,ois Pinard: ccescape should never return a negative number, since the callers don't know how to deal with that. Mon Dec 2 16:26:16 1991 Ian Lance Taylor (ian at comton.airs.com) * bnu.c (ubnu_read_systems): Dave Buck: time strings with grades were parsed in an endless loop! * sys3.unx (fsdo_lock, fsdo_unlock): the alloca when using LOCKDIR was one byte too small. * config.c (tprocess_one_cmd): pass 10 to strtol rather than 0 to avoid surprises if a leading zero is used. * prtinf.c (tpproto_param, tpdialer_proto_param): Niels Baggesen: the ``protocol-parameter'' command didn't work for ports or dialers. Sun Dec 1 09:46:12 1991 Ian Lance Taylor (ian at comton.airs.com) * tstuu.c: don't use the fd_set typedef at all. * tstuu.c (uprepare_test): don't read V2 or BNU configuration files while testing. * bnu.c, v2.c, config.c (uread_config): David Nugent: even if the code was compiled with HAVE_TAYLOR_CONFIG, read the V2 and BNU configuration files if the code was compiled to support them. * uuchk.c (fkshow_port): Bob Izenberg: report dialer/token pairs correctly. Sat Nov 30 17:40:00 1991 Ian Lance Taylor (ian at comton.airs.com) * tstuu.c: Bob Izenberg: copied over conditional definitions of EAGAIN and EWOULDBLOCK from sys2.unx. * bnu.c (fbnu_read_dialer_info): Niels Baggesen: accept dialers with no substitutions. * bnu.c (ubnu_read_systems, ubadd_perm): Niels Baggesen: don't free up zline in ubadd_perm; in fact, changed the calling sequence to not even pass zline in at all. * bnu.c (ubadd_perm): Niels Baggesen: didn't handle multiple MACHINE= and multiple LOGNAME= values in a single Permissions line, because it was clobbering the machine name while processing the first logname. * bnu.c: Made zread and zwrite elements of sperm structure const char * to avoid warning. * copy.c, sys1.unx, sys2.unx, sys3.unx, sys5.unx, tstuu.c: Niels Baggesen: don't multiply include . Eventually there should be a macro controlling whether it gets included at all, for non-POSIX systems. * sys3.unx (fsysdep_get_status, isysdep_get_sequence): Marty Shannon: accept a truncated status file. I also eliminated scanf calls in sys3.unx, since that was the only place it was called; this was to make the executables smaller for systems which cared. * bnu.c (ubnu_read_sysfiles): Marty Shannon: accept comment characters in Sysfiles. * sysh.unx, sys3.unx: Marty Shannon: added HAVE_RENAME, put a fake rename system call in sys3.unx. * prtinf.c (ffind_port): Marty Shannon: failed to handle multiple ports in the port file since I forgot to reset my pointer variable. * bnu.c (ubnu_read_systems): Marty Shannon: don't initialize the auto array abpubdir, since old cc didn't permit initialization of auto aggregates. Mon Nov 25 20:56:39 1991 Ian Lance Taylor (ian at comton.airs.com) * tstuu.c: Bob Denny: add definitions for FD_SET, FD_ZERO and FD_ISSET. * config.c: Bob Denny: add explicit externs for strcmp and strcasecmp. * sys2.unx: the fread_blocking and fwrite_blocking fields were not getting initialized correctly in the TCP support routines. * sysh.unx, sys2.unx, sys5.unx, tstuu.c: Marty Shannon: added configuration option HAVE_SYSWAIT_H. * bnu.c (fbnu_find_port, fbnu_read_dialer_info), v2.c (fv2_find_port): Marty Shannon: the ireliable field of ports and dialers was not getting initialized. Sun Nov 24 15:06:37 1991 Ian Lance Taylor (ian at comton.airs.com) * tcp.c (itcp_port_number): Michael Haberler: wasn't calling htons if passed a numeric string. Sat Nov 23 13:43:52 1991 Ian Lance Taylor (ian at comton.airs.com) * Released version 1.01 to alt.sources and uunet