Greg Stein [Thu, 23 Nov 2000 12:50:31 +0000 (12:50 +0000)]
shift some processing of "core" WebDAV properties out of the generic
property handling code, and into a new, core liveprop handler.
*) add std_liveprop.c to deal with the core DAV properties
*) move DAV:resourcetype, DAV:supported-method-set,
DAV:supported-live-property-set, and DAV:supported-report-set over to the
new handler
*) props.c::dav_get_allprops() should not look in the deadprop database for
the DAV:resourcetype -- it is readonly, so should never be in there.
*) strip vsn_hooks from the propdb; only the core liveprops need it now
*) mod_dav.c: register the core liveprop hooks and URIs
*) fs/repos.c: stripped DAV:displayname and DAV:source, in favor of letting
the core handler deal with them.
Greg Stein [Thu, 23 Nov 2000 10:37:00 +0000 (10:37 +0000)]
More revamping of live properties. Focused around the fact that a provider's
hooks are only called if that provider defines the prop (e.g. NOTME return
values are no longer needed). Also refactored some code to simplify liveprop
management for providers (assuming they don't have "funny" stuff).
*) enumerate all known DAV properties (DAV_PROPID_* in mod_dav.h)
- use these in fs/repos.c rather than DAV_PROPID_FS_*
- will use in SVN and a second-round whack on the "core" props in props.c
*) refactor dav_fs_liveprop_name to dav_liveprop_spec and add a writeable
flag
*) add dav_liveprop_group to hold a number of "top-level" items to pass to
the new liveprop utility functions
*) add dav_do_find_liveprop() as a util for the find_liveprop hook function
- toss repos.c::dav_fs_find_prop
- use the new function for repos.c::dav_fs_find_liveprop
*) rebuild dav_register_liveprop_namespace() as a full "group" registration
which will handle all the namespaces in a liveprop provider. The new func
is called dav_register_liveprop_group().
*) add dav_get_liveprop_info() to look up liveprop info given a provider's
propid. used in dav_fs_insert_prop() and dav_fs_is_writeable()
*) fold dav_fs_insert_all() directly into dav_fs_insert_all_liveprops()
since the former wasn't called by anything else
*) rename var in dav_fs_insert_prop() to "global_ns" to clarify its purpose.
torch a couple out-of-date comments in there.
*) toss dav_prop_rw type and simplify is_writeable hook. fix up calling of
hook in props.c::dav_rw_liveprop(). dav_rw_liveprop() should also call
the provider *first*, if one has stated it is handling the property.
*) toss DAV_PROP_INSERT_NOTME since we can't call a provider's insert_prop
with somebody else's liveprop
*) remove DAV_IS_CORE_PROP() in props.c. a core prop is not defined by its
propid, but by provider==NULL. add comments to clarify when that happens.
*) fix sub-request creation to include new next-filter arg
Ryan Bloom [Wed, 22 Nov 2000 20:35:56 +0000 (20:35 +0000)]
Add the ability for apxs to install both libtool generated and non-libtool
generated shared objects.
Submitted by: Jon Travis <jtravis@covalent.net>
Reviewed by: Ryan Bloom
Ryan Bloom [Wed, 22 Nov 2000 19:49:20 +0000 (19:49 +0000)]
A complete re-write of mod_include. This has served the entire manual
now. This makes mod_include a filter that uses buckets directly.
Submitted by: Paul J. Reder <rederpj@raleigh.ibm.com>
Reviewed by: Ryan Bloom
Ryan Bloom [Wed, 22 Nov 2000 19:38:07 +0000 (19:38 +0000)]
Allow modules to specify the first module for a sub-request. This allows
modules to not have to muck with the output_filter after it creates the
sub-request. Without this change, modules that create a sub-request have
to manually edit the output_filters, and therefore skip the sub-request
output_filter. If they skip the sub-request output_filter, then we end
up sending multiple EOS buckets to the core_output_filter.
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.