ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ º UpLoadProcessor Revision History File ³ Ò Ò Ò ³ º ³ º º º ÖÄÄ· ³ º ³ º º º º º ³ º The following is a list of the most ³ ÓÄÄĽ Ð ºÄĽ ³ º recent changes made to the ULP system ³ Ð ³ º by revision level, in reverse order. ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ *** NOTE: Refer to the UPGRADE.TXT file for upgrading instructions! *** 1.08 - Fixed the sporadic -AV detection problem. Discovered that PKWARE (6/8/94) uses two bits, not one, to identify a -AV archive, contrary to information previously provided to me by them. Changed the naming convention of the ULP distribution archives. Beginning with this version, ULP will be using the following convention: ULP_xxx.ZIP - x86 (standard) compiled executables ULP2_xxx.ZIP - 286 (and higher) compiled executables ULP3_xxx.ZIP - 386 (and higher) compiled executables 1.07c - If you had configured a two-line archive and/or GIF information (5/17/94) line(s), under certain conditions you could overrun the description buffer, resulting in mangled directory listings. Fixed (note that you cannot have a three-line information line, so don't try it). Removed the exploding window code from ULPSM, as that has shown to be unstable on very rare occasions. Better safe than sorry... 1.07b - Eliminated a "null pointer assignment" error caused if you disabled (4/24/94) all disk logging (by blanking the disk log filename field in ULPSM). Fixed an obscure bug where if a nested archive was encountered by ULP, ULPTEST or ULPDB in the format of the first archiver configured in ULPSM, it would not be detected. 1.07a - Fixed VENDINFO.DIZ importing if you had your maximum number of lines (4/7/94) set to greater than the FILE_ID.DIZ limit (10 lines). Improved ULPDB's compilation/sorting speed while making it much less susceptible to errors. Reduced the size of ULPSM by about 20K to 25K. 1.07 - Added support for registration key files, which will be utilized in (3/12/94) version 2 of ULP. This version will search for your ULP.KEY, and if found, will use the information within. If a key file is not found, it will use the original registration code system. By modifying the buffer handling, the runtime memory requirements of ULP, ULPTEST and ULPDB have been reduced by roughly the size of your database buffer (internal duplication system users only). On request of a user, I increased the number of upload directories that may be configured in ULPSM to 297 (!) upload directories, up from 24. He only asked for 99 directories, but decided to overkill a tad... This was released separately as ULPSM 1.06a, filename ULPSMBIG.ZIP. Documented the previously undocumented -D switch in ULP.EXE. Added a command-line switch to ULPSM to enable it to initialize the process data file from the command line. This was done in preparation for ULP 2.0, which removes that function from ULP.EXE. Added checking in ULPSM to determine if changes occurred in the source subdirectory definitions in the upload directory configuration, and warn that re-initializing of the process data file may be necessary. Embellished the ZDCSULP error messages a little to help track down problems associated with the interface. Renamed the ULP.CFG and ULPDIR.CFG to SAMPLE.CFG and SAMPLE.DIR, respectively, to prevent overwriting of your configuration files when upgrading versions. Fixed ARJ security envelope detection (yes, again). Tweaked the segment definitions for the segmented sorting algorithm, since a user experience an "segment too large" error. Along the same lines, ULPDB now offers a -F command line switch where a user can force a segment size in the event the error occurs again. Some users experienced lockups running ULPDB. As I discovered today, ULPDB never locked up; the sorting algorithm I use doesn't do well when a huge level of duplicate records are present or when records are worst-case ordered. In response, I added a "whirlybird" indicator to show that ULPDB is still working during the sort step. Attempted to fix external deletion mode for DR-DOS users. The ULP.EXE GIF testing module was going to the wrong work subdirectory to try and find duplication data, meaning it never failed GIFs for duplication. The @CR@ variable was broken in the GIF information line. Fixed. ULPDB would barf if it encountered blank lines in a list file passed to it via the -A parameter. Fixed. On some systems running the latest version of DESQview, ULP would freeze during time delays. Changed timing functions to Borland's internal functions in the 386 code (since it is the only version compiled 100% Borland), as DESQview seems happier with those timing functions. 1.06 - Added preliminary support for the new VENDINFO.DIZ standard for (1/28/94) internal description files. Further support will be added in a future version if this standard catches on. At the request of a couple of users, ULPSM has been modified to permit editing 24 upload subdirectory configurations, up from the previous limit of 15. Also at the request of a user, increased the number of configurable special-case file extensions to 24 from 10 (this applies to both "extensions to never process" and "extensions to process and compress"). Added a sample configuration for the new UC2 compression format to the sample configuration file. Note that this format is identified only by extension. Signature identification will not be implemented until the archiver becomes more widespread and mature. Altered the logging of "files previously processed" to place 4 filenames per line, reducing log file bloat for those with large numbers of files in their source upload directories. Removed the archive info line from "file extensions to never be processed" files, since the data is generally inaccurate. The ARJ security envelope format was changed in ARJ version 2.4, breaking ULP's secured ARJ archive detection. Fixed. Some users reported that the ULPTEST pre-verification test was broken, but I was unable to replicate it. However, after reviewing the code, I found the problem and now I can't figure out how it ever worked in the first place! I wasn't properly opening the temporary data file for the pre-verification routine. Fixed. Oops...ULPDB was returning an errorlevel of 0 regardless of what happened during its execution. ULPSM archivers configuration menus would not permit numbers in the file extension. Fixed. 1.05 - Finally nailed that swapping lockup problem that has been affecting (1/6/94) a small precentage of the people using ULPTEST! The direct comm interrupts were left hooked during the swap, and if something (keystroke, line noise, etc.) were to be received by the modem during the swapped spawn, the unservicable interrupt could lock the system. ULPTEST now shuts down the direct comm I/O prior to a spawn and restarts it after the returning from the spawn. This, in conjunction with updated library code, should fix all swapping problems. 1.04 - Disk swapping has been broken since swapping was first introduced (12/31/93) into ULP during early 0.9x beta testing; this was due to a bug in my third party library. Fixed. Added the file SWAPPING.DOC to fully explain the ins and outs of swapping with ULP. Read it...the rare lockup problem (experienced by a half-dozen or so out of a few hundred ULP users) has not been tracked down by the library vendor as of this release. ULPTEST will now follow the description column number as configured in ULPSM for description secondary lines. Originally, ULPTEST forced this value to 32, relying on ULP.EXE to correct the description in the event, which was not compatible with ULPTEST's slow mode. It appears I was overzealous in my attempts to not falsely detect an ARC format archive, and was not recognizing some valid ARC archives. Fixed. Found that if an archive had a sufficient number and layers of nested archives, ULPTEST could abort with a stack overflow error. Corrected by increasing ULPTEST's stack size by 1K. This was discovered when processing V12N21.ZIP, which has multiple 4-level- deep nested archives within. ULP.EXE does not exhibit this problem. ULPTEST's local mode switch (-L) was not working. Fixed. If you had your default archiver as the first archiver in page 1 of the "archivers" menu, ULP.EXE would insert the wrong new file size for an archive that was converted from a format other than your default. Sorry 'bout that... Fixed a bug where very badly damaged archives could hang ULP while screening for corruption. Learned that ULP would still strip leading spaces regardless of the smart word-wrapping toggle (it shouldn't have with word-wrapping off). Fixed. Fixed a bug where spawned processes on nested archives could fail for an invalid command line parameter due to an improperly restored pointer if no @-variable was used in the command line. This bug has existed since the 0.90à versions of ULP, but apparently no one found it until I found it recently. If the work subdirectory drive letter wasn't capitalized, ULP would incorrectly think there wasn't enough space available on the work drive, and would default to the startup drive as the work drive. Fixed. ULPDB's view function would not operate on a file located on a write-protected device (e.g. CD-ROM drive). Fixed. 1.03 - Changed the swapping code (yes, again) because the code installed in (11/6/93) version 1.02 was mangling the direct comm I/O after the first swap. Also, the type of swapping is now configurable (see the General Options menu). Options for swapping are now: (N)one, (E)MS, (X)MS, (D)isk and (A)uto. Added the brain-dead newest file age checking algorithm back into ULP as an option (see the Age Checking menu). I *strongly* recommend you stick with average age checking, as it's much more resistant to tampering than simply basing acceptance off the newest file, but some people seem adament about using a newest file algorithm. Removed the "elapsed time" code, saving about 1.5K of executable size each on ULP, ULPTEST and ULPDB. Shortened the length of the @-variable names that ULP utilizes in order to free up a few more characters for the configuration information fields in ULPSM (refer to the documentation for the new variable names). Removed the erroneous FOSSIL port limitation of 8 (port numbers 0 through 7). Any port number will now be accepted on the command line. Fixed a bug in ULPADS that, under certain conditions, incorrectly identified ads as having already been entered into the CRC database, when in fact, they had not. The end result was the perception that ULP was not removing some BBS ads. Fixed a problem where ULPTEST would still attempt to access the comm port regardless of the configuration. Also improved ULPTEST's handling of comm port detection and determination. Due to some users having problems with stray DSZPORT variables, the order of the comm port determination was changed to: 1. It utilizes the information directly passed on the command line. 2. It will search for the PCBDIR, PCBDAT and PCBDRIVE (optional) environment variables to locate the PCBOARD.SYS and PCBOARD.DAT files. 3. It will look in the current subdirectory where ULPTEST was started from for the PCBOARD.SYS and PCBOARD.DAT files. 4. It checks DSZPORT environment variable for the comm port information. Discovered that ULP and ULPTEST were not including GIF files in the byte counts, making the @BYTE@ variable incorrect for GIFs and archives with nested GIF files. Fixed. Fixed a bug where ULPTEST would not properly count the number of executable duplicates, thereby skewing the percentages. (I think this bug only affected ULP's internal duplication system). ULPTEST did not properly handle what PCBoard was passing for 115,200 baud in the 5 character space allocated in PCBOARD.SYS for the DTE baud rate. Fixed. Mike Cocke is now a reseller of my shareware products, and can accept credit card registrations. Please see the REGISTER.FRM file for more information. 1.02 - In an effort to further improve ULP's already frugal memory usage, (10/7/93) the internal database buffer size is now user selectable. Three sizes are available for optimum database speed and memory usage: 2.5K, 5K and 10K. The smallest should be used for small databases (less than 1 meg) or in severe memory conditions. The largest should prove *slightly* faster for large databases (greater than 3 megs). Previous versions of ULP had the database buffer hard-coded to 10K. (This buffer is used only for internal database users; no buffer is allocated when ZDCS is used). Changed swapping code to what appears to be a more stable and compatible routine. In addition, an additional 25K of memory is now available with swapping enabled. Since ULPTEST fast and normal modes do not repack archives, the BBS ad checking was not enabled. This posed other problems, such as inaccurate duplication levels due to the BBS ads being included in the statistics. ULPTEST fast and normal modes now perform BBS ad checking but do not remove the ads until ULP.EXE reprocesses the file in the event. Argh! Under certain circumstances, ULPTEST would create an archive of the same name as being tested, except with the extension .ULP, containing only a comment. ULPSM would not allow a non-zero errorlevel to be configured for a GIF file checker. Fixed. With some help from the Fidonet C echo, I was able to fix my FOSSIL code for the Microsoft compiler, and have switched ULPTEST back to Microsoft C 7.0. Updated my direct comm libraries to the latest version. 1.01 - The "error disposition" and "virus disposition" functions now have a (9/22/93) third option: (K)eep. When (K)eep is selected, ULP will keep the defective uploads, but will not rename them. Note that selecting (K)eep prevents the use of ULP's override mode, since override mode keys off of the file extension that (R)ename produces. However, the purpose of the (K)eep function is to allow systems to more easily retain a rejected file. The "insert information line" flag has been removed from ULPSM. ULP and ULPTEST will now insert a line only if one is defined, giving the increased flexibility to add an archive info line, but not a GIF info line, vice versa or both. Added a new function to ULPSM's description processing menu: "Insert lack of description line". By setting this to 'Y', ULP.EXE will move files that have no description to the destination area, inserting the description line "No description available". Setting this to 'N' operates in the same manner as previous versions, where the file is not moved. ULPSM will also accept an environment variable, defined using the %VARIABLE% convention DOS uses, in the work subdirectory field. Note that the environment variable must still conform to the requirements for the work directory paremeter (trailing backslash, path length, etc.). Increased the maximum allowable number of description lines to 60, to match PCBoard 15's limit. Note that setting the limit higher will use more memory in ULP and ULPTEST. Extended ULPDB's segmented sorting algorithm to allow a complete recompile of a duplication database of up to 128 megs in size (I had one ULP user creeping up on the previous limit of 8 megs in size). Prior to this release, GIF file testing within ULP could not be disabled; ULP would always detect the GIF file and attempt to test it. It is now possible to disable GIF detection and testing entirely if all minimum image parameters are set to 0 and the GIF file tester command line is blanked out. Removed the bomb archive checking code in ULP and ULPTEST in favor of the improved disk space checking routine. Previously, ULP and ULPTEST would fail an archive if a file contained within was over the hard-coded limit of 5 megabytes in size; this is no longer the case (unless there is insufficient disk space to decompress the archive). Due to the ever-increasing memory requirements of SCAN, an example F-PROT command line has been added to the default ULP configuration file for those who wish to change virus testers, or simply want the extra safety of two virus testers. ULPTEST slow mode was not following the archiving flags for nested archives and nested SFX archives. ULPTEST also did not detect ZIP -AV stamps or ARJ security envelopes (this was by design when only normal and fast modes were available; I forgot to install it when slow mode was added). ULPSM would not allow numerals to be included in the special case file extensions. Fixed so all valid filename characters are accepted. Finally tracked down a long-standing bug that would process nested archives twice under certain circumstances. Fixed a problem where the privileged user list handling wasn't working exactly as planned when ULPTEST was run in normal or fast modes. Fixed a problem where ULPTEST normal and fast modes would not detect that the same file uploaded twice between events were duplicates. ULPSM would erase the unpacking command line in the archivers entry screen if the pack command was edited. This error also produced archiving errors if the command line extended to within 3 characters of the end of the packing command line field. Fixed. Cleaned up a few "Divide by zero" errors that would appear under some conditions. 1.00 - First non-beta production release. (8/28/93) 0.91á through 0.99á - Beta test versions... 0.90à/A through 0.90à/I - Alpha test versions...