WebHub Object Pascal Components

Delphi XE2 Update 3 v2.164
The only change between v2.163 and v2.164 is that the XE2 files are compiled with XE2 update #3.
Please note: if you compile with EurekaLog and XE2 and update #3, use EurekaLog v6.1.0.4 RC2 or later.
TwhdbScan CSS for buttons v2.165
If you were calling SetDelimiters2004, you should now call SetDelimiters2012.
If you were calling SetButtonSpecs2004, you should now call SetButtonSpecs2012.
The 2012 variation has two small improvements. (a) All four buttons receives a class attribute on their li tags. (b) The word Rows: is placed within a span.
Syntax highlighting OFF for large files v2.165
On the Html > Files panel, syntax highlighting is disabled for large WHTEKO files.
Syntax highlighting improved v2.167
Highlighting is active for files of all sizes. Highlighting starts 1200ms after a change is detected.
Only the text in the visible window is highlighted.
Syntax highlighting on Html > Pages panel v2.168
Syntax highlighting active on Html > Pages panel.
Syntax highlighting active on Html > Droplets panel.
If you have any serious problems with the highlighting feature, you can turn it off: fmAppHTML.DisableHighlighting; // uses whHTML. Please report problems to tech support.
New function: MailStatusIsError v2.168
Within the OnAdvise event of TwhMail, you can use this function to check the mail status property, and thereby determine whether an error condition has occurred.
TwhMail improvements v2.168
Fixed memory leak. The Destroy method now frees the linked TwhWebSock and TwhWebPGP components. DUnit test no longer reports a memory leak.
New properties: LastErrorText provides a string containing information about one or more error states that happened during component execution. LastMailAcceptedOnAt is a TDateTime giving the moment that the most recent email messsage was accepted by the smtp server.
Sent flag is reliable; the Sent flag now indicates that the most recent email message was sent by the smtp server.
New property: pWebApp.Debug.SilentUnrecognizedExpressions v2.166
Toggle this True/False depending on whether you want to be alerted about invalid expresions in WHTEKO files as pages are calculated. Such errors only surface if error reporting is turned on via the application-level XML file.
The use-case for this property being toggled False is when you have fully reviewed your code and are sure that the remaining "errors" are non-consequential, especially "errors" about unassigned stringvars.
ExcludeStringVars feature fixed in webMailV.pas v2.166
ZMAdmin hints for this feature were correct. Use semi-colons to separate multiple variable names. The problem was that the TwhMailForm component was not excluding StringVars correctly. The AddFrom method in webMailV.pas was fixed.
In TwhMail, the HELO string is never blank v2.166
Use of a blank HELO name can lead to the error HELO requires domain address when using SendMail on Linux as the mail server.
See also: LocalIP and IPAddrToName (functions in webSock.pas)
File panel does not save settings to AppRestorer.xml file v2.167
Work in progress - something is corrupting the syntax of the AppRestorer file.
New property: ValidateConfig Boolean on web data source v2.169
For development, testing, and maintenance of WebHub applications written long ago.
Default False. If you set this public property to True using Delphi, then, when you execute a grid, (a) DisplaySet lists will be checked to make sure they reference valid fieldnames, and (b) grid cells will include a comment to help you connect the output to the underlying TDataSet structure.
New TPack tools for use with Firebird and Interbase Objects v2.169
TPack Source code now includes units which generate SQL and PAS code based on meta data in an existing Firebird database, plus one unit which uses ZaphodsMap to load databasename, username and password.
Tested with Firebird v2.5.
IBObjects is required for compilation.
This code is at first-draft stage; no documentation yet. Contact tech support if you wish to use it sooner than later.
Please purchase a TPack source license to use this without WebHub and/or to gain access to the TPack source subversion repository.
The unit named whCodeGenIBObj.pas is highly experimental at this stage. It is possible to use it to generate fairly generic WHTEKO code (for a Firebird database, when using IBObjects) based on repetition of droplets for a given AppID. The intention is that the resulting WHTEKO code is exported to disk rather than used in real time upon surfer request. Reason: speed.
Installer supports optional TeeChart Pro and IBObjects configuration v2.169
32-bit only; disabled for 64-bit for now.
Reference: How to Install WebHub with TeeChart Pro and/or IBObjects

The Hub, WebHubAdmin, ZMAdmin

WebHub Guardian improvements v2.165
Any *.H2I files in the ipc folder under the WHTEMP folder, being older than 60 minutes and referencing a process which is not running, will be automatically erased by WebHubGuardian.exe. The checks for obsolete files is done every 30 minutes.
When run as-app, the guardian will put important error messages into a memo in the GUI. Error messages are also written to a LOG file on disk.
Detection of WebHub v1.x no longer supported during Setup v2.165
If you have a WebHub v1.x runtime on your computer, you should uninstall it, and then run the new v2 or v3 Setup.
Earlier versions of the WebHub Runtime Setup would detect v1.x, give you reminders about it, and erase registry settings for you. This overhead seems no longer necessary.

WebHub Runners

Runner supports large file upload again v2.160
File upload for files larger than roughly 40kb had been mostly broken in the d15 and d16 runners, both old- and new-ipc. It worked in a few cases, such as upload of small ascii files.
File upload was working in v2.130. Other intermediate versions were not retested.
The v2.160 runner contains some corner-case rules for WebCentre.co.nz.
The File Upload algorithm is now shared between old- and new-ipc for the ISAPI runner. The cgi-bin runner uses separate and almost identical code.
Runner: file upload v2.161
The ISAPI runner no longer requires special corner-case code for WebCentre.co.nz.
The most useful reference was the C source code linked from KB 189651
Runner: compensates for non-lowercase HTTP prologue labels v2.162
Older WebHub apps (e.g. 2.018) that generated HTTP prologue labels such as Content-type and Content-length instead of Content-Type and Content-Length are accepted by the v2.162 runner, with the case of all letters being fixed.
This solves the symptom of "Corrupted Content" which was a result of duplicate Content-Length headers, which was a result of the runner being overly case sensitive.
Runner: SendFileIIS v2.167
If you ask the runner to delete the sent-file, and the runner cannot do that, a warning is logged. To resolve this permissions issue, grant Modify rights to the Windows account under which the runner is operating, e.g. IUSR on Win2008 with IIS7.
64-bit Runner - Known Issue: File Upload v2.167
The 32-bit runners are fine but the 64-bit runner compiled with XE2 is not processing file uploads.
The 64-bit runner compiled with Free Pascal has not been tested with file upload yet.