ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ º 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.DOC file for upgrading instructions!!! *** 2.28b - This version is a fix for the Y2K problem of ULP displaying/using 100 for the year 2000. Currently, there is no OS/2 version as I don't have OS/2 installed and am unable to compile it. (If anyone has a spare 2.1gig or larger IDE drive they'd like to donate so I can re-install OS/2, feel free to send it my way ) See the READ.1ST file for information on switching to the DOS version. 2.27 - Due to the 2.26 fiasco with the OS/2 version crashing on people, I've said the hell with Watcom, and have recompiled the Os/2 version with Borland's compiler. It's a little older, but more stable and much easier to edit/debug with. I've updated the FAQ document with 2 new questions/answers and added a Table of contents at the top so you can see if you're question may already be answered in the FAQ. The two new Q&A'a regard changing drive letters/moving ULP, and converting between DOS <=> OS/2 versions of ULP. Fixed a few typo's in the online help file 2.26 - New Registration Site (see Register docs). All support and registrations are done by Herbert Bushong Increased range of archive checking to catch more (if not all) WinZipSFX archives. The result of this may be more false archive detections, but people want WinzipSFX detection so I don't want to hear complaints now about any false detects. I had increased the stack temporarily and forgot to reduce it back before releasing 2.25. Changed the Critical Error handler from the TCXL default to it's alternate critical error handler so as to provide more detailed information on a TCXL error. There appears to be some conflict with ULP/DOS and QEMM (lockups), possibly with attempting to run it in a window under Desqview or Windows. I don't use QEMM (never have) and don't have any ready fix for it. My only advice is to try excluding various video memory regions from QEMM as that may be the culprit. The only other option is to remain with 2.24 as that version does seem to not have problems with QEMM, but you can try the upgrade first, as others using QEMM have had no problems. 2.25 - ULP is now owned by ZT Technologies. This version is a recompile using Borland 4.5 for DOS, and Watcom 11.0 for the OS/2 versions. The programmer is Herbert Bushong. I'm now including DOS/OS2 versions of DBVALID.EXE and ULPDATE.EXE in the archives so a separate archive isn't necessary to keep around. Many people had trouble finding the UPGRADE.EXE for 2.20. This is the same UPGRADE.EXE and is unneeded for this version (see UPGRADE.DOC for more info) 2.24 - I accidentally broke the archive prescreening function a few (10/5/96) versions back...any errors normally found in screening (e.g. DOS keywords, broken archive, encryption) were being ignored. Fixed. If a file was uploaded without an extension, ULP/2 would crash (SYS3175) message. Fixed. This will probably also prevent some weird errors in DOS due to the wild pointer. 2.23 - I broke the ZIP detection routine by accident...fixed. Sorry about (7/16/96) that... While I was in there, I added code to prevent another false positive that a user fed back to me. 2.22 - On request, ULP's insertion of messages to local users is now (7/13/96) configurable via ULPSM (by default it is turned off). The "TO" field is no longer capitalized prior to message insertion by ULP. Added two new macros to the message insertion command line: @FROM@ and @OPT@. These macros can be set dynamically within the message template through the MSG_FROM_NAME and MSG_OPT keywords (refer to the documentation for more information). Strengthened ZIP signature detection to prevent programs with imbedded signatures (such as RAR's RCVT.EXE) from causing a false positive. Upgraded Watcom C compiler to version 10.6 from 10.0b. 2.21 - Adjusted the SFX detection code to properly detect InfoZIP's ZIP- (6/22/96) compatible self-extraction module for OS/2. ULP/2 is now capable of utilizing ZDCSULP.EXE more seamlessly by forcing ZDCSULP.EXE through PipeDOS. This is still a very slow way to run ZDCS under ULP/2; you would be better served to run the DOS version of ULP in an OS/2 VDM instead. Altered ULP so that messages are sent only for public uploads from a remote user. Uploads from local (e.g. non-serial) logins, file attachments to messages, private file uploads to sysops, etc. will not have messages generated for them. Moved registration key check before configuration file processing in ULP startup logic to prevent unregistered delays to registered users if a configuration file error (e.g. missing) occurs. 2.20 - CREDIT CARD REGISTRATION IS BACK! See REGISTER.FRM for details. (4/13/96) Added full support for messaging upload test results to the user and/or sysop using fully customizable, multi-lingual templates. Refer to the documentation and online help for more information on this new subsystem. Note that an external message insertion utility is necessary, such as TXT2MSG for PCBoard. Configuration file format changed (I ran out of expansion space), necessitating UPDATE.EXE (contained in ULPU_220.ZIP). While I was expanding the file, I also increased the maximum number of file checkers from 5 to 10. Added new @-macros for the various templates: @FIRST@ (user's first name, PCBoard-style), @CONFNUM@ (conference number of the upload) and @FAILTEXT@ (fixed-format failure description strings). Altered the process data file handling slightly...the process data file is now automatically named the same as the base configuration filename but with the extension ".PDT". There really is no reason why the sysop should need to keep track of the filename in practice, and this may help prevent some confusion with multiple configs. Altered normal logging a little to reduce log size...most probably won't notice. Also added more information to the log file when in debug mode. The OS/2 version of ULP and ULPSM would ignore filenames beginning with a period (permissible on HPFS partitions). Fixed. ULPSM sometimes wouldn't recognize that a field had been edited, possibly losing configuration modifications when exiting. Some debugging code trying to track the internal database problem a couple of people had broke the ZDCS database interface. (This was the fix released as 2.13a). 2.13 - Compiled a FAQ file from my ULP Support conferences. Hopefully this (2/11/96) will be of some benefit to people who may be having some difficulty already beaten to death in the echoes. Read it. Also spent some time scrubbing the docs and online help files. Altered ULP's startup logic to prevent unnecessarily opening the duplication database or BBS ad database files under certain operating modes. This may help a couple of people with database corruption problems when no data is written to it (strangely enough). It'll also save some memory along the way... Corrected a condition where temporary data files may not be removed in the $DATxxxx scratch directory when archives are filtered. Added a check for possible junk in the work subdirectories which produces warning messages on screen and in the log. While I could add code to remove the junk, I would rather try to figure out why it's being left behind in the first place and correct that instead. 2.12 - ARGH! A last minute "innocent" tweak in ULPSM wasn't so innocent, (1/23/96) usually breaking the file checker configuration and causing ULP to report strange errorlevels during processing. Sorry about that... ULPSM wouldn't allow you to set ever as an option for a "run time" flag. Fixed. 2.11 - A new control flag has been added to the file/virus checker, GIF (1/21/96) file checker and JPEG file checker setup: "run time". This flag controls when the checker will be executed, online, event, both or never. This offers greatly enhanced control on what utilities are executed when. A new control flag has been added to the "archive processing" menu in ULPSM: "process nested subdirectories". This is the counterpart to the "process nested archives" and "process nested GIF/JPEG files" flags. This new flag should always be enabled; it is intended for debugging purposes. Altered the "ignore convert flag" of the individual archivers, renaming it to just "convert". This flag now supports always converting a format, not just ignoring (never) converting a format. Refer to the online help for more information. Added additional debugging messages for debug mode logging. Added additional information for the BBS ad database maintenance functions in ULPSM. Shrank ULP and ULPSM executable sizes somewhat by offloading some little-used static strings (e.g. error messages) into the help file and out of the executables. Bumped the stack space on all ULP executables again to eliminate an error in an archive with 7 (!) internal directory levels. Due to a Microsoft compiler quirk, the ZIP SFX scanning function was broken in the DOS version of ULP, affecting pre-screening and online test in fast mode of ZIP SFX files. Unrolled a section of code to correct the problem. 2.10 - Added a new control flag to the "archive processing" menu in ULPSM: (12/23/95) "repack nested archives". This flag is by default turned off and will prevent ULP from repacking nested archives it encounters while testing uploads. Refer to the online help for this flag for more information. Added a new @-variable "@GSCOL@", which provides a shortened form of GIF or JPEG number of colors (e.g. "16777216" becomes "16M", "65536" becomes "64K"). Added the ability to execute a JPEG graphic file checker (now that one exists). Added checks to ensure the processing of an upload with imbedded paths doesn't exceed the operating system path length limit. This is of particular importance to the DOS version of ULP, which could easily be exceeded by archives from other operating systems such as OS/2, Unix, etc.. Added a database repair function to ULPSM. This function should be able to repair most database corruption errors without too much data loss. Refer to the online help for more information. Hand-optimized some functions for reduced disk access and improved speed. Some errors processing deeply nested subdirectories were reported by some users and were traced to insufficient stack space. Increased the stack space of all ULP executables. Adjusted ULP and ULPSM such that the external program execution window remains on-screen when the error message window pops up if an error occurs. ULP was replacing archive comments in online BBS test mode, which it should not have been doing. If a failure area was defined without a destination area, ULP's override mode would not return the overridden files to the source area. Fixed. If a small .EXE file that was not a self-extracting archive was encountered, ULP could take a few seconds to determine that it wasn't a known archive format. Fixed. Added additional database validation tests to prevent database sort module errors from occurring that were really due to corrupted databases. ULPSM's F2 and F3 invokation functions were broken in the last version. Fixed. 2.05 - Added internal detection support for RAR archives, including RAR SFX (10/25/95) archives. Refer to the online help for recommended command lines if you wish to support RAR archives on your board. Adjusted the file identification routine to detect more recent (but apparently not publicly released) versions of the WinZIP self- extraction module. Added a new error trap for empty archives. Empty archives are archives which have no useful files in them (e.g. it contained only removed BBS ads, only subdirectories in the archive, etc.). Refer to the documentation for more information. Altered the behavior of ULP's local mode command-line switch (-L). With previous 2.x versions, this switch only disabled the comm I/O, but the door drop file was still required for operation. Now local mode is truly local: the drop file is not required. This more closely emulates the behavior of ULPTEST in the 1.x versions. If you wish to have the previous 2.x behavior of local mode, simply specify a COM port of 0 on the command line (-P0). Added an undocumented switch (-+ for those who need it) to ULPSM to prevent ULPSM from aborting on startup errors, allowing you to fix previously saved configuration errors. ULPSM can now merge BBS ad databases that are in ULP 1.x format. Altered the handling of the editor command line strings to match the command line processing of other external utilities. This allows the inclusion of command line switches for your editor of choice. Adjusted the hobbyist registration check to be sensitive to failures caused by junk being left over in the work subdirectories. ULP and ULPSM would not properly handle nested archives that had imbedded spaces in the filename (nested paths with imbedded spaces were OK). ULP/2 and ULPSM/2 were unable to process nested archives that contained more that one period in the filename. These two fixes make ULP/2 and ULPSM/2 generally long filename compatible (although the uploaded filename must still be 8.3 since the BBS software doesn't support long filenames). Bad attachments were being rejected in attach mode; an attachment should never be rejected, regardless of the reason. Fixed. Broke the newest age checking function under some conditions when the statistical age checking method was added in 2.02. Nested graphics files were inadvertently being counted twice in the archive statistics. Fixed. During automatic installation, ULPSM/2 tried to create PCBTEST.BAT, where it should have been creating PCBTEST.CMD. Fixed. Added even more debugging information in the core processing code. Added to the documentation, incorporating answers to frequently- asked questions into both the documentation and online help. 2.04 - Added a new macro to the macro list for templates: @MODE@. This (8/31/95) basically echoes the mode passed by the BBS software during online testing. If the mode was upload, then "UPLOAD" is put in place of the macro, "TEST" for test mode and "ATTACH" for attach mode. Added more than 40 new BBS ads to the distribution BBS ad database that have been provided to me recently. Now the BBS ads database, less than 9K in size, holds records for more than 1440 BBS ads! When running in debug mode, ULP no longer buffers the log file. This may slow down ULP slightly when processing in debug mode, but will ensure that no log data is lost due to file buffers that were not flushed to disk if a crash occurs. Added additional debugging information in the core processing code. Three filters (privileged file list, files to never process list and filename tcan list) would stop filtering after the first match in each directory set. Fixed. ULP now packs out unnecessary "lost" files from the process data file, those with a directory number of 0 due to the inability to match to an upload's location to a specific upload directory set. If ULP was processing files online in fast or normal modes and there was no destination area defined for an upload subdirectory set and if a privileged user uploaded a file, the privileged user upload would be reprocessed during every event run. Fixed. Fixed a bug in detecting the image parameters in a few JPEG files. Argh! Fixed another ZDCS interface bug...if you weren't running ULP online in slow mode, the database was never being updated with duplication data. 2.03 - The DOS version of ULP can now talk to the OS/2 SIO API, in addition (8/13/95) to the direct async and FOSSIL interfaces. This is primarily of benefit to OS/2 sysops who need to continue running the DOS version of ULP for some reason. The use of the OS/2 SIO API is activated with the -O command line switch. The behavior of the -X command line switch has been simplified. Prior to this release, it was followed by the actual FOSSIL port number. Now -X is simply a flag to tell ULP to use the FOSSIL interface. The COM port specified in either PCBOARD.SYS/DOOR.SYS will be used. Two new control flags have been added to the "archive processing" menu in ULPSM: "process nested archives" and "process nested GIF/JPEG files". These flags can be used to prevent ULP from manipulating nested files in any way, although I strongly recommend the "process nested archives" always be enabled. Different image acceptance limits can now be configured for JPEG and GIF graphics files. If you installed a previous version of ULP, be sure to set your JPEG values as desired after upgrading to 2.03. The DOS version of ULPSM now updates the memory available value on the status line on a frequent basis. It's not 100% real time, but it's close enough for government work... Altered the database compilation routine for the DOS version of ULPSM to better support low-memory situations. ULPSM can now compile (from the command-line) in about 450K. If you have more memory (around 490K), ULPSM will be able to compile faster. Added code to help prevent DOS critical error messages caused by overrunning the DOS path length on nested and/or pathed archives. Tweaked the comm functions in an effort to fix the comm I/O problems a few sysops are experiencing. Changed the process data file packing function to pack on disk rather than in memory, removing size limitations. Fixed a bug in the process data file packing function that could cause problems if an upload was processed in slow mode and was not matched to a specific upload directory configured in ULPSM. ULP was ignoring the "generate remote user display" flag in ULPSM, enabling the comm port at all times. ULP was honoring the -L switch and the drop file local mode indicator. Fixed. 2.02 - Added support for JPEG files (JFIF format). JPEG files will be (7/29/95) automatically detected by signature, and accepted/rejected based upon the same image width, height and number of colors settings as selected for GIF files. As there are no known JPEG file testers, no provision has been made for an external testing program in this release. Added a third age checking option: statistical. This is similar to average age checking except if the number of files in an archive is large enough, the newest and oldest file are discarded and the remainder averaged. This helps reduce statistical skew caused by a few oddball ages in an archive. Updated the user interface library to the latest version, eliminating the ULPSM/2 CPU-hog problem under OS/2, among other things. Tweaked the conference assignment functionality added in 2.01 to better support sysops who make all uploads immediately available. Grrrr...I fixed the ZDCS interface in 2.01 alright, only to find that the ZDCS database update was always occurring, not just in slow mode! Fixed. The ZDCSULP program was screwing up the local display (it was running in a window)...changed ULP to run full-screen to prevent the problem. Smart word-wrapping in the DOS version of ULP would break under some conditions (OS/2 version was unaffected). If no archive or GIF/JPEG information line was defined in ULPSM, ULP would tack on an extraneous description line repeating the first line. Fixed. 2.01 - Added a preview function to ULPSM for reviewing your remote display (7/23/95) templates; this is initiated via the F4 key when editing the respective fields. Refer to the online help for further details. In order to provide another means of ULP deciphering which upload directories an online upload test belongs to, you can now define which conference number an upload directory set corresponds to in ULPSM. Note that unless changed via ULPSM, all your existing upload directory sets are now currently configured as the main board conference (conference 0). The ZDCS interface was broken. Fixed. ULP no longer attempts to move failed uploads to the failure area during online test, due to apparent conflicts with BBS software. If a failure area was defined and an uploaded file was failed, ULP would move the upload to the failure area. However, PCBoard would still append the "FILE FAILED VERIFICATION CHECK" and "Uploaded by:" lines to the private upload directory listing, where it caused confusion. Fixed (see above). Reduced the memory requirements of the sort module in the DOS version of ULPSM, at the slight expense of speed. ULPSM should now be able to compile in a smaller DOS window (I used a 475K window for testing). This change was not implemented in the OS/2 version since that's a real operating system without memory limitations... If a failure area was defined and a pre-verification file (e.g. VERIFY.ULP) was uploaded that generated a failure, ULP would complain that it could not be moved to the failure area. ULP was operating correctly, other that it should not have been complaining. 2.00 - Initial version 2 production release. Changes too numerous to (7/16/95) mention. Suffice it to say MAJOR update... 0.90 through 1.12 - History removed for brevity. If this information is of any interest, it can be provided upon request.