Jeff Trawick [Sat, 8 Dec 2001 13:05:56 +0000 (13:05 +0000)]
clean up some signed/unsigned discrepancies, hopefully with the absolute
minimum of casting; it wouldn't compile with AIX xlc otherwise (experience
says that Tru64 and HP-UX native compilers would be extremely unhappy too,
though I didn't try yet)
get rid of unused function deflate_insert_filter (trivial to put back
so no reason to #if 0)
Fix segfault when restarting worker MPM. We can not examine the POD as
a normal listener.
There was an additional bug than what Ian submitted to fix listen.c
(i.e. check sa for null): make_pipe_of_death does not zero out
lr->bind_addr (since it uses apr_palloc). So, on Solaris, the first
time through, bind_addr was probably 0, but the second time, not (pools!).
(This caused Aaron's analysis that the patch worked the first time,
but not the second time.)
Submitted by: Ian Holsman
Reviewed by: Justin Erenkrantz, Aaron Bannert
The right solution, once required, is to wrap the FRAMING requirement
into the mmap logic so we can always ask for a n byte mmap, only to be
given a n + (pg - (n % pg)) byte region without consumer hassles.
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.