Joshua Slive [Wed, 22 Nov 2000 05:46:40 +0000 (05:46 +0000)]
A little more general MPM documentation.
Feeback welcome.
Note the comment at the bottom:
<!-- XXX: Needed here: a brief discussion or reference to instructions
on how to choose and load an MPM, how to figure out what MPM you are
currently using, and what MPMs are the defaults on various
platforms. -->
Ryan Bloom [Tue, 21 Nov 2000 20:17:20 +0000 (20:17 +0000)]
Modify the content-length filter to change the criteria used to determine
if/when we compute the content-length. There are just a few cases now:
1) We already have all the data
2) We don't have all the data and:
2a) This is a 1.1 request but we can't chunk
2b) The is a keep-alive request
In the future, we probably want to modify this to not
be a keep-alive request.
This filter always buffers 9K of data. The reason is simple, the core will
buffer 9K at a time anyway, and there is a chance that we may get the end
of the request before we hit 9K. This increases our chances of being able
to send a c-l.
Jeff Trawick [Tue, 21 Nov 2000 19:47:14 +0000 (19:47 +0000)]
Update ab to accept URLs with IPv6 literal address strings (in the
format described in RFC 2732), and to build Host header fields in
the same format. This allows IPv6 literal address strings to be
used with ab. This support has been tested against Apache 1.3 with
the KAME patch, but Apache 2.0 does not yet work with this format
of the Host header field.
*) Accomodate an out-of-space condition in the piped logs and the
rotatelogs.c code, and no longer churn log processes for this
condition. [Victor J. Orlikowski]
Joshua Slive [Sun, 19 Nov 2000 19:56:42 +0000 (19:56 +0000)]
Add the perchild MPM docs and do a little bit of cleanup.
This finishes up the basic structure of the windows and unix
MPMs. I can do a little more cleanup, but this will need some heavy
input from others, because I don't feel like going through each
MPM to figure out what all these directive actually do.
Ryan Bloom [Sun, 19 Nov 2000 18:52:21 +0000 (18:52 +0000)]
Update the SetFilter directive to work with Handlers instead of MIME-types.
This also updates the docs to reflect the change.
Submitted by: Joshua Slive
Reviewed by: Ryan Bloom
Joshua Slive [Sun, 19 Nov 2000 04:24:18 +0000 (04:24 +0000)]
Using an mpm_common.html file for the common directives makes
things considerably easier. But, there is still lots of work to do.
Clearly, some of the directives are not implemented exactly the same.
Ryan Bloom [Sat, 18 Nov 2000 04:53:23 +0000 (04:53 +0000)]
Fix 204 handling. This moves some logic that used to be in
ap_send_error_response to the http_header filter. The reason for the move,
is that the header filter takes care of all header processing now. Without
this change, we were sending garbage data to the client whenever we sent
304 responses.
Submitted by: Brian Havard and Ryan Bloom
Ryan Bloom [Sat, 18 Nov 2000 03:17:21 +0000 (03:17 +0000)]
More proxy fixes. There are still some bugs in this code, but this has
successfully proxied www.yahoo.com and www.ntrnet.net among other test
sites that I chose at random.
Ryan Bloom [Fri, 17 Nov 2000 18:33:33 +0000 (18:33 +0000)]
First pass at a set of caching filters and handlers. This implements a
working disk cache. There are a lot of improvements to be made to this,
but this is a pretty good start to a dynamic cache.
Jeff Trawick [Fri, 17 Nov 2000 03:45:02 +0000 (03:45 +0000)]
APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
Add generic apr_create_socket(). Add apr_getaddrinfo() for doing
hostname resolution/address string parsing and building
apr_sockaddr_t.
Submitted by: David Reid
Reviewed by: Jeff Trawick
Ryan Bloom [Fri, 17 Nov 2000 00:19:30 +0000 (00:19 +0000)]
This removes all BUFF's from the HTTP proxy. This code is relatively
ugly, but it does proxy pages. This even fixes the content-type bug
that I introduced yesterday sometime. As soon as BUFF is removed from
the FTP proxy, the buff.c and buff.h files need to go away.
Ryan Bloom [Thu, 16 Nov 2000 01:57:46 +0000 (01:57 +0000)]
Make the proxy work with filters. We are still using BUFF for the
back-end communication, but BUFF has been removed from the communication
with the client. The headers are not working correctly yet, but we are
making progress. The most important part of this commit is that we are
able to actually filter data coming from the proxy.
Ryan Bloom [Wed, 15 Nov 2000 22:08:44 +0000 (22:08 +0000)]
Do not send a content-length if and only if this is a HEAD request and
the content-length is 0. The problem is that the C-L on a HEAD response
has to be the correct C-L, but if a handler returns saying the handled
the request without sending data, the core sends an EOS down the filter
stack, and we compute a 0 C-L.
Greg Stein [Wed, 15 Nov 2000 02:05:12 +0000 (02:05 +0000)]
Apply a patch from John Vasta for adding (some/more) DeltaV support to
mod_dav. The patch applied and compiled cleanly, so I'm committing. Any
necessary changes from a review will come later, so that we can easily track
what needed to change (and can be back-ported to mod_dav 1.1).
Joshua Slive [Wed, 15 Nov 2000 01:28:40 +0000 (01:28 +0000)]
Hmmm... It appears that there were some translation in the 2.0 "it works"
page that were not in the 1.3 version. Bring these up to date with the
new name for the http server web site.
Ryan Bloom [Tue, 14 Nov 2000 22:28:56 +0000 (22:28 +0000)]
Get the proxy to look at requests that are being proxied again. In the
big commit of the other day, a few !r->proxyreq's were changed to
r->proxyreq, which made the proxy decline requests when it shouldn't
have.
Submitted by: Cliff Woolley <cliffwoolley@yahoo.com>
Reviewed by: Ryan Bloom
Jeff Trawick [Tue, 14 Nov 2000 12:00:44 +0000 (12:00 +0000)]
Get "make install" to work on Tru64.
With Tru64, make picks up a bad status from the child shell process
when it evaluates the "`echo ($static) | grep 'mod_so'` (see below),
causing make to bail out.
But that grep should always fail when "make install" runs in
modules/extra and unless we have mod_so it will fail when "make
install" runs in modules/standard.
The work-around is to explicitly ignore the exit status from the
grep.
Ryan Bloom [Tue, 14 Nov 2000 06:11:24 +0000 (06:11 +0000)]
Stop the default_handler from trying to deal with HEAD requests. By doing
this, the content-length filter can determine the C-L before we send the
response, and we get a better response.
Ryan Bloom [Tue, 14 Nov 2000 06:07:40 +0000 (06:07 +0000)]
Make the header filter decide if a body should be sent. This gives us a
chance to compute the proper content-length before we try to send a set
of headers. If a handler wants to ignore the HEAD method, then it can
either just return from the handler function or pass an EOS bucket down
the filter stack. Either method will still get the headers sent to the
client.
This change allows handlers to actually run the request like it is a GET
request. The core itself will then ensure that no body is sent. This
allows us to get more information about the request before sending out the
headers for the HEAD request.
Ryan Bloom [Tue, 14 Nov 2000 04:52:33 +0000 (04:52 +0000)]
If the content-length is zero, then we don't output the Content-Length
header file. The only time that the C-L should be zero is if there is
no body. Zero is a valid content-length, but the only time that we ever
really send it is on a HEAD request right now, and that is incorrect.
The HEAD response should have the actual content's length.
Ryan Bloom [Tue, 14 Nov 2000 04:22:03 +0000 (04:22 +0000)]
Associate a pool with the pool bucket so that it serves it's intended
purpose. This also moves the create_pool function outside of an if to
decrease complexity.
Ryan Bloom [Tue, 14 Nov 2000 01:55:26 +0000 (01:55 +0000)]
Port mod_info to 2.0. This is basically a complete re-write to use the
config tree instead of re-reading the config file. As a part of this
change, the config tree needs to be exposed to modules as ap_conftree.
Submitted by: Ryan Morgan <rmorgan@covalent.net>
Reviewed by: Ryan Bloom
Ryan Bloom [Tue, 14 Nov 2000 01:46:39 +0000 (01:46 +0000)]
We can not use heap buckets for data that was allocated out of a pool.
The basic problem is that when the pool is destroyed, the data will go
away unless it is in a pool bucket. If it is in a pool bucket, then the
data will be copied into a heap bucket when the pool is destroyed. This
becomes a real issue when we set some data off to the side to deal with
pipelined requests.
Bill Stoddard [Mon, 13 Nov 2000 22:52:19 +0000 (22:52 +0000)]
Update coalesce filter to use heap buckets rather than pool buckets. This should fix the
mod_autoindex funky chunking behaviour until the ap_r* routines are reimplemented, at which
time this filter should probably go away.