Brian Pane [Sun, 16 Dec 2001 09:54:14 +0000 (09:54 +0000)]
Replaced an instance of apr_pool_userdata_setn() with apr_pool_userdata_set()..
the value of "userdata_key" is an address on the stack when compiled with
gcc 2.95.3 on Solaris/Sparc, so storing the address directly in the hash
table is unsafe.
Jeff Trawick [Sat, 15 Dec 2001 13:56:36 +0000 (13:56 +0000)]
Move any load library path environment variables out of
apachectl and into a separate environment variable file which
can be more easily tailored by the admin. The environment
variable file as built by Apache may have additional system-
specific settings. For example, on OS/390 we tailor the heap
settings to allow lots of threads.
Move the insert_filter hook from the prepare request phase to the
invoke handler phase, since it can't fail, and contributes nothing
to the request 'character', but everything to it's invocation.
Jeff Trawick [Fri, 14 Dec 2001 02:48:23 +0000 (02:48 +0000)]
include directories should be added to INCLUDES, not CPPFLAGS
(like it was origintally)... since AC_TRY_LINK() references
CPPFLAGS but not INCLUDES, we'll add the zlib include directory
to CPPFLAGS *temporarily*
As suggested by Josh Slive, add the explicit 'default' to AcceptPathInfo.
I'll leave docs up to him. The conf becomes a quadstate (undef != default)
but other than that, it should make things cleaner for the user.
A little loopy commit. Refer mod_cgid users to the mod_cgi docs for
extra info, document the AcceptPathInfo impact in the PATH_INFO comments
of mod_cgi, and document it's configuration in core.
Apply the converse of the AcceptPathInfo patch for isapi's/cgi's.
The default behavior remains, accept PATH_INFO, but it may be expressly
revoked with AcceptPathInfo Off
While contemplating a cast to (char) for the c arg to trie_node_link,
I decided it's more plesant to let the cpu not to think so hard (no
wasted space, the c member will by word aligned anyways.)
If dconf->accept_path_info is tristate, why not r->used_path_info?
This patch allows us to force path_info off in mod_cgi[d] etc, patch
forthcoming. It also allows includes, php, etc to change the undefined
value in the early handler or late fixup phases to Accept'ed.
Now all should be well. AcceptPathInfo on will give us a document with
path_info served from the core handler. Any filters can then manipulate
all the usual CGI envvars [as proven with this little excerpt with a
<!--#printenv --> document...
<FilesMatch ".*\.shtml.*">
Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo on
</FilesMatch>
Give the request_rec some information about path_info allowance.
If some unnamed filter will consume the path_info, it may set up
used_path_info to a non-zero value, and core.c will consume the
request with path_info.
Aaron Bannert [Wed, 12 Dec 2001 23:56:46 +0000 (23:56 +0000)]
Fix a bug in how we select the IP for the POD to connect to for dummy
connects (dislodging a doomed child from the accept mutex). No longer
do we assume that the child is listening to 127.0.0.1, but instead
we just pick the first hostname/port from the listen rec.
Jeff Trawick [Wed, 12 Dec 2001 19:39:55 +0000 (19:39 +0000)]
change Apache/apr/apr-util to use run-time linking on AIX
currently, a kludge (-uXML_Parse) is needed to get a reference to expat
in the Apache executable programs; I think this is related to the fact
that expat libtool is getting generated a little differently than apr
libtool and is choosing to build a different flavor of shared library
Greg Ames [Tue, 11 Dec 2001 19:28:38 +0000 (19:28 +0000)]
revert back to using a "links" downloaded version of our FAQ with an
up-to-date URL. The FAQ included in httpd-2_0_28 isn't very pretty
because it wasn't parsed by mod_include as part of the roll script.
Add a comment explaining why this is necessary.
with this change, there's no reason to run expand.pl twice.
Chris Pepper [Tue, 11 Dec 2001 01:49:46 +0000 (01:49 +0000)]
Fixed a few typos.
Fixed some HTML tags (case, href/name/id)
Added a mention of multiple 'arguments' to allow/deny, and an example. This should probably be more explicit, but I'm not sure of the details (should we show with leading/trailing periods, and explain that IPs are assumed to be the left side, but hostnames are assumed to be the right side?).
PR:
Obtained from:
Submitted by:
Reviewed by:
Greg Ames [Mon, 10 Dec 2001 20:10:05 +0000 (20:10 +0000)]
fix a problem with graceful restart. If you look at daedalus early in the
morning, you will usually see lots ( >50 ) of old generation processes
happily serving requests with yesterday's config. Late in the afternoon, they
are usually gone due to MaxRequestsPerChild and perform_idle_server_maintenance.
ap_mpm_pod_signal can time out during connect(), causing it to exit with an
error. If it was called by ap_mpm_pod_killpg during graceful restart,
ap_mpm_pod_killpg will exit immediately. This can cause us to not write
enough characters to the pod to kill off all the old generation children.
This fix decouples the loop which writes to the pod from the loop which
generates dummy connect()s. The connect()s aren't as important as
writing to the pod when there is a steady stream of inbound connections.
also, close the socket and destroy the temporary pool if the connect()
fails.
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