home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
UPC112B.ZIP
/
UPC112B.TXT
Wrap
Text File
|
1993-10-06
|
30KB
|
688 lines
Changes From Previous Versions
This file summarizes most changes made to UUPC/extended since release
1.11w. Please contact Drew Derbyshire, help@kew.com, for information on
changes previous to the scope of this document or other questions.
Versions 1.12a through 1.12b Revision Summary
David M. Watt <dmwatt@smersh.cambridge.ma.us> tested many of the new
functions in the release and provided numerous bug fixes, including all
the Windows NT fixes. Kai Uwe Rommel <rommel@ars.muc.de> also provided
many bug fixes, and keeps threatening us with more, especially for
RNEWS. Special credit for 1.12a also goes to Robert Denny
<denny@alisa.com> for the Windows support discussed below.
Bug Fixes
The mail routing functions cheerfully routed mail to a non-local system
by writing mail in an invalid spool directory if routing overrides
existed for the target system. Corrected various interactions in file
ADDRESS.C to clear up the improper routing and an associated problem
with the non-detection of aliased systems.
RMAIL sometimes throws an internal error (reporting not enough mail
delivered) after calling Bounce() to bounce mail. Corrected
by insuring Bounce()'s deliveries are counted.
RMAIL would fail to bounce mail properly if the program had been renamed
to other than RMAIL. Corrected by saving the program name for recursive
invocations by Bounce().
The MAIL short help (?) command incorrectly reported that the minus sign
(-) was an alias for the non-existent "previous" command when in fact it
is an alias for the alive and well "up" command.
When running MAIL, users defined in the PASSWD file with no name would
be entered into the local nickname table anyway, causing their name to
appear as "????" when replying to them. Changed LoadAlias() to suppress
such addresses.
If the UUPC/extended configuration directory was the root directory of a
drive, such as a network drive set aside for UUPC/extended, then derived
directory names were incorrectly made relative directories by omitting
the first slash (/) in the name. Corrected normalize() to not drop the
required slash.
If the run time library _fullpath() function failed to return the full
path of a file, normalize() returned a NULL even though its callers did
not check for this special value. Corrected normalize() to call panic()
if the full path of a file could not be determined.
In version 1.11z only, if a file was transferred to other than the spool
directory (normally using the UUCP command on the local or remote
system), UUCICO changed directories for the transfer and then did not
restore the original working directory. This resulted in files for mail
and news being delivered to the Public directory rather than the Spool
directory. Corrected in expand_path() to pop all directory pushes.
If a file to be opened for reading was temporarily busy and the
multitask flag was active, FOPEN() failed to wait for the file to become
free. Corrected to spin for the same length of time as a file to be
opened for writing.
Temporary files names were always generated starting with a sequence
number of zero. This guaranteed extra overhead when multitasking
because of duplicate file names. Corrected mktempname() to begin
sequencing file names with the program's process id obtained from
getpid().
[This getpid() call actually works out to be the address of the program
under DOS. However, this at least allows programs invoking one another
(RMAIL from MAIL, for example) to use different sequnce numbers.]
If the sequence file for the spool directory job identifier was
unavailable, the job id generated was always 1; this could cause
duplicate jobs to be generated in a multitasking system. Corrected
getseq() to use the program's process id obtained from getpid() for the
next sequence id if the sequence file was unavailable.
A known host in the local domain was not recognized if the case of the
host's domain did not match the local domain case. Made host comparison
case insensitive in checkname().
Under Windows NT, the host status file was generated with a different
format than under DOS. Corrected via MS C #pragma statement in
HOSTABLE.H to pack data structures.
Under Windows NT, attempts to abort any UUPC/extended program which was
trapping Ctrl-C, prompting for permission to abort, and which had its
standard input redirected met with dismal failure. Corrected in
SAFEIO.C and SAFEOUT.C by explicitly opening the console to ask
permission to abort.
If a program could not open a log file, it reported this interesting
fact with a NULL pointer for the file name. Corrected to use the real
file name.
Under OS/2, over length invalid mailbox names could be generated if the
directory option was set. Corrected by limiting the mail box name to
eight characters in mkmailbox().
Non-existent directories listed in the PERMISSN file caused security
initialization to abort for UUCICO or UUXQT, even when those directories
would be automatically created by UUCICO. Changed messages in InitDir()
for such missing directories from errors to warnings.
The creation time of files was incorrectly reported by stater(),
affecting when news files were expired after a restore of a directory
under OS/2. Corrected stater() to return the last update time.
UUCICO prioritized outgoing packets over incoming acknowledgments,
resulting in a possible backup of requests to resend data. gsendpkt() is
corrected to always look for at least one acknowledgment. (Fix by
Robert Denny.)
If invoked without a time to terminate, UUCICO printed a nonsense time
for when it would exit. Corrected message in callin() to indicate
UUCICO would run until explicitly killed.
UUSTAT loaded the host status file before processing its command line
options, making it difficult to debug problems detected during the
loading. Moved the host status load to after the options are parsed.
The OS/2 version of UUCLEAN.CMD failed to age files if one or more
generations of the file was under the length to age files. Corrected to
merge larger files with the under length files.
The login script processor wrote to the communications driver layer one
character at time. While this was as efficient as any other method with
the DOS COMMFIFO driver, it requires additional system calls for blocked
I/O drivers such as FOSSIL, OS/2 and Windows NT. It was highly
inefficient for network communications drivers such as TCP/IP or named
pipes. The script processor has been modified to buffer writes unless
the user has requested a delay between each character.
Errors caused by multiple programs trying concurrently open the same log
file were corrected.
Applied patch to Borland C++ 3.1 library to cause system stat() call to
release memory after use. Also added new debugging information to
ndir.c to assist tracing network related failures of UUXQT.
UUX failed to format commands properly for execution on remote UNIX
systems. Corrected by Richard H. Gumpertz, <rhg@cps.com>.
Note: For another UUPC/extended system to execute most UUX
commands, UUXQT must perform additional processing
which is not yet implemented. Thus, the UUX command
remains unsupported.
Enhancements
Katherine Derbyshire, Dave Watt, and Drew Derbyshire rewrote and
expanded the documentation into a large manual. The simplified
installation is documented with additional examples, various
configuration file formats are documented in a new section, a new
section on advanced configuration topics has been added, and the entire
manual has been reorganized. Please send comments on the documentation
to docs@kew.com.
Kai-Uwe Rommel supplied code to cause a 16 Bit OS/2 UUCICO listening on
port to give up the port to either another UUCICO processing dialing
out. The port can also be released and restored through a newly
supplied utility program, UUPORT.
Dave Watt wrote TCP/IP support for Windows 3.x and Windows NT.
Ported OS/2 version to 32 bit API's using Borland C++ for OS/2. The 16
bit version continues to be available.
Added "t" protocol for TCP/IP connections.
Added OS/2 named pipe support.
Added support for Windows 3.x via Borland C++ 3.1 EasyWin environment
provided by Robert C. Denny <denny@alisa.com>. Changes include native
Windows communications driver for UUCICO, Windows external program
invocation support, Windows directory search functions, Windows delay
functions, and numerous small changes in support of these enhancements.
Additional changes including required MAKEFILE support, isolating
external program invocation, support for Win16. prefix in configuration
files, and other minor clean up performed by Drew Derbyshire. Also
added new Boolean option windows, which when used in Windows environment
causes RMAIL and RNEWS to be invoked with file input (-f ) flag to allow
invoking without file redirection.
Added support for Universal Naming Convention (UNC) path names and
Lantastic Networks. Specifically, normalize() is modified to allow
double leading slashes indicating a UNC name and to pre- pend the
logical UNC name as required to file names. In addition, various file
opens are modified to revert slashes to backslashes for system and/or
routines which cannot handle forward slashes in names.
Added new -B command option to UUPOLL. When used, the specified command
is executed before each active poll out. If this command exits with a
non-zero return code, UUPOLL itself immediately exits.
UUPC/extended distribution archives are now being packed with the public
domain ZIP 1.9 program. Previously, the first generation PKZIP was
used. Due to the explosion in the number of versions, the archives have
also been renamed as documented in the revised HOWTOGET to include a
letter identifying the environment each archive is for.
A new documentation archive with the documents pre-formatted for a
PostScript printer now exists.
Long names are now better supported under OS/2 and Windows NT HPFS and
NTFS file systems.
Added (actually further modified undocumented) supported for Universal
Naming Convention (UNC) names.
Version 1.11z Revision Summary
Bug Fixes
When UUSUB was invoked with the clear (-c) option, it wrote the cleared
status file to the SpoolDir rather than the new directory for the file,
the ConfDir. Corrected this oversight in hostrset.c. Also corrected
reset of start of the collection time.
RNEWS snews mode processing failed to process input files in
binary mode. Corrected by forcing all input to be read in binary
mode.
Corrected expand_path() so that path names beginning with tilde
(~) need not end with a slash (/). This mostly affects UUCP file
transfers.
Corrected scrsize() to sanity check BIOS values for the screen
size on systems running versions of DOS previous to DOS 4.0.
Previously, invalid screen sizes were not trapped on such older
systems, causing the internal pager to require input after every
line.
Corrected address parser to include the percent sign (%) in an
address as an indicator of a non-local address. Previously, such
addresses were handled as invalid local users.
Corrected bounce() processing to not recursively deliver mail to
an invalid address such as the local postmaster.
Corrected system alias processing to use configuration directory
as current directory rather than a possibly invalid user home
directory pointer. Also inserted altered system alias processing
to call expand_path() to allow using ~user syntax in system alias
include files.
Correct RMAIL to not use a debug level less than zero when
initializing, which caused configuration failure messages to be
suppressed (resulting in RMAIL beeping and dying without offering
a clue as to why).
Corrected bug in UUPOLL which caused the program to spin for one
second spitting out messages about waiting for zero seconds
before running the daily clean up command.
Bill Plummer provided fix to COMMFIFO.ASM serial port driver to
provide delay after selected modem command operations to allow
slow modems to respond.
Corrected bug in syslog processing which caused the file to be
prematurely closed and never reopened if multitask was not set.
When UUX generated a command for a remote system, it requested
the command file be sent before any data the command needed.
Corrected this to sent the data first.
Enhancements
Added -t option UUCICO to cause tracing of data received or sent to
various communications drivers to the file LINEDATA.LOG in the Spool
directory. Previously, an undocumented feature would cause this tracing
to be performed if the file already existed.
Added multiple parallel communications drivers support to UUCICO, and
added new drivers for via FOSSIL and ArtiComm controlled ports under
DOS. The FOSSIL support is enabled by installing a FOSSIL port driver
(not supplied) and adding the keyword:
suite=fossil
To the modem (*.MDM) file for the affected port. Likewise, an ARTICOMM
supported port is enabled by providing a suite=articomm keyword in the
modem file for the port.
Rewrote syslog processing to display requester of a file, the remote
system involved, and host (UNIX format) name. The local (DOS) name is
dropped from the log file. [Many thanks to Mark W. Schumann
<mark@whizbang.wariat.org>, who provided the articomm driver.]
Added optional global keywords:
Systems= and
Passwd=
to UUPC.RC file. These keywords define non-default locations of
SYSTEMS and PASSWD files. This allows unique (dummy) copies of
these files to be used for client workstations without passwords
on shared network environments. The default location for these
files remain in the UUPC/extended configuration directory.
Added new option keywords senddebug and honordebug. In their
default state, UUCICO neither transmits the current debug level
to the remote system when calling, nor does it use the debug
level sent by the remote system called.
Note: The previous behavior was to not send the current
debugging level but to honor the remote system's debug
level.
Renamed hpfs option to longname, which more accurately describes
its (as yet unimplemented) processing in support of longer file
names on any file system which supports them.
Added new UUPC.RC keywords banner= and motd=, which define files
displayed to remote users by UUCICO. If defined, the file named
as the banner is displayed before the login prompt. Likewise, if
defined the file named as the motd (message of the day) is
displayed after a successful login only if the login shell is not
UUCICO.
Modified loading of the PASSWD file to use the configuration
directory drive as the default when determining the drive letter
for home directories. This allows omitting the drive letter
within the PASSWD file.
Added new OS/2 command file, GETUUPC.CMD, which is called by the other
OS/2 scripts to determine UUPC/extended configuration information.
Made post-login startup message time out configurable.
Version 1.11y Revision Summary
Bless Snuffles for she has sinned. She failed to keep track of all the
contributors of bug fixes and enhancements for the 1.11y release. But
you know who you are, bless you all ...
Bug Fixes
Dropped the beta test port of RN 4.3. We're working on porting the
newer RN 4.4, but neither source nor object for this is included in
1.11y.
Corrected bug in configuration processor which assumed all tables (i.e.
the modem configuration table) were as long as the master configuration
table.
Added specific error message for when local host name was improperly
added to SYSTEMS file. Formerly, UUCICO died gloriously with a
(incorrect) message about a memory shortage in dcpsys.c.
Corrected configuration processing to load UUCP spool related variables
for RNEWS. Previously, RNEWS failed to load such information and thus
ignored overrides of the default character set.
Modified directory search functions to support longer file names used by
non-FAT (non-DOS) file systems and to return file time and size
information to the caller. This implicitly fixes problems with programs
such as EXPIRE running out of memory when running on network drives due
to bugs in the Borland C++ stat()
call, which no longer has to be used as much.
Modified UUCICO status file processing to lock the status file to avoid
overlapping updates. Previously, race conditions could cause the file
to be reset by mistake.
Corrected printmsg() to use unique buffer for time stamp
information in log file. Formerly, the default static buffer used by
various subroutines would be overwritten with the current time when
logging.
Made return codes from RMAIL more unique to allow better debugging of
failed mail.
In RNEWS, redid processing performed by SNEWS option to make it even
dumber.
Rewrote RNEWS batched news processing to correctly process files under
512 bytes. Formerly, such articles and all articles following were
dropped.
Upped maximum length of news group names in RNEWS to keep it from dying
when brain dead lusers create news groups with excessive length names.
Corrected OS/2 WAITING command to load needed subroutine packages before
using them.
Corrected UUPOLL bug which caused it to exit with a return code 0 no
matter how it was terminated.
Corrected UUPOLL bug which caused it to not terminate at the correct
time if both the -e and -f flags were specified.
Added fix to COMMFIFO.ASM from William Plummer to fix incorrect assembly
of references to COMMFIFO error counts.
Modified UUCICO 'g' protocol processor to use FAR memory for packet
buffers to reduce number of out of memory errors under 16 bit DOS and
OS/2 compilers.
Modified UUCICO 'g' protocol processor to correctly negotiate packet
sizes with remote systems, thus allowing the remote system to send the
local system larger packet than the local system can send the remote.
(Error pointed out by Ian Taylor.)
Corrected sample modem files to NOT enable VariablePacket processing by
default.
Corrected UUCICO to not update host status if host information was not
initialized during a passive poll.
Corrected syslog option to only set buffering once for the log file if
not multi-tasking. This bug caused 1.11x to repeatedly report that
SYSLOG file was not found when, in fact, it was fine.
Corrected UUCICO modem processing to flag that graceful shutdown was
needed for OS/2 versions of UUCICO. Previously, it exited immediately
without closing the serial port.
Corrected UUCICO modem processing to invoke carrier detect processing
whenever the modem connects. This was previously missed for hot logins
invoked using the UUCICO -w flag.
Corrected UUCICO carrier detection processing for OS/2 communications
driver. It previously OR'ed modem status information rather than
AND'ing it, allowing a half-ready modem to appear ready.
Modified UUCICO to trap unique error code returned by SIO serial port
driver under OS/2 when interrupted. Interruptions of the DosRead()
system call are not really errors, and the default error message alarmed
Snuffles.
Corrected UUSTAT to not de-reference NULL pointers when killing queued
jobs.
Enhancements
Dave Watt <dmwatt@smersh.cambridge.ma.us>, with assistance from Evan
Ross <evan@valentine.com>, made numerous additional changes to round out
the Windows NT support. One visible change is that lines in UUPC.RC and
[userid].RC can be prefixed with WIN32. to cause the line to take effect
only under Windows NT.
The ConfDir variable is now optional. If the ConfDir is omitted from
UUPC.RC, its value is taken from the directory for the UUPC.RC file
specified in the UUPCSYSRC environment variable.
The directories (except the user's home directory) in the UUPC.RC and
[userid].RC file can now be omitted or made relative to the ConfDir. If
omitted, they are assumed be sub-directories of the ConfDir with default
names. The user's home directory may be relative to the ConfDir, but it
must not be omitted.
Added new configuration variables OS2.priority and OS2.prioritydelta.
These specify the OS/2 priority of UUCICO when connected in the range 1
through 4, and a sub-priority of 0 through 62.
Added new Boolean option bounce. When enabled, this causes
undeliverable mail to be returned to the sender (as determined by UUXQT
and/or by the UUCP From line) with a copy to the local Postmaster.
William Plummer <plummer@theme.com> made various additional changes to
the test driver for DOS COMMFIFO package.
Per request of Katherine Derbyshire <docs@kew.com>, modified GENSIG to
print out a more useful message about the quote selected, specifically
including the output file name.
Versions 1.11w through 1.11x Revision Summary
Bug Fixes
Corrected bug in local delivery routine which failed to detect a letter
followed by a colon in a FORWARD file was the beginning of a path name.
This fix was supplied by Russ Nelson.
Modified internal pager to not scroll top line off the screen when the
display is aborted.
Corrected RMAIL usage message to display all the operands allowed by the
command's rich syntax. Fix supplied by Russ Nelson.
Modified chdir() to attempt directory change before invoking mkdir() to
build the directory to change to. This should be faster, since a
directory will always exist after the first chdir() to it.
import_path() mangled valid paths under certain conditions. Modified
the routine to properly convert path names with a single character in
the path and/or terminated by a slash.
Corrected import_newsgroup() to not pad the numbers generated as
part of names of DOS news articles. Fix provided by Kai-Uwe Rommel.
Corrected via spool directory search routines to correctly handle
interrupted searches when a connection to a host is lost. Previously,
if a search was not determined to be interrupted, export_path() would
catch the bad file name and abort the program ... usually.
Corrected included strlwr() function to lower case the string, not upper
case it. This problem only affected users using unsupported compilers
which lacked this function in their run time library.
Modified RNEWS to not shadow or otherwise process an empty compressed
input file. Also corrected the file name in various error messages
related to uncompress processing.
Modified RNEWS to report when it has to delete an article, and to
summarize number of articles dropped.
Modified RNEWS to report specific error messages via printerr()
when it is unable to process a file.
Modified RNEWS to write news in the proper news directory when the snews
flag is set. Fix supplied by Kai-Uwe Rommel.
Applied numerous minor fixes to RNEWS supplied by Kai-Uwe Rommel.
Corrected EXPIRE to properly expire one news group via the -n flag. Fix
supplied by Kai-Uwe Rommel. 10/04/93 - 183 -
UUPC/extended 1.12b Installation and User's Reference
UUPOLL would be confused by 25 hour days caused by the end of Daylight
Savings Time and attempt to poll continuously during the last hour of
such a day. Corrected UUPOLL to realize not all days are created equal,
and to correctly compute the next poll as the first poll of the
following day.
Altered numerous files to be unbuffered, saving on memory and reducing
memory to memory copying of data.
Deleting extra lock files was a major performance hit under OS/2 with
UNDELETE processing enabled. Corrected UUCICO and UUXQT lock processing
to not lock systems without reason.
Suppressed closing UUCICO warning message about unable to connect to
remote when the program was only answering the phone.
Made UUCICO 'G' protocol use packets of fixed size to be more compatible
with System V Release 4 UUCP.
Made unique entries in the modem (*.MDM) file for entries for the ''g",
"G", and "v" protocol options. Also added largepacket modem file option
for "g" protocol to enable large packet processing under this protocol.
Added new UUCICO 'v' protocol, which is 'g' protocol with optionally
large (512) byte variable length packets. This protocol is only
supported by other UUPC/extended systems.
Corrected two problem with 'g' protocol start-up, from problem
descriptions provided by Ian Lance Taylor, author of Taylor UUCP. Both
fixes provide for insuring one system does not get ahead of the other,
that is one system thinks it has initialized the connection when the
other has not.
Corrected UUCICO to not abort when fields are missing from the SYSTEMS
file. This was based on an original fix by Eugene Nesterenko, Moscow,
Russia.
Corrected various UUCICO start-up error messages to display at debug
level 0, not 1. Thanks to Bill Plummer for pointing this out.
UUCICO would previously reject anonymous UUCP connections if the local
system was running a high debug level. Corrected UUCICO to not confuse
local and remote debug levels.
Modified UUCICO to use a single data transfer buffer for data input and
output as well as a command buffer, thus allowing this buffer to be
bigger.
Modified UUNAME to accept the debug level (-x) option. This was
embarrassing since the upgrade instructions specifically said to use
this option to determine obsolete keywords in the UUPC.RC file.
Corrected UUXQT to send mail to the originator of a UUX job, not the
local postmaster. Also corrected UUXQT to not mangle the dummy input
file name NUL and then be unable to open the mangled name. Fixes
supplied by Charles R. (C. R.) Oldham of Arizona State University.
Corrected UUSUB to reset the starting time of statistics collection when
clearing all totals.
Corrected UUXQT to report why RMAIL dies, not just that it failed.
Corrected RMAIL to not close its own log file, instead leaving this task
to the common logging functions.
Enhancements
Dave Watt ported the entire source to Windows NT. Note this platform
has been not been tested, and executables are not supplied at this time.
Problems are specifically known to exist in creation of the HOSTSTATUS
file.
Dave Watt also wrote DESQView support. UUPOLL and UUCICO give up the
CPU when idle.
Added a number of new sample configuration sample files, including a
sample PERMISSN file and copies of several files used on kendra.
Modified configuration file routines and expand_path() to use run time
library supplied functions to normalize directory paths. This allows
determining the path on drives other than the current drive.
Note: Because of this change, placing floppy diskette drive
letters in the PERMISSN file can cause the system to
hang when it attempts to determine the current
directory on the drive.
Rewrote the OS/2 versions of UUIO, UUCLEAN and WAITING commands into
REXX, made enhancements including using the UUPC/extended environment
variables and aging files based on size.
Added MAILCHEK command from Evan Champion <evanc@uuisis.isis.org> to
provide running report of mail waiting in an OS/2 window using Visual
REXX. (This command does not exist under DOS.)
Modified FOPEN() to automatically retry failed file opens for 20 seconds
if the error is a sharing violation. Also modified openline() and
lock_system() to not use this retry processing.
Moved HOSTATUS file from spool directory to configuration directory, and
moved news ACTIVE file from news directory to configuration directory.
This allows easily backing up these files without backing up the news or
spool directories.
Modified majority of permanent string allocations to use newly written
routine strpool(), which allocates memory in larger blocks, thus
bypassing malloc() space overhead. Routine also
searches duplicates in strings to avoid allocating the same string
twice. If running at debug level 2 or above, a summary message of the
memory used (and saved) is printed. Also, added new boolean option
SpeedOverMemory to bypass the duplicate string scan on slower systems.
Wrote support for a system wide user aliases file. This file, used only
by RMAIL, allows forwarding for users and/or mailing lists to be defined
without adding the local address to the PASSWD file, resulting in
improved efficiency for other programs which use the PASSWD file such as
MAIL and UUCICO. Use of the system wide alias file also eliminates the
need for dummy home directories containing forward files, resulting in 4
kilobytes disk savings per forwarded user. This support was based on a
prototype supplied by Russ Nelson.
Modified MAIL to print the numbers of items deleted by the delete
command on one line to keep the screen from scrolling madly. Also,
items previously deleted are not listed a second time.
Added number items in the mailbox to the MAIL status command.
Added "Path:", "Lines:", and "References:" to the list of items ignored
by the internal mail pager used by the print command.
Under OS/2 and DOS 4.0 or above, the internal pager now uses the true
screen size to determine the number of lines to scroll. This allows
exploiting 50 line VGA screens or odd-sized OS/2 windows.
Modified loading of ACTIVE file by news processing to not build
directories for empty news groups. So long as the target directories
are built by the routine posting news (i.e. RNEWS uses fopen()), then
the directories will be created on demand.
Enhanced EXPIRE to report bytes and articles processed, including totals
for data purged, moved, or left eating disk space. Running EXPIRE at
debug level 2 (-x 2) will report this information on a per group level.
Modified UUPOLL to report when the UUCLEAN command is scheduled
to next run at startup.
Modified UUCICO processing enabled by the syslog option to work with the
multitask option. Specifically, the SYSLOG is only opened when needed
in multitasking mode and closed immediately.
Modified OS/2 communications support to show communications port errors
in English. Also added a ShowModem() function to OS/2 communications
support to show modem status in English.
Under OS/2, increased modem recover time from 0.5 seconds to 2.0 seconds
after hanging up the telephone.