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.
David Reid [Tue, 8 Jan 2002 17:07:19 +0000 (17:07 +0000)]
Restore the apr_pool_clear calls to main.c in case we have
third-parties who are overriding the open_logs hook, in which case
they'd miss the plog being cleared.
David Reid [Tue, 8 Jan 2002 16:30:16 +0000 (16:30 +0000)]
This small patch modifies the log's to use plog instead of pconf.
Basically pconf is cleared at different times from plog, and this
has the effect of leaving stderr closed when going into the next
stage of the config. This also had the effect of allowing FreeBSD
with threads to create a pipe with stderr's fd at one end, and this
resulted in problems with the signal polling and high cpu usage.
In addition, move the clearing of plog from main.c to core.c where
it seems more appropriate.
This solves the first and main problem that FreeBSD has with the
threaded MPM's.
Ryan Bloom [Tue, 8 Jan 2002 06:26:10 +0000 (06:26 +0000)]
Add the ability to pass flags to both apr_file_open and apr_mktemp.
The reason for this, is that it is very possible to want a temp
file that isn't deleted when the file is closed. It also makes sense
to have the flags in the apr_file_t if possible.
Greg Stein [Mon, 7 Jan 2002 22:36:15 +0000 (22:36 +0000)]
Fix how mod_dav examines methods in the request -- use the method number
from the request. To do this, we also need to register all of the new/custom
methods that mod_dav recognizes.
Note: this fixes a bug where a method (e.g. REPORT) would appear in a
Limit(Except) directive and Apache would register the method. The method
number in the request would then be something *other* than M_INVALID, which
threw off mod_dav's tests.
Doug MacEachern [Sun, 6 Jan 2002 17:39:52 +0000 (17:39 +0000)]
need to use $(top_srcdir) when installing build/instdso.sh
else make install does not work when when configured with a --srcdir
PR:
Obtained from:
Submitted by:
Reviewed by:
Brian Pane [Sun, 6 Jan 2002 06:41:30 +0000 (06:41 +0000)]
Eliminated various large (8KB) string buffers from the stack in
mod_include by adding support for a power-of-two pool-based allocator
in ap_ssi_parse_string(). (The default operation of this function
is backward-compatible, to support the other modules that call it.)
This change should help reduce memory usage for servers delivering
shtml pages.
Jeff Trawick [Fri, 4 Jan 2002 18:32:48 +0000 (18:32 +0000)]
for proxy CONNECT handling:
don't hard-code the address family of the target; respect
what the resolver told us
get a new socket each time we try to connect to one of the
target addresses as reported by the resolver; you can't
portably attempt to connect more than once on the same
socket
this is the same fix committed to proxy http support yesterday
Ian Holsman [Fri, 4 Jan 2002 17:58:36 +0000 (17:58 +0000)]
cache now can cache things for minutes.
add remove_entity function to type on mem_cache (so we can remove items from the cache)
PR:
Obtained from:
Submitted by:
Reviewed by:
Jeff Trawick [Fri, 4 Jan 2002 01:47:55 +0000 (01:47 +0000)]
Fix a couple of mod_proxy problems forwarding HTTP connections:
(1) PR #9190 It failed to connect to IPv6 hosts.
(2) It failed to connect when the first IP address returned by
the resolver was unreachable but a secondary IP address was.
Bill Stoddard [Thu, 3 Jan 2002 19:20:54 +0000 (19:20 +0000)]
Fix seg fault in HTTP_IN when trying to handle the LimitRequestBody
directive when reading a proxy response. We should bypass LimitRequestBody
activities when handling a response from the proxied server.
I don't think this will circumvent requestbody checking on a large request
coming into the server that is destined to be proxied. (not tested though).