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.
Remove the link to mbox.apachelabs.org. (Amazingly, that link worked.)
But, we cite everything via the Message-ID to be archive-neutral.
(FWIW, www.apachelabs.org has a feature to search on Message-ID.)
Once again, try to bring the world into sync. Someday soon, we need to
generate this and Netware's from -std using awk. It really would make
more sense to strip out the appropriate directives as we build, instead
of 'toggling' the mpm with <IfModule > (at least, as an option during
build.) But that requires an un-nested syntax such as
<IfModule module module> or <IfNotModule module module> that would be
simpler to parse in awk. Our nested IfModules make this quite tricky.
The better final solution is possibly to add things like HAS_SCOREBOARD
to the 'build-in' defines, therefore assuring a simple test for any
mpm architecture.
*) Split all Win32 modules [excluding the core components mod_core,
mod_so, mod_win32 and the winnt mpm] into individual loadable
modules, so the administrator may individually disable the former
compiled-in modules by simply commenting out their LoadModule
directives. [William Rowe]
*) Saved Win32 module authors and porters many future headaches, by
duplicating the appropriate .h files such as os.h into the include
directory, including in the build tree. [William Rowe]
Also noticed that version stamp resources weren't generated for proxy
modules, this too is now fixed.
Doug MacEachern [Thu, 10 Jan 2002 04:55:19 +0000 (04:55 +0000)]
mod_ssl adjustments to help with using toolkits other than OpenSSL:
Use SSL functions/macros instead of directly dereferencing SSL
structures wherever possible.
Add type-casts for the cases where functions return a generic pointer.
Add $SSL/include to configure search path.
PR:
Obtained from:
Submitted by: Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>
Reviewed by: dougm
Best to use -no- file extension here, since that always pops up the
'open with' dialog in MS Explorer, preventing the user from really
mucking anything up.
Change the name of the _tryssl to an underbar prefix so we know it is
an 'internal' thing, and try building explicit targets to avoid ever
dragging in .bsc construction.
Also introduce _browse. This is far from complete, but I'm working on
a mechansim to toggle browse database construction - of a single .bsc
file for DevStudio's browser database. The ugly bit is; it gobbles some
80MB for construction, so we will never waste that sort of space on
the typical case, but reserve it for developers who choose to toggle it.
Changed the project file to use the NDK (NovellNDK) environment variable
to locate the LibC SDK headers and libraries. Also added the Mod_Rewrite
and Mod_Auth_DBM targets to the main build project.