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
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)