Well, due to tracking down bug fixes (which took priority), and to a false start on the timeout stuff, I didn't get everything I expected done this weekend. I'd still like to make the API changes, but I'm starting to be conflicted about when --- we'll probably want to make some minor change in the API anyway after the first public release due to feedback. However, there is still a new Shambhala spin, due mostly to a whole raft of bugfixes. This is version 0.6.0, which incorporates the following changes: Changes with 0.6.0 *) Two styles of timeout --- hard and soft. soft_timeout()s just put the connection to the client in an "aborted" state, but otherwise allow whatever handlers are running to clean up. hard_timeout()s abort the request in progress completely; anything not tied to some resource pool cleanup will leak. They're still around because I haven't yet come up with a more elegant way of handling timeouts when talking to something that isn't the client. The default_handler and the dir_handler now use soft timeouts, largely so I can test the feature. *) TransferLog "| my_postprocessor ..." seems to be there. Note that the case of log handlers dying prematurely is probably handled VERY gracelessly at this point, and if the logger stops reading input, the server will hang. (It is known to correctly restart the logging process on server restart; this is (should be!) going through the same SIGTERM/pause/SIGKILL routine used to ding an errant CGI script). *) asis files supported (new module). *) IdentityCheck code is compiled in, but has not been tested. (I don't know anyone who runs identd). *) PATH_INFO and PATH_TRANSLATED are not set unless some real PATH_INFO came in with the request, for NCSA bug-compatibility. *) Don't leak the DIR * on HEAD request for a directory. *) Deleted the block_alarms() stuff from dbm_auth; no longer necessary, as timeouts are not in scope. *) quoted-string args in config files now handled correctly (doesn't drop the last character). *) Fixed silly typo in http_main.c which was suddenly fatal in HP-UX. How the hell did it ever work? *) mod_core.c --- default_type returns DEFAULT_TYPE (the compile-time default default type); the former default default behavior when all type-checkers defaulted had been a core dump. [Paul Sutton caught this] *) Another Sutton bugfix --- copy filenames out of the struct dirent when indexing directories. (On Linux, readdir() returns a pointer to the same memory area every time). Fix is in mod_dir.c. Changes with 0.5.3 [not released] *) Default response handler notes "file not found" in the error log, if the file was not found. Patch from Cliff Skolnick. *) Another Cliff bug --- "GET /~user" now properly redirects (the userdir code no longer sets up bogus PATH_INFO which fakes out the directory handler).