home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / UPC112B.ZIP / UPC112B.TXT
Text File  |  1993-10-06  |  30KB  |  688 lines

  1. Changes From Previous Versions
  2.  
  3. This file summarizes most changes made to UUPC/extended since release
  4. 1.11w.  Please contact Drew Derbyshire, help@kew.com, for information on
  5. changes previous to the scope of this document or other questions.
  6.  
  7. Versions 1.12a through 1.12b Revision Summary
  8.  
  9. David M. Watt <dmwatt@smersh.cambridge.ma.us> tested many of the new
  10. functions in the release and provided numerous bug fixes, including all
  11. the Windows NT fixes.  Kai Uwe Rommel <rommel@ars.muc.de> also provided
  12. many bug fixes, and keeps threatening us with more, especially for
  13. RNEWS.  Special credit for 1.12a also goes to Robert Denny
  14. <denny@alisa.com> for the Windows support discussed below.
  15.  
  16. Bug Fixes
  17.  
  18. The mail routing functions cheerfully routed mail to a non-local system
  19. by writing mail in an invalid spool directory if routing overrides
  20. existed for the target system.  Corrected various interactions in file
  21. ADDRESS.C to clear up the improper routing and an associated problem
  22. with the non-detection of aliased systems.
  23.  
  24. RMAIL sometimes throws an internal error (reporting not enough mail
  25. delivered) after calling Bounce() to bounce mail.  Corrected
  26.  
  27. by insuring Bounce()'s deliveries are counted.
  28.  
  29. RMAIL would fail to bounce mail properly if the program had been renamed
  30. to other than RMAIL.  Corrected by saving the program name for recursive
  31. invocations by Bounce().
  32.  
  33. The MAIL short help (?) command incorrectly reported that the minus sign
  34. (-) was an alias for the non-existent "previous" command when in fact it
  35. is an alias for the alive and well "up" command.
  36.  
  37. When running MAIL, users defined in the PASSWD file with no name would
  38. be entered into the local nickname table anyway, causing their name to
  39. appear as "????" when replying to them.  Changed LoadAlias() to suppress
  40. such addresses.
  41.  
  42. If the UUPC/extended configuration directory was the root directory of a
  43. drive, such as a network drive set aside for UUPC/extended, then derived
  44. directory names were incorrectly made relative directories by omitting
  45. the first slash (/) in the name.  Corrected normalize() to not drop the
  46. required slash.
  47.  
  48. If the run time library _fullpath() function failed to return the full
  49. path of a file, normalize() returned a NULL even though its callers did
  50. not check for this special value.  Corrected normalize() to call panic()
  51. if the full path of a file could not be determined.
  52.  
  53. In version 1.11z only, if a file was transferred to other than the spool
  54. directory (normally using the UUCP command on the local or remote
  55. system), UUCICO changed directories for the transfer and then did not
  56. restore the original working directory.  This resulted in files for mail
  57. and news being delivered to the Public directory rather than the Spool
  58. directory.  Corrected in expand_path() to pop all directory pushes.
  59.  
  60. If a file to be opened for reading was temporarily busy and the
  61. multitask flag was active, FOPEN() failed to wait for the file to become
  62. free.  Corrected to spin for the same length of time as a file to be
  63. opened for writing.
  64.  
  65. Temporary files names were always generated starting with a sequence
  66. number of zero.  This guaranteed extra overhead when multitasking
  67. because of duplicate file names.  Corrected mktempname() to begin
  68. sequencing file names with the program's process id obtained from
  69. getpid().
  70.  
  71. [This getpid() call actually works out to be the address of the program
  72. under DOS.  However, this at least allows programs invoking one another
  73. (RMAIL from MAIL, for example) to use different sequnce numbers.]
  74.  
  75. If the sequence file for the spool directory job identifier was
  76. unavailable, the job id generated was always 1; this could cause
  77. duplicate jobs to be generated in a multitasking system.  Corrected
  78. getseq() to use the program's process id obtained from getpid() for the
  79. next sequence id if the sequence file was unavailable.
  80.  
  81. A known host in the local domain was not recognized if the case of the
  82. host's domain did not match the local domain case.  Made host comparison
  83. case insensitive in checkname().
  84.  
  85. Under Windows NT, the host status file was generated with a different
  86. format than under DOS.  Corrected via MS C #pragma statement in
  87. HOSTABLE.H to pack data structures.
  88.  
  89. Under Windows NT, attempts to abort any UUPC/extended program which was
  90. trapping Ctrl-C, prompting for permission to abort, and which had its
  91. standard input redirected met with dismal failure.  Corrected in
  92. SAFEIO.C and SAFEOUT.C by explicitly opening the console to ask
  93. permission to abort.
  94.  
  95. If a program could not open a log file, it reported this interesting
  96. fact with a NULL pointer for the file name.  Corrected to use the real
  97. file name.
  98.  
  99. Under OS/2, over length invalid mailbox names could be generated if the
  100. directory option was set.  Corrected by limiting the mail box name to
  101. eight characters in mkmailbox().
  102.  
  103. Non-existent directories listed in the PERMISSN file caused security
  104. initialization to abort for UUCICO or UUXQT, even when those directories
  105. would be automatically created by UUCICO.  Changed messages in InitDir()
  106. for such missing directories from errors to warnings.
  107.  
  108. The creation time of files was incorrectly reported by stater(),
  109. affecting when news files were expired after a restore of a directory
  110. under OS/2.  Corrected stater() to return the last update time.
  111.  
  112. UUCICO prioritized outgoing packets over incoming acknowledgments,
  113. resulting in a possible backup of requests to resend data. gsendpkt() is
  114. corrected to always look for at least one acknowledgment.  (Fix by
  115. Robert Denny.)
  116.  
  117. If invoked without a time to terminate, UUCICO printed a nonsense time
  118. for when it would exit.  Corrected message in callin() to indicate
  119. UUCICO would run until explicitly killed.
  120.  
  121. UUSTAT loaded the host status file before processing its command line
  122. options, making it difficult to debug problems detected during the
  123. loading.  Moved the host status load to after the options are parsed.
  124.  
  125. The OS/2 version of UUCLEAN.CMD failed to age files if one or more
  126. generations of the file was under the length to age files.  Corrected to
  127. merge larger files with the under length files.
  128.  
  129. The login script processor wrote to the communications driver layer one
  130. character at time.  While this was as efficient as any other method with
  131. the DOS COMMFIFO driver, it requires additional system calls for blocked
  132. I/O drivers such as FOSSIL, OS/2 and Windows NT.  It was highly
  133. inefficient for network communications drivers such as TCP/IP or named
  134. pipes.  The script processor has been modified to buffer writes unless
  135. the user has requested a delay between each character.
  136.  
  137. Errors caused by multiple programs trying concurrently open the same log
  138. file were corrected.
  139.  
  140. Applied patch to Borland C++ 3.1 library to cause system stat() call to
  141. release memory after use.  Also added new debugging information to
  142. ndir.c to assist tracing network related failures of UUXQT.
  143.  
  144. UUX failed to format commands properly for execution on remote UNIX
  145. systems.  Corrected by Richard H. Gumpertz, <rhg@cps.com>.
  146.  
  147.     Note: For another UUPC/extended system to execute most UUX
  148.           commands, UUXQT must perform additional processing
  149.           which is not yet implemented.  Thus, the UUX command
  150.           remains unsupported.
  151.  
  152. Enhancements
  153.  
  154. Katherine Derbyshire, Dave Watt, and Drew Derbyshire rewrote and
  155. expanded the documentation into a large manual.  The simplified
  156. installation is documented with additional examples, various
  157. configuration file formats are documented in a new section, a new
  158. section on advanced configuration topics has been added, and the entire
  159. manual has been reorganized.  Please send comments on the documentation
  160. to docs@kew.com.
  161.  
  162. Kai-Uwe Rommel supplied code to cause a 16 Bit OS/2 UUCICO listening on
  163. port to give up the port to either another UUCICO processing dialing
  164. out.  The port can also be released and restored through a newly
  165. supplied utility program, UUPORT.
  166.  
  167. Dave Watt wrote TCP/IP support for Windows 3.x and Windows NT.
  168.  
  169. Ported OS/2 version to 32 bit API's using Borland C++ for OS/2.  The 16
  170. bit version continues to be available.
  171.  
  172. Added "t" protocol for TCP/IP connections.
  173.  
  174. Added OS/2 named pipe support.
  175.  
  176. Added support for Windows 3.x via Borland C++ 3.1 EasyWin environment
  177. provided by Robert C. Denny <denny@alisa.com>.  Changes include native
  178. Windows communications driver for UUCICO, Windows external program
  179. invocation support, Windows directory search functions, Windows delay
  180. functions, and numerous small changes in support of these enhancements.
  181. Additional changes including required MAKEFILE support, isolating
  182. external program invocation, support for Win16. prefix in configuration
  183. files, and other minor clean up performed by Drew Derbyshire.  Also
  184. added new Boolean option windows, which when used in Windows environment
  185. causes RMAIL and RNEWS to be invoked with file input (-f ) flag to allow
  186. invoking without file redirection.
  187.  
  188. Added support for Universal Naming Convention (UNC) path names and
  189. Lantastic Networks.  Specifically, normalize() is modified to allow
  190. double leading slashes indicating a UNC name and to pre- pend the
  191. logical UNC name as required to file names.  In addition, various file
  192. opens are modified to revert slashes to backslashes for system and/or
  193. routines which cannot handle forward slashes in names.
  194.  
  195. Added new -B command option to UUPOLL.  When used, the specified command
  196. is executed before each active poll out.  If this command exits with a
  197. non-zero return code, UUPOLL itself immediately exits.
  198.  
  199. UUPC/extended distribution archives are now being packed with the public
  200. domain ZIP 1.9 program.  Previously, the first generation PKZIP was
  201. used.  Due to the explosion in the number of versions, the archives have
  202. also been renamed as documented in the revised HOWTOGET to include a
  203. letter identifying the environment each archive is for.
  204.  
  205. A new documentation archive with the documents pre-formatted for a
  206. PostScript printer now exists.
  207.  
  208. Long names are now better supported under OS/2 and Windows NT HPFS and
  209. NTFS file systems.
  210.  
  211. Added (actually further modified undocumented) supported for Universal
  212. Naming Convention (UNC) names.
  213.  
  214. Version 1.11z Revision Summary
  215.  
  216. Bug Fixes
  217.  
  218. When UUSUB was invoked with the clear (-c) option, it wrote the cleared
  219. status file to the SpoolDir rather than the new directory for the file,
  220. the ConfDir.  Corrected this oversight in hostrset.c.  Also corrected
  221. reset of start of the collection time.
  222.  
  223. RNEWS snews mode processing failed to process input files in
  224. binary mode.  Corrected by forcing all input to be read in binary
  225. mode.
  226.  
  227. Corrected expand_path() so that path names beginning with tilde
  228.  
  229. (~) need not end with a slash (/).  This mostly affects UUCP file
  230. transfers.
  231.  
  232. Corrected scrsize() to sanity check BIOS values for the screen
  233.  
  234. size on systems running versions of DOS previous to DOS 4.0.
  235. Previously, invalid screen sizes were not trapped on such older
  236. systems, causing the internal pager to require input after every
  237. line.
  238.  
  239. Corrected address parser to include the percent sign (%) in an
  240. address as an indicator of a non-local address.  Previously, such
  241. addresses were handled as invalid local users.
  242.  
  243. Corrected bounce() processing to not recursively deliver mail to
  244. an invalid address such as the local postmaster.
  245.  
  246. Corrected system alias processing to use configuration directory
  247. as current directory rather than a possibly invalid user home
  248. directory pointer.  Also inserted altered system alias processing
  249. to call expand_path() to allow using ~user syntax in system alias
  250.  
  251. include files.
  252.  
  253. Correct RMAIL to not use a debug level less than zero when
  254. initializing, which caused configuration failure messages to be
  255. suppressed (resulting in RMAIL beeping and dying without offering
  256. a clue as to why).
  257.  
  258. Corrected bug in UUPOLL which caused the program to spin for one
  259. second spitting out  messages about waiting for zero seconds
  260. before running the daily clean up command.
  261.  
  262. Bill Plummer provided fix to COMMFIFO.ASM serial port driver to
  263. provide delay after selected modem command operations to allow
  264. slow modems to respond.
  265.  
  266. Corrected bug in syslog processing which caused the file to be
  267. prematurely closed  and never reopened if multitask was not set.
  268.  
  269. When UUX generated a command for a remote system, it requested
  270. the command file be sent before any data the command needed.
  271. Corrected this to sent the data first.
  272.  
  273. Enhancements
  274.  
  275. Added -t option UUCICO to cause tracing of data received or sent to
  276. various communications drivers to the file LINEDATA.LOG in the Spool
  277. directory.  Previously, an undocumented feature would cause this tracing
  278. to be performed if the file already existed.
  279.  
  280. Added multiple parallel communications drivers support to UUCICO, and
  281. added new drivers for via FOSSIL and ArtiComm controlled ports under
  282. DOS.  The FOSSIL support is enabled by installing a FOSSIL port driver
  283. (not supplied) and adding the keyword:
  284.  
  285.      suite=fossil
  286.  
  287. To the modem (*.MDM) file for the affected port.  Likewise, an ARTICOMM
  288. supported port is enabled by providing a suite=articomm keyword in the
  289. modem file for the port.
  290.  
  291. Rewrote syslog processing to display requester of a file, the remote
  292. system involved, and host (UNIX format) name.  The local (DOS) name is
  293. dropped from the log file.  [Many thanks to Mark W. Schumann
  294. <mark@whizbang.wariat.org>, who provided the articomm driver.]
  295.  
  296. Added optional global keywords:
  297.  
  298.      Systems=       and
  299.      Passwd=
  300.  
  301. to UUPC.RC file.  These keywords define non-default locations of
  302. SYSTEMS and PASSWD files.  This allows unique (dummy) copies of
  303. these files to be used for client workstations without passwords
  304. on shared network environments.  The default location for these
  305. files remain in the UUPC/extended configuration directory.
  306.  
  307. Added new option keywords senddebug and honordebug.  In their
  308. default state, UUCICO neither transmits the current debug level
  309. to the remote system when calling, nor does it use the debug
  310. level sent by the remote system called.
  311.  
  312.     Note: The previous behavior was to not send the current
  313.           debugging level but to honor the remote system's debug
  314.           level.
  315.  
  316. Renamed hpfs option to longname, which more accurately describes
  317. its (as yet unimplemented) processing in support of longer file
  318. names on any file system which supports them.
  319.  
  320. Added new UUPC.RC keywords banner= and motd=, which define files
  321. displayed to remote users by UUCICO.  If defined, the file named
  322. as the banner is displayed before the login prompt.  Likewise, if
  323. defined the file named as the motd (message of the day) is
  324. displayed after a successful login only if the login shell is not
  325. UUCICO.
  326.  
  327. Modified loading of the PASSWD file to use the configuration
  328. directory drive as the default when determining the drive letter
  329. for home directories.  This allows omitting the drive letter
  330. within the PASSWD file.
  331.  
  332. Added new OS/2 command file, GETUUPC.CMD, which is called by the other
  333. OS/2 scripts to determine UUPC/extended configuration information.
  334.  
  335. Made post-login startup message time out configurable.
  336.  
  337. Version 1.11y Revision Summary
  338.  
  339. Bless Snuffles for she has sinned.  She failed to keep track of all the
  340. contributors of bug fixes and enhancements for the 1.11y release.  But
  341. you know who you are, bless you all ...
  342.  
  343. Bug Fixes
  344.  
  345. Dropped the beta test port of RN 4.3.  We're working on porting the
  346. newer RN 4.4, but neither source nor object for this is included in
  347. 1.11y.
  348.  
  349. Corrected bug in configuration processor which assumed all tables (i.e.
  350. the modem configuration table) were as long as the master configuration
  351. table.
  352.  
  353. Added specific error message for when local host name was improperly
  354. added to SYSTEMS file.  Formerly, UUCICO died gloriously with a
  355. (incorrect) message about a memory shortage in dcpsys.c.
  356.  
  357. Corrected configuration processing to load UUCP spool related variables
  358. for RNEWS.  Previously, RNEWS failed to load such information and thus
  359. ignored overrides of the default character set.
  360.  
  361. Modified directory search functions to support longer file names used by
  362. non-FAT (non-DOS) file systems and to return file time and size
  363. information to the caller.  This implicitly fixes problems with programs
  364. such as EXPIRE running out of memory when running on network drives due
  365. to bugs in the Borland C++ stat()
  366.  
  367. call, which no longer has to be used as much.
  368.  
  369. Modified UUCICO status file processing to lock the status file to avoid
  370. overlapping updates.  Previously, race conditions could cause the file
  371. to be reset by mistake.
  372.  
  373. Corrected printmsg() to use unique buffer for time stamp
  374.  
  375. information in log file.  Formerly, the default static buffer used by
  376. various subroutines would be overwritten with the current time when
  377. logging.
  378.  
  379. Made return codes from RMAIL more unique to allow better debugging of
  380. failed mail.
  381.  
  382. In RNEWS, redid processing performed by SNEWS option to make it even
  383. dumber.
  384.  
  385. Rewrote RNEWS batched news processing to correctly process files under
  386. 512 bytes.  Formerly, such articles and all articles following were
  387. dropped.
  388.  
  389. Upped maximum length of news group names in RNEWS to keep it from dying
  390. when brain dead lusers create news groups with excessive length names.
  391.  
  392. Corrected OS/2 WAITING command to load needed subroutine packages before
  393. using them.
  394.  
  395. Corrected UUPOLL bug which caused it to exit with a return code 0 no
  396. matter how it was terminated.
  397.  
  398. Corrected UUPOLL bug which caused it to not terminate at the correct
  399. time if both the -e and -f flags were specified.
  400.  
  401. Added fix to COMMFIFO.ASM from William Plummer to fix incorrect assembly
  402. of references to COMMFIFO error counts.
  403.  
  404. Modified UUCICO 'g' protocol processor to use FAR memory for packet
  405. buffers to reduce number of out of memory errors under 16 bit DOS and
  406. OS/2 compilers.
  407.  
  408. Modified UUCICO 'g' protocol processor to correctly negotiate packet
  409. sizes with remote systems, thus allowing the remote system to send the
  410. local system larger packet than the local system can send the remote.
  411. (Error pointed out by Ian Taylor.)
  412.  
  413. Corrected sample modem files to NOT enable VariablePacket processing by
  414. default.
  415.  
  416. Corrected UUCICO to not update host status if host information was not
  417. initialized during a passive poll.
  418.  
  419. Corrected syslog option to only set buffering once for the log file if
  420. not multi-tasking.  This bug caused 1.11x to repeatedly report that
  421. SYSLOG file was not found when, in fact, it was fine.
  422.  
  423. Corrected UUCICO modem processing to flag that graceful shutdown was
  424. needed for OS/2 versions of UUCICO.  Previously, it exited immediately
  425. without closing the serial port.
  426.  
  427. Corrected UUCICO modem processing to invoke carrier detect processing
  428. whenever the modem connects.  This was previously missed for hot logins
  429. invoked using the UUCICO -w flag.
  430.  
  431. Corrected UUCICO carrier detection processing for OS/2 communications
  432. driver.  It previously OR'ed modem status information rather than
  433. AND'ing it, allowing a half-ready modem to appear ready.
  434.  
  435. Modified UUCICO to trap unique error code returned by SIO serial port
  436. driver under OS/2 when interrupted.  Interruptions of the DosRead()
  437. system call are not really errors, and the default error message alarmed
  438. Snuffles.
  439.  
  440. Corrected UUSTAT to not de-reference NULL pointers when killing queued
  441. jobs.
  442.  
  443. Enhancements
  444.  
  445. Dave Watt <dmwatt@smersh.cambridge.ma.us>, with assistance from Evan
  446. Ross <evan@valentine.com>, made numerous additional changes to round out
  447. the Windows NT support.  One visible change is that lines in UUPC.RC and
  448. [userid].RC can be prefixed with WIN32. to cause the line to take effect
  449. only under Windows NT.
  450.  
  451. The ConfDir variable is now optional.  If the ConfDir is omitted from
  452. UUPC.RC, its value is taken from the directory for the UUPC.RC file
  453. specified in the UUPCSYSRC environment variable.
  454.  
  455. The directories (except the user's home directory) in the UUPC.RC and
  456. [userid].RC file can now be omitted or made relative to the ConfDir.  If
  457. omitted, they are assumed be sub-directories of the ConfDir with default
  458. names.  The user's home directory may be relative to the ConfDir, but it
  459. must not be omitted.
  460.  
  461. Added new configuration variables OS2.priority and OS2.prioritydelta.
  462. These specify the OS/2 priority of UUCICO when connected in the range 1
  463. through 4, and a sub-priority of 0 through 62.
  464.  
  465. Added new Boolean option bounce.  When enabled, this causes
  466. undeliverable mail to be returned to the sender (as determined by UUXQT
  467. and/or by the UUCP From line) with a copy to the local Postmaster.
  468.  
  469. William Plummer <plummer@theme.com> made various additional changes to
  470. the test driver for DOS COMMFIFO package.
  471.  
  472. Per request of Katherine Derbyshire <docs@kew.com>, modified GENSIG to
  473. print out a more useful message about the quote selected, specifically
  474. including the output file name.
  475.  
  476. Versions 1.11w through 1.11x Revision Summary
  477.  
  478. Bug Fixes
  479.  
  480. Corrected bug in local delivery routine which failed to detect a letter
  481. followed by a colon in a FORWARD file was the beginning of a path name.
  482. This fix was supplied by Russ Nelson.
  483.  
  484. Modified internal pager to not scroll top line off the screen when the
  485. display is aborted.
  486.  
  487. Corrected RMAIL usage message to display all the operands allowed by the
  488. command's rich syntax.  Fix supplied by Russ Nelson.
  489.  
  490. Modified chdir() to attempt directory change before invoking mkdir() to
  491. build the directory to change to.  This should be faster, since a
  492. directory will always exist after the first chdir() to it.
  493.  
  494. import_path() mangled valid paths under certain conditions.  Modified
  495. the routine to properly convert path names with a single character in
  496. the path and/or terminated by a slash.
  497.  
  498. Corrected import_newsgroup() to not pad the numbers generated as
  499. part of names of DOS news articles.  Fix provided by Kai-Uwe Rommel.
  500.  
  501. Corrected via spool directory search routines to correctly handle
  502. interrupted searches when a connection to a host is lost.  Previously,
  503. if a search was not determined to be interrupted, export_path() would
  504. catch the bad file name and abort the program ... usually.
  505.  
  506. Corrected included strlwr() function to lower case the string, not upper
  507. case it.  This problem only affected users using unsupported compilers
  508. which lacked this function in their run time library.
  509.  
  510. Modified RNEWS to not shadow or otherwise process an empty compressed
  511. input file.  Also corrected the file name in various error messages
  512. related to uncompress processing.
  513.  
  514. Modified RNEWS to report when it has to delete an article, and to
  515. summarize number of articles dropped.
  516.  
  517. Modified RNEWS to report specific error messages via printerr()
  518.  
  519. when it is unable to process a file.
  520.  
  521. Modified RNEWS to write news in the proper news directory when the snews
  522. flag is set.  Fix supplied by Kai-Uwe Rommel.
  523.  
  524. Applied numerous minor fixes to RNEWS supplied by Kai-Uwe Rommel.
  525.  
  526. Corrected EXPIRE to properly expire one news group via the -n flag.  Fix
  527. supplied by Kai-Uwe Rommel. 10/04/93 - 183 -
  528.  
  529. UUPC/extended 1.12b Installation and User's Reference
  530.  
  531. UUPOLL would be confused by 25 hour days caused by the end of Daylight
  532. Savings Time and attempt to poll continuously during the last hour of
  533. such a day.  Corrected UUPOLL to realize not all days are created equal,
  534. and to correctly compute the next poll as the first poll of the
  535. following day.
  536.  
  537. Altered numerous files to be unbuffered, saving on memory and reducing
  538. memory to memory copying of data.
  539.  
  540. Deleting extra lock files was a major performance hit under OS/2 with
  541. UNDELETE processing enabled.  Corrected UUCICO and UUXQT lock processing
  542. to not lock systems without reason.
  543.  
  544. Suppressed closing UUCICO warning message about unable to connect to
  545. remote when the program was only answering the phone.
  546.  
  547. Made UUCICO 'G' protocol use packets of fixed size to be more compatible
  548. with System V Release 4 UUCP.
  549.  
  550. Made unique entries in the modem (*.MDM) file for entries for the ''g",
  551. "G", and "v" protocol options.  Also added largepacket modem file option
  552. for "g" protocol to enable large packet processing under this protocol.
  553.  
  554. Added new UUCICO 'v' protocol, which is 'g' protocol with optionally
  555. large (512) byte variable length packets.  This protocol is only
  556. supported by other UUPC/extended systems.
  557.  
  558. Corrected two problem with 'g' protocol start-up, from problem
  559. descriptions provided by Ian Lance Taylor, author of Taylor UUCP.  Both
  560. fixes provide for insuring one system does not get ahead of the other,
  561. that is one system thinks it has initialized the connection when the
  562. other has not.
  563.  
  564. Corrected UUCICO to not abort when fields are missing from the SYSTEMS
  565. file.  This was based on an original fix by Eugene Nesterenko, Moscow,
  566. Russia.
  567.  
  568. Corrected various UUCICO start-up error messages to display at debug
  569. level 0, not 1. Thanks to Bill Plummer for pointing this out.
  570.  
  571. UUCICO would previously reject anonymous UUCP connections if the local
  572. system was running a high debug level.  Corrected UUCICO to not confuse
  573. local and remote debug levels.
  574.  
  575. Modified UUCICO to use a single data transfer buffer for data input and
  576. output as well as a command buffer, thus allowing this buffer to be
  577. bigger.
  578.  
  579. Modified UUNAME to accept the debug level (-x) option.  This was
  580. embarrassing since the upgrade instructions specifically said to use
  581. this option to determine obsolete keywords in the UUPC.RC file.
  582.  
  583. Corrected UUXQT to send mail to the originator of a UUX job, not the
  584. local postmaster.  Also corrected UUXQT to not mangle the dummy input
  585. file name NUL and then be unable to open the mangled name.  Fixes
  586. supplied by Charles R. (C.  R.)  Oldham of Arizona State University.
  587.  
  588. Corrected UUSUB to reset the starting time of statistics collection when
  589. clearing all totals.
  590.  
  591. Corrected UUXQT to report why RMAIL dies, not just that it failed.
  592.  
  593. Corrected RMAIL to not close its own log file, instead leaving this task
  594. to the common logging functions.
  595.  
  596. Enhancements
  597.  
  598. Dave Watt ported the entire source to Windows NT.  Note this platform
  599. has been not been tested, and executables are not supplied at this time.
  600. Problems are specifically known to exist in creation of the HOSTSTATUS
  601. file.
  602.  
  603. Dave Watt also wrote DESQView support.  UUPOLL and UUCICO give up the
  604. CPU when idle.
  605.  
  606. Added a number of new sample configuration sample files, including a
  607. sample PERMISSN file and copies of several files used on kendra.
  608.  
  609. Modified configuration file routines and expand_path() to use run time
  610. library supplied functions to normalize directory paths.  This allows
  611. determining the path on drives other than the current drive.
  612.  
  613.     Note: Because of this change, placing floppy diskette drive
  614.           letters in the PERMISSN file can cause the system to
  615.           hang when it attempts to determine the current
  616.           directory on the drive.
  617.  
  618. Rewrote the OS/2 versions of UUIO, UUCLEAN and WAITING commands into
  619. REXX, made enhancements including using the UUPC/extended environment
  620. variables and aging files based on size.
  621.  
  622. Added MAILCHEK command from Evan Champion <evanc@uuisis.isis.org> to
  623. provide running report of mail waiting in an OS/2 window using Visual
  624. REXX.  (This command does not exist under DOS.)
  625.  
  626. Modified FOPEN() to automatically retry failed file opens for 20 seconds
  627. if the error is a sharing violation.  Also modified openline() and
  628. lock_system() to not use this retry processing.
  629.  
  630. Moved HOSTATUS file from spool directory to configuration directory, and
  631. moved news ACTIVE file from news directory to configuration directory.
  632. This allows easily backing up these files without backing up the news or
  633. spool directories.
  634.  
  635. Modified majority of permanent string allocations to use newly written
  636. routine strpool(), which allocates memory in larger blocks, thus
  637. bypassing malloc() space overhead.  Routine also
  638.  
  639. searches duplicates in strings to avoid allocating the same string
  640. twice.  If running at debug level 2 or above, a summary message of the
  641. memory used (and saved) is printed.  Also, added new boolean option
  642. SpeedOverMemory to bypass the duplicate string scan on slower systems.
  643.  
  644. Wrote support for a system wide user aliases file.  This file, used only
  645. by RMAIL, allows forwarding for users and/or mailing lists to be defined
  646. without adding the local address to the PASSWD file, resulting in
  647. improved efficiency for other programs which use the PASSWD file such as
  648. MAIL and UUCICO.  Use of the system wide alias file also eliminates the
  649. need for dummy home directories containing forward files, resulting in 4
  650. kilobytes disk savings per forwarded user.  This support was based on a
  651. prototype supplied by Russ Nelson.
  652.  
  653. Modified MAIL to print the numbers of items deleted by the delete
  654. command on one line to keep the screen from scrolling madly.  Also,
  655. items previously deleted are not listed a second time.
  656.  
  657. Added number items in the mailbox to the MAIL status command.
  658.  
  659. Added "Path:", "Lines:", and "References:"  to the list of items ignored
  660. by the internal mail pager used by the print command.
  661.  
  662. Under OS/2 and DOS 4.0 or above, the internal pager now uses the true
  663. screen size to determine the number of lines to scroll.  This allows
  664. exploiting 50 line VGA screens or odd-sized OS/2 windows.
  665.  
  666. Modified loading of ACTIVE file by news processing to not build
  667. directories for empty news groups.  So long as the target directories
  668. are built by the routine posting news (i.e.  RNEWS uses fopen()), then
  669. the directories will be created on demand.
  670.  
  671. Enhanced EXPIRE to report bytes and articles processed, including totals
  672. for data purged, moved, or left eating disk space.  Running EXPIRE at
  673. debug level 2 (-x 2) will report this information on a per group level.
  674.  
  675. Modified UUPOLL to report when the UUCLEAN command is scheduled
  676. to next run at startup.
  677.  
  678. Modified UUCICO processing enabled by the syslog option to work with the
  679. multitask option.  Specifically, the SYSLOG is only opened when needed
  680. in multitasking mode and closed immediately.
  681.  
  682. Modified OS/2 communications support to show communications port errors
  683. in English.  Also added a ShowModem() function to OS/2 communications
  684. support to show modem status in English.
  685.  
  686. Under OS/2, increased modem recover time from 0.5 seconds to 2.0 seconds
  687. after hanging up the telephone.
  688.