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.
Using the user nobody (or similar accounts on other systems like
nouser) violates the purpose of that user. User nobody exists
specifically as a user that no process runs as and that owns no files
on disk. Same for nogroup.
The user and group daemon are the generic system services user and
group. Use those instead.
Martin Kraemer [Wed, 20 Jul 2005 16:42:58 +0000 (16:42 +0000)]
Collaborative work: (Thanks, dreid!)
Implement OID checking for mod_ssl. This code allows for checking of arbitrary client
certificate extensions by OID, in a syntax like:
SSLRequire "BaDCA Generated Certificate" in Oid("2.16.840.1.113730.1.13") \
|| "committers" in Oid("1.3.6.1.4.1.18060.1")
Note the following:
* A given OID can occur multiple times in one cert, with different values. Therefore
the OID function compares the left-hand string against each of the OID values,
until a complete match is found. If none patches, the result is FALSE
* The left hand side can be another expression, so can be a reference to a variable
or an file() invocation etc.
* The OID is also just a reference to a string, or function, or whatever.
* My manual description is very short. Someone else please help improve the description
The arguments to require are case-sensitive, so that "Require User" and
"Require Valid-User" don't work. This makes those comparisons
case-insensitive.
Paul Querna [Wed, 20 Jul 2005 11:20:33 +0000 (11:20 +0000)]
Check an alternative return value for when a file or directory does not exist. Previously this would return a forbidden on the documentation website for any URL ending in .html.