Remove support for the threaded-mpm's on Linux 2.0, and de-autoconf the
graceful restart signal. Frees up SIGWINCH for implementing graceful stop.
See <20050727114058.GA3390@stdlib.net> and subsequent thread on httpd-dev.
Enhance CacheEnable/CacheDisable to control caching on a per-protocol, per-host
and per-path basis. Makes Cache(En|Dis)able useful for forward proxy servers.
Improve the cache hit/miss ratio by canonicalising the url key. hostname's
are matched case-insensitively, port-based vhosts are catered for and the
scheme included for future multi-scheme caching compatibility.
Update htcacheclean defines to match mod_disk_cache.c, Andreas is working on
mod_disk_cache.h, an all-round better solution, but for now just fix the
bug.
Mladen Turk [Fri, 19 Aug 2005 17:23:00 +0000 (17:23 +0000)]
Arghhh.... missed the version. Sorry for the noise.
Revert the hack for setting the lbmethod.
The problem is deeper inside caused by the
new hook to the balancer module that is never
called on WIN32.
Although the hack fixed core dump, the proxy is
still unusable because the configuration is failing
due to the empty lbmethod names array.
Mladen Turk [Fri, 19 Aug 2005 17:19:54 +0000 (17:19 +0000)]
Revert the hack for setting the lbmethod.
The problem is deeper inside caused by the
new hook to the balancer module that is never
called on WIN32.
Although the hack fixed core dump, the proxy is
still unusable because the configuration is failing
due to the empty lbmethod names array.
Paul Querna [Thu, 18 Aug 2005 20:10:26 +0000 (20:10 +0000)]
Do not check the value of r->handler.
This allows the use of SetHandler for an entire directory, and since we already check via the stat structure if this is a directory, there is no reason for this extra check, which causes a regression since 1.3.
Jim Jagielski [Fri, 12 Aug 2005 15:31:03 +0000 (15:31 +0000)]
When using the LB Balancer manager, if you disabled
a member, then clicked on another member and/or
itself again, the member would be re-enabled. This
was due to the form being "submitted" and
'dw' being null (observed with Safari). Anyway,
moving to a radio makes it explicit.
Jim Jagielski [Fri, 12 Aug 2005 12:47:04 +0000 (12:47 +0000)]
simple, functional interface to add additional balancer lb selection methods
without requiring code changes to mod_proxy/mod_proxy_balancer;
these can be implemented via sub-modules now.
Justin did some minor tweaks as he agrees with Andreas and Rudiger that
apr_dir_remove should return an error if the directory isn't empty; hence,
remove the apr_dir_read calls.
Fix bug where non-200 CGI responses will not send anything down filter chain.
This is most notable when mod_cache is used. This has been used in production
on wiki.apache.org for a while now.
* modules/generators/mod_cgi.c
(cgi_handler): When a non-zero value is returned by scan_script, set the
status field and ensure that we have an EOS to send down the filer stack.
Hopefully, address the last edge case where status may
be uninitialized. Asserts in non-debug builds are bad things,
anyways, so this is probably more correct. This should fix
-Werror compile warning observed by Joe Orton.
An impossible-to-hit edge case today; we described the request
as chunked - and if chunked always send the body termination "0"
chunk header.
Roy's requested change that we always send a body we could read
in full as a C-L request ensures this code wasn't triggered; some
change in the future could again reveal this edge case.
Joe Orton [Fri, 5 Aug 2005 12:27:57 +0000 (12:27 +0000)]
* server/vhost.c (get_addresses): Fail with an error message rather
than an assert() for errors which plague users on Solaris boxes which
don't have a properly configured resolver.
Joe Orton [Wed, 3 Aug 2005 14:44:29 +0000 (14:44 +0000)]
* modules/ldap/util_ldap.c (util_ldap_post_config): Pass NULL to
apr_global_mutex_create if no cache file name is specified, rather
than inventing an inappropriate name with tmpnam().
Joe Orton [Tue, 2 Aug 2005 09:26:51 +0000 (09:26 +0000)]
* modules/ldap/util_ldap.c (util_ldap_post_config): Fail if
util_ldap_cache_init fails; let ap_log_error call strerror.
Downgrade informational messages to APLOG_INFO from APLOG_NOTICE.
(util_ldap_child_init): Remove some noisy but fairly pointless
debugging output.
Joe Orton [Mon, 1 Aug 2005 15:46:46 +0000 (15:46 +0000)]
* modules/ldap/util_ldap_cache.c (util_ldap_url_node_display,
util_ldap_search_node_display, util_ldap_compare_node_display,
util_ldap_dn_compare_node_display): Use ap_rprintf. Terminate table
rows with "</tr>" not "<tr>".
Joe Orton [Mon, 1 Aug 2005 14:50:21 +0000 (14:50 +0000)]
* modules/ldap/util_ldap.c (util_ldap_post_config): Don't attempt to
remove the shm segment here.
* modules/ldap/util_ldap_cache.c (util_ldap_cache_init): Properly
remove the shm segment here before creating a new one; don't attach to
any existing shm segment if apr_shm_create() fails.
(util_ldap_cache_module_kill): Don't attempt to remove the shm segment
here; apr_shm_destroy() does that anyway.
Joe Orton [Thu, 28 Jul 2005 12:02:44 +0000 (12:02 +0000)]
* modules/ldap/util_ldap_cache.c (util_ldap_cache_module_kill): Make
private function static. (util_ldap_cache_child_kill): Remove
prototype for function which doesn't exist.
Joe Orton [Thu, 28 Jul 2005 11:53:25 +0000 (11:53 +0000)]
* modules/ldap/util_ldap_cache.c (util_ldap_cache_init): Use the
actual available size of the shm segment not the requested size.
Ensure the requested size is aligned. Check errors from apr_rmm_init.
Mladen Turk [Thu, 28 Jul 2005 11:16:34 +0000 (11:16 +0000)]
Add status param option so that current worker
status can be changed via editing httpd.conf instead
just using web page. Seems the ApacheCon is paying of.
Thanks to Sander for pointing that out.
Joe Orton [Thu, 28 Jul 2005 10:52:52 +0000 (10:52 +0000)]
* modules/ldap/util_ldap_cache_mgr.c (util_ald_cache_insert,
util_ald_cache_remove, util_ald_cache_fetch): Always use "unsigned
long" for hash values, for consistency.
Joe Orton [Thu, 28 Jul 2005 10:45:59 +0000 (10:45 +0000)]
* modules/ldap/util_ldap_cache_mgr.c (util_ald_cache_insert): Fix a
cache corruption case: ensure that there is room in the cache for a
copy of the payload before inserting the node.
Joe Orton [Thu, 28 Jul 2005 09:50:16 +0000 (09:50 +0000)]
* modules/ldap/util_ldap.c: Remove DOCTYPE_* macros duplicated from
httpd.h. Remove redundant prototypes of static functions which aren't
used before they are declared.
Joe Orton [Mon, 25 Jul 2005 12:44:40 +0000 (12:44 +0000)]
* modules/proxy/mod_proxy_http.c (stream_reqbody_cl): Fix format
string error.
(ap_proxy_http_request): Restore default case in rb_method switch to
fix gcc warnings.
Martin Kraemer [Fri, 22 Jul 2005 12:11:55 +0000 (12:11 +0000)]
Allow extraction of the values of SSL certificate extensions into
environment variables, so that their value can be used by any
module that is aware of environment variables, as in:
SetEnvIf OID("2.16.840.1.113730.1.13") "(.*) Generated (Certificate)" ca=$1
sets
ca=TinyCA
if the cert was issued by TinyCA.
Similarly,
SetenvIf OID("2.16.840.1.113730.1.13") "(.*)" NetscapeComment=$1
will set $NetscapeComment to the whole string.
It is technically allowed to have multiple instances of an extension
field, all with the same oid. In this case, the environment variable
will be set to the list of all fields, separated by commas.
The [PATCH] uses a cross-module call from mod_setenvif to
mod_ssl (the latter may also be missing: in this case the
variable will never be set). It calls a common function
in the ssl module that is also used for the SSLRequire
directive's test.