Ian Holsman [Mon, 21 Jan 2002 01:43:30 +0000 (01:43 +0000)]
These changes are to allow caching of subrequests via a quick_handler.
* Change SUBREQ_CORE so that it is a HTTP_HEADER (20) filter instead of a content filter (10)
this allows subrequests to add content filters properly
* Change subreq handling of 'handle-include' so that it splits/passes the brigade before the subreq
is created. (This allows quick_handler to push content back from this phase)
Joshua Slive [Sat, 19 Jan 2002 17:39:48 +0000 (17:39 +0000)]
This example doesn't really do what it claims. Instead, lets make it simpler
by discussing ONLY the .htaccess issue. The other issue is covered by the
next example.
Input filtering prototype change: Socket blocking type should be
separate from the input filter mode type.
We also no longer look at readbytes to determine the method of
filter operation. This makes the use of filters more obvious and
allows a wider range of options for input filters modes.
To start with, the new input filter modes are:
AP_MODE_READBYTES (no more than *readbytes returned)
AP_MODE_GETLINE (old *readbytes == 0 case)
AP_MODE_EATCRLF (old AP_MODE_PEEK)
AP_MODE_SPECULATIVE (will be used in a future ap_getline rewrite)
AP_MODE_EXHAUSTIVE (old *readbytes == -1 case)
AP_MODE_INIT (special case for NNTP over SSL)
The block parameter is an apr_read_type_e: APR_BLOCK_READ, APR_NONBLOCK_READ
This also allows cleanup of mod_ssl's handling in the getline case.
Reviewed by: Ryan Bloom (concept), Greg Stein (concept)
Provide the win32 worker process a null (but valid) stdout pipe, and
redirect child startup errors to the main server error log.
Corresponds to the change in Apache 1.3.23
Bill Stoddard [Thu, 17 Jan 2002 22:35:09 +0000 (22:35 +0000)]
On HPUX 11.x, the 'ENOBUFS, No buffer space available'
error occures because the accept() cannot complete.
You will not see ENOBUFS at 10.20 because the kernel
hides any occurrence from being returned from user space.
ENOBUFS at 11.0 TCP/IP is quite possible, and could
occur intermittently. As a work-around, we are going to
ingnore ENOBUFS.
Submitted by: madhusudan_mathihalli@hp.com
Reviewed by: Bill Stoddard
Allow the user to get detailed debugging information without a full
recompile [absolutely necessary on Win32 and other platforms that
really don't support administrator-compilation.]
-e level follows the LogLevel options.
The only question, should -e override the compiled-in default for
the creation of the server_rec? No strong feeling either way, here.
Martin Kraemer [Thu, 17 Jan 2002 11:18:03 +0000 (11:18 +0000)]
Fix minor typos. Mention that mod_ssl is part of Apache-2.0.
Change absolute self-references to relative jumps.
TODO:
* IMHO the topic ToC3 should be deleted completely.
* All references to "patch Apache" or "EAPI patch" should be removed
* A native english speaker might want to proof-read the doc and polish it
Doug MacEachern [Thu, 17 Jan 2002 05:04:54 +0000 (05:04 +0000)]
output filter optimizations:
- avoid creating a new bucket brigade for each EOS or FLUSH bucket
- do not pass FLUSH bucket since BIO_bucket_flush() already does so
if there is any data to flush.
- do not call apr_brigade_destroy(bb); since we will have either
emptied it or passed it, in which case it will be destroyed further
down the chain.
Bradley Nicholes [Mon, 14 Jan 2002 18:55:51 +0000 (18:55 +0000)]
Implemented a checkunload callback to allow apache to be unloaded using
the Unload console command. Also changed the nlm name and console
command to APACHE2.
Greg Stein [Mon, 14 Jan 2002 13:43:24 +0000 (13:43 +0000)]
Revamp how mod_dav asks its provider to generate a GET response.
* eliminate the get_pathname and free_file vtable functions. add the
deliver() function to have the provider deliver the content
straight into a filter [stack].
* eliminate readable streams -- they are now obsolete. this gets rid
of the read_stream vtable function and DAV_MODE_READ*
* implement a deliver() function for the FS provider. this simply
constructs a bucket and EOS and shoves them into the filter. note
that this is debug code only, so the "large file" issue handled by
the core's default handler doesn't count here.
* allow the provider to handle GET for any resource type and for
collections. this moves the checks into the provider.
Brian Pane [Sun, 13 Jan 2002 21:30:14 +0000 (21:30 +0000)]
A modification to reduce the memory usage of the server:
Reduced the initial size of the r->headers_in and r->subprocess_env
tables...this saves us 600 bytes per request, which (based on tests
I just ran) helps keep r->pool from overflowing its initial 8KB
allocation and having to alloc another 8KB block.
Brian Pane [Sun, 13 Jan 2002 06:34:10 +0000 (06:34 +0000)]
Removed the creation of a temporary pool in the expression parsing
code. Now that the code no longer allocs huge buffers (based on the
last commit), there's no need to incur the overhead of creating a
temporary pool just to clean up the storage quickly. This saves
a lot of space (because the temp pool used 8KB) and a small amount
of processing time.
As a side-effect of this change, we don't need the gotos any longer.
Brian Pane [Sun, 13 Jan 2002 02:35:56 +0000 (02:35 +0000)]
Clear the output socket descriptor in unixd_accept() to make sure
we don't supply a bogus socket to the caller if the accept fails.
(This was causing problems in the worker MPM, which tried to process
the returned socket if it was non-NULL, even if unixd_accept()
returned an error.)
Jeff Trawick [Sat, 12 Jan 2002 02:43:31 +0000 (02:43 +0000)]
Move a check for an empty brigade to the start of core input filter
to avoid segfaults.
Using prefork MPM and APR_POOL_DEBUG and ElectricFence, I found a
couple of paths where weren't able to report APR_EOF all the way
back up the call tree, leading us back into core_input_filter with
an empty brigade.
Some of the paths in core_input_filter handled it, some didn't.
Ken Coar [Fri, 11 Jan 2002 18:55:27 +0000 (18:55 +0000)]
Bring forward the FileETag directive enhancement from 1.3.23-dev.
(Passes all 61 of the apache/etags.t test.) Bump MMN due to
change to core_dir_config structure (new fields at end).
David Reid [Fri, 11 Jan 2002 09:14:34 +0000 (09:14 +0000)]
This brings apache back in line with apr following the addition
of apr_file_dup2.
Until Win32 and OS/2 have the function added this will break their
builds, but Will Rowe has said he'll do it this morning and asked for
the patch to apr to go in :) Go Will!
Brian Pane [Fri, 11 Jan 2002 08:01:11 +0000 (08:01 +0000)]
Fix for a segfault in the worker MPM during graceful shutdown:
The per-transaction pools in the worker MPM can't be children of
the listener thread's pool, because that pool may go out of scope
while some workers are still procesing requests using the transaction
pools.
A pedantic change to prevent us from discovering, in the future, that
these support/ modules suddenly rely upon some of our apr/aprutil
features, by finding the build broken one morning.
Some servername goodness (well, if you call 'localhost' good, I don't.)
Add to that some nits in the overall comments, and drop all the bitty
copy modules/somemod/*.h include/ fooness, since we need the various
modules to deposit their droppings into the build tree install/ dir
just to compile ourselves.
The mutex must be pool-managed, not ssl managed. We are encountering
segfaults on Win32 when the cleanup of the mutex occurs after the pool
was destroyed.