Any release that goes out that doesn't have this fixed is getting vetoed
by me as anything other than alpha.
I'm sick of this - it's been a pain for a long time and just hit me
hard when one of the other admins on my 2.0 site tried to send SIGHUP
and the thing died - it confused the hell out of him. =)
Jeff Trawick [Fri, 7 Dec 2001 17:48:36 +0000 (17:48 +0000)]
Do special install processing for Apache DSO modules on HP-UX, Tru64,
and AIX so that we get mod_foo.so installed instead of the stuff that
libtool installed.
Brian Pane [Fri, 7 Dec 2001 03:09:54 +0000 (03:09 +0000)]
When checking for "file" or "virtual" as an argument to
"<!--#", check for "virtual" first. That's the more likely
case (assuming that people follow the recommendation in
the mod_include documentation that "virtual" be used in
preference to "file"), so by checking for "virtual" first
we can short-circuit out of the conditional after one
strcmp instead of two.
Brian Pane [Thu, 6 Dec 2001 02:57:19 +0000 (02:57 +0000)]
Small performance fix: delay variable initialization in
ap_meets_conditions() until after the point where we
short-circuit out of the function on subrequests
Joshua Slive [Wed, 5 Dec 2001 18:28:37 +0000 (18:28 +0000)]
Config file updates. Mostly just playing with comments, but a few functional
changes:
1. Remove the directives in the document root <directory> section that
are there to handle the index.html.var and put them in their normal place
in the config file. I see no reason to duplicate the directives and
explanations.
2. Change from the funky FilesMatch/SetOutputFilter to AddOutputFilter for
the SSI configuration.
Jeff Trawick [Wed, 5 Dec 2001 17:32:52 +0000 (17:32 +0000)]
separate logic specific to building Apache DSOs from logic needed
when anybody's DSOs should be built (e.g., via apxs) so that on a
few platforms with special issues third-party modules can be loaded
as long as mod_so is built into httpd
Jeff Trawick [Wed, 5 Dec 2001 03:02:45 +0000 (03:02 +0000)]
Allow apxs to be used to build DSOs on AIX without requiring the
user to hard-code the list of import files. (This should help
on OS/390 and BeOS as well.)
Trivial change: just stick the value of SH_LDFLAGS on the
libtool --mode=link line.
Greg Ames [Mon, 3 Dec 2001 18:00:04 +0000 (18:00 +0000)]
get binbuild working when apr, apr-util, and expat are built shared in
directories that are not well known to the loader.
How it works:
* libtool figures out the name of this system's library path environment
variable (i.e. LD_LIBRARY_PATH, LIBPATH, DYLD_LIBRARY_PATH) at apr
configure time (existing code)
* save this variable name in SHLIBPATH_VAR in APRVARS
* substitute this name when apachectl is created
* uncomment the lines containing this variable during binbuild
* install_bindist.sh updates the path to lib/ when the binary is
installed (existing code)
not done yet, but a good idea:
* create a file or directory containing all environment variable settings
for apachectl. Others env vars need to be tweaked, at least on AIX and
OS/390, so keeping them separate should reduce headaches long term.
Brian Pane [Sun, 2 Dec 2001 23:15:54 +0000 (23:15 +0000)]
[No code changes here, just adding the cvs comment that I messed up in
the previous commit]
Added a version of ap_getline() that allocs a buffer from
the request's pool, rather than copying into a caller-supplied
buffer. (This lets us eliminate one copy operation on the
request headers.)
Brian Pane [Sun, 2 Dec 2001 23:13:32 +0000 (23:13 +0000)]
Added a version of ap_getline() that allocs a buffer from
the request's pool, rather than copying into a caller-supplied
buffer. (This lets us eliminate one copy operation on the
request headers.)
Brian Pane [Sun, 2 Dec 2001 19:16:01 +0000 (19:16 +0000)]
Added code to ap_ssi_get_tag_and_value() to avoid converting
SSI tags to lowercase when they're already lowercase (in my
experience, this special case happens often enough to be
worth optimizing)
Brian Pane [Sun, 2 Dec 2001 18:44:06 +0000 (18:44 +0000)]
Added faster logic for decodehtml to handle the special case
where the string being decoded doesn't have any ampersands
in it (e.g., because it's the value for an 'include virtual=...')
Brian Pane [Sun, 2 Dec 2001 10:33:01 +0000 (10:33 +0000)]
Exclude the terminating null byte from the length of
strings passed to apr_hash_get/apr_hash_set (this matches
the convention used throughout the rest of the httpd,
and it saves a small amount of processing)
Jeff Trawick [Sat, 1 Dec 2001 17:42:18 +0000 (17:42 +0000)]
Get shared builds of libapr and libaprutil, as well as Apache DSOs,
working on AIX.
Submitted by: a cast of many, reverse engineering libtool to
figure out how to work around its oddities/limitations/
bugs on AIX
(Jeff Trawick coded these changes but it took a lot of
help)
Brian Pane [Sat, 1 Dec 2001 05:38:23 +0000 (05:38 +0000)]
Fix the handling of SSI directives in which the ">" of the
terminating "-->" is the last byte in a file (previously,
the output of the directive was lost in this case).
Doug MacEachern [Sat, 1 Dec 2001 02:11:04 +0000 (02:11 +0000)]
remove churn_output() function and calls to it.
when SSL needs to flush (e.g. during SSL_accept()) it will call BIO_flush()
which will trigger a call to bio_bucket_ctrl() -> BIO_bucket_flush().
so we only need to flush the output ourselves if we receive an EOS or
FLUSH bucket.
BIO_bucket_flush() and churn_output() had been turning up near the top
of the profile with gprof. churn_output() of course has now vanished
and BIO_bucket_flush() has dropped, being called far less than before.
Jeff Trawick [Sat, 1 Dec 2001 02:09:00 +0000 (02:09 +0000)]
use our standard declaration macro for the AP_DEBUG flavors of
ap_strchr(), ap_strchr_c(), et al so that for an AP_DEBUG build
of Apache those functions will be listed in httpd.exp... otherwise,
AIX DSO modules also compiled with AP_DEBUG won't be able to resolve
those symbols since httpd isn't exporting them
Jeff Trawick [Sat, 1 Dec 2001 01:22:01 +0000 (01:22 +0000)]
fix a potential thread safety issue in mod_mime_magic
(but to be honest I have no idea whether or not this path is
ever used... it seems quite bizarre)
Aaron Bannert [Thu, 29 Nov 2001 23:34:09 +0000 (23:34 +0000)]
Add back in the "suEXEC mechanism enabled (wrapper: /path/to/suexec)"
message that we had back in apache-1.3 and is still scattered throughout
our docs.
Unfortunately, when mod_suexec is a DSO we're going to get this thing
twice in our logs. I believe as a side effect of the load-unload-load
cycles of our DSOs we're losing the static data segment, which is where
the "didn't we already report this" flag lives.
Ian Holsman [Thu, 29 Nov 2001 21:09:31 +0000 (21:09 +0000)]
r->headers_in is shared by original requests and components (make no sense
copy them for components), but each component has its own r->pool.
So once the first component set "Max-Forwards", it is in headers_in
but the value could get lost with the first component's r->pool.
Hence I sometimes see "Max-Forwards" has value like letter "l".
Change it to use apr_table_set() fixed the problem.
Revert my last patch to detect a 'leftover' arg. Apparently there is
no way to distinguish between an extra arg, and a -x foo arg, or else
our getopt is broken at the moment.
I can't dig further into getopt right now, so this will wait for another
day or another hacker to resolve.
We never tested for invalid 'additional' arguments that were ignored.
Was there any point to allowing additional, unused args after the
various supported switches?
This prevents the Apache server from starting with an httpd somefooness
invocation.
Doug MacEachern [Thu, 29 Nov 2001 07:07:36 +0000 (07:07 +0000)]
the client cert X509_NAME_oneline() is only used if SSLFakeBasicAuth
is happening. so avoid calling that unless needed and just stash a
pointer to the client cert for the boolean checks that the client
provided a cert.
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 06:52:18 +0000 (06:52 +0000)]
avoid a call to X509_NAME_oneline() and ASN1_INTEGER_get() in
ssl_callback_SSLVerify_CRL() unless SSLLogLevel >= info, otherwise the
expense is unused.
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 06:34:53 +0000 (06:34 +0000)]
get rid of ssl_log_applies() function. it does more than we need and
what should be done with a macro. it was only used once anyhow.
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 06:27:41 +0000 (06:27 +0000)]
ssl_callback_SSLVerify() was calling (the expensive) X509_NAME_oneline()
function and free() of the return value twice each, for logging
regardless of SSLLogLevel. changed to happen only if SSLLogLevel >= trace
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 06:15:01 +0000 (06:15 +0000)]
fix for last change that removed ssl_util_getmodconfig():
go back to using s->process->pool userdata, but just to store the
global module config during startup so we only create _one_ SSLModConfigRec.
(didn't realize this function was called in both ssl_init_Module and
ssl_config_server_create)
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 05:45:48 +0000 (05:45 +0000)]
ssl_util_getmodconfig() and ssl_util_getmodconfig_ssl() show up high
in the gprof profile. there's no need for the "global" SSLModConfigRec
to live in the s->process->pool userdata table. we now just point the
SSLSrvConfigRec in each server_rec.module_config to the SSLModConfigRec
so we can access it directly which is much faster.
PR:
Obtained from:
Submitted by:
Reviewed by:
Doug MacEachern [Thu, 29 Nov 2001 05:17:38 +0000 (05:17 +0000)]
SSL_rand() does a mutex lock/unlock with threaded MPMs, so collapse
two calls that seed pid and time into one.
PR:
Obtained from:
Submitted by:
Reviewed by:
Greg Ames [Wed, 28 Nov 2001 19:41:07 +0000 (19:41 +0000)]
get binbuild.sh working enough to create a binary which serves the It Works!
page
* change seds for apachectl and httpd*.conf to do the right thing
* use /usr/local/apache2 for the default install directory
* use a shell variable for the above, in case it needs to change again
* use httpd-std.conf in place of httpd.conf.default
* get rid of the httpd -R option in apachectl (not valid in 2.0)
* don't overlay httpd.conf if it already exists (1.3 does this - wtf?!?!)
not done in this commit:
* install manual/ and error/ correctly
* switch to --enable-mods-shared=most now that it works (thanks, aaron!)
* investigate weird behavior when .tar.gz already exists in parent dir
* investigate setting a Group directive that actually works in httpd*.conf