# WebKit 0.9.2 Release Notes

WebKit version 0.9.2 released on 09/18/06

## New Features

- As suggested by Alex Southgate, WebKit now uses Fazal Majid's threadframe module (that needs to be installed separately from Webware) in order to print thread stack frames when receiving a `SIGQUIT` signal. On Windows, `SIGBREAK` (Ctrl-Break) can be used instead.
- Finding the directory index file ignored cascading extensions. If there was an index.py and an index.html file, you got a "not found" error, even with `UseCascadingExtensions = True` and `ExtensionCascadeOrder = ['.py','.html']`. Now, the index.py file will be chosen over the index.html file because it has the higher priority. Still, the order of the file names in `DirectoryFile` takes precedence over `ExtensionCascadeOrder`. (Patch 891917 by Christoph Zwerschke)
- `HTTPRequest` now exposes content type, charsets or languages in an elementary fashion. Also, `rawInput` was somewhat prone to breakage. An additional check prevents illegal/impossible operations on the request stream. (Patch 753331 by Paul Boddie)
- When a user created a new context, but forgot to add the __init__.py file, the context failed to load. This file is now auto-generated when loading the context failed. (Patch 763490 by Jose Galvez)
- By setting a special define, you can now have mod_webkit pass the password secret from Apache to WebKit. Usually, Apache will pass only the remote user name. (Patch 830586 by Maximillian Dornseif)
- The maximum file size to be cached and the buffer size when serving unknown file types are now configurable via subsettings of the `UnknownFileTyes` setting in Application.config (see Configuration Guide for details).
- In WebKit/Adapters/CGIPlus you will find additional and modified files to help you run Webware on OpenVMS in a WASD CGIPlus environment (provided by Jean-François Piéronne).

## Improvements and Refinements

- Names in the AppServer.config `Host` setting are now resolved. You can now also use `'localhost' = '127.0.0.1'` and `'' = '0.0.0.0'` (all interfaces) as the `Host`.
- Config files are now opened in universal newline mode. This means you can now edit config files for Webware running under one platform (e.g. Unix) with an editor running on a different platform (e.g. Windows) without causing any troubles.
- Made the session cookie name configurable (request 1049922). This can now be done with the Application setting `SessionName`. The default name is "_SID_", as it has been used before.
- Removed the very obscure context keyword parameter from `forward()`, `includeURL()`, `resolveInternalRelativePath()` and `callMethodOfServlet()`. Probably nobody used it anyway, and it was pretty confusing. This context parameter (or, if missing, the current context) was always prepended to absolute paths, though according to the docstring absolute paths are not changed. Absolute paths stay now really unchanged. This also fixes bugs 530390 and 789693.
- The `URLParser` now handles absolute file paths delivered by the PSP handler.
- The `serverSidePath()` method now handles absolute paths, removing a leading slash (request 836157 by Toyotomi Hideyoshi).
- Cheetah template backups are now ignored (patch 675230).
- Code-cleanup in `WebUtils.FieldStorage`. `parse_qs()` will not raise an exception any more if `REQUEST_METHOD` is not set.
- The `HTTPResponse.writeHeaders()` will now set the Status header if there is none (part 2 of patch 1520399 by Jean-Francois Pieronne). Also optimized that method for speed and readability.
- In the Image example, the image is now embedded in the ExamplePage.
- Solved problems with stale pid files in some start scripts.
- The address.text (http.text, monitor.text) files are now deleted at shutdown. If they already exist at startup, then, if possible, remove; continue startup if they cannot be removed but have the same content anyway; otherwise give a proper error message.
- Some optimizations in the built-in HTTP server; removed dependency from the deprecated `mimetools` module.
- Fixed some problems in the Ajax example and tried to make the code more clear.
- Improved ListBox example to kindly handle refresh/reload.
- As a precaution, using `os.chdir()` while running the ThreadedAppServer now prints an error message. You can set the `force` parameter to True if you want to do it anyway.

## Bugfixes

- Fixed a typo causing trouble with the `AutoReloadingAppServer`.
- Because of another typo in `ThreadedAppServer`, the `activeThreadCount()` method always returned zero and the number of threads could not be properly adjusted. (Reported by Oliver Bock)
- If an exception happened in an included or forwarded servlet, the exception handling happened in the context of the including or forwarding servlet. Particularly, the `writeExceptionReport()` method of the including or forwarding servlet was called, an not the method of the included or forwarded servlet. (Reported by Oliver Bock)
- The Request method `isSessionExpired()` and the Application setting `IgnoreInvalidSession` did not work any more due to a larger rewrite of the Application module after Webware version 0.8.1. This functionality has been reimplemented. (Reported by Niurka Perez)
- Building wkcgi on Solaris needs socket and nsl (bug 727052). The makefile does now support a LIBS macro and the proper setting needs only be commented out. See also the note in the README file.
- Rewritten URLs are now handled correctly by evaluating `SCRIPT_URL` (bug 902242).
- Bugfix in `setTransaction()`.
- Fixed a bug when Webware is used in a non-persistent environment (OneShotAdapter); don't start the session sweeper in this case (part 1 of patch 1520399 by Jean-Francois Pieronne). Also, don't start the session sweeper when no session timeout is set.
- Some more minor changes and fixes.