Jeff Trawick [Sat, 22 Dec 2001 04:17:56 +0000 (04:17 +0000)]
SH_LDFLAGS wasn't getting evaluated properly when it included
makefile variables
but, we stopped needing SH_LDFLAGS in apxs on AIX since we switched
to run-time linking and I never found out for sure that the use of
SH_LDFLAGS actually helped BeOS or OS/390, so I'm yanking out the
reference to SH_LDFLAGS
if/when we need such a thing in apxs, we'll have a new variable so
we can distinguish between special flags needed for Apache core
DSOs (which might have stuff specific to some Apache core DSO that
was discovered during Apache configurat) vs. special flags needed
by any DSO
Brian Pane [Fri, 21 Dec 2001 04:21:15 +0000 (04:21 +0000)]
Fixed a bug in ap_rgetline()
When an input line required more than one read, each subsequent
block of data was copied on top of the previous one. So if a
request line got split into multiple packets, the data would be
corrupted. The new code uses a power-of-two allocator to expand
the buffer and properly append the next block of data at the end
of the previous one.
Jeff Trawick [Wed, 19 Dec 2001 18:16:40 +0000 (18:16 +0000)]
Add some documentation on the ServerLimit and ThreadLimit
directives.
Both were added to mpm_common.html even though ThreadLimit
is used only by worker at the moment. It is expected that
ThreadLimit will be supported by WinNT and perchild MPMs
in the future.
Brian Pane [Tue, 18 Dec 2001 23:57:36 +0000 (23:57 +0000)]
Skip the setting of Last-Modified in the response header on
requests or subrequests for which no response header will be
generated (a performance improvement for mod_include)
Jeff Trawick [Tue, 18 Dec 2001 21:33:27 +0000 (21:33 +0000)]
leaving the pipe-of-death in the ap_listeners list led to segfaults
during sighup processing since the pipe-of-death listen_rec was
allocated from a short-lived pool
simply allocating the pipe-of-death listen_rec from the right pool
isn't a complete fix since at that point we no longer get the
proper cleanup and we're left with a file descriptor leak
the simplest overall fix seems to be to keep the pipe-of-death out
of the ap_listeners list for now
Jeff Trawick [Tue, 18 Dec 2001 04:59:13 +0000 (04:59 +0000)]
Stop using HARD_SERVER_LIMIT/HARD_THREAD_LIMIT all over the place
and instead use the mpm query function to retrieve those limits and
use those dynamically-retrieved values when walking the scoreboard.
Bill Stoddard [Mon, 17 Dec 2001 14:02:59 +0000 (14:02 +0000)]
Win32: The async AcceptEx() event should be autoreset upon
successful completion of a wait (WaitForSingleObject). This
eliminates a number of spurious
setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed." messages.
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)