Revamp the CHECKOUT method handling and various support functions for it.
Basically, the original CHECKOUT was based on a really old draft of the
DeltaV specification. This brings it up to date.
*) get_resource hook now takes an optional label name and/or a flag on
whether to use the DAV:checked-in property; if either one is provided,
then a version resource is looked up and returned.
WARNING: the parameter types are now the same, but have very different
semantics. this means you won't get a compile error to figure
out that something needs to be changed here.
*) mod_dav.c::dav_get_resource no longer cahces the fetched resource in the
request userdata. Some requests will call this function multiple times,
for different resources -- we don't want to keep returning the same
resource (no idea how this ended up working).
*) dav_get_resource()'s parameters have been updated. target_allowed is old
terminology; it is now label_allowed. The target paramter is obsoleted by
the simple use_checked_in flag.
*) dav_get_target_selector() is obsolete. XML element processing is done
within the CHECKOUT method (i.e. only where it occurs). The other half of
the old function was to simply fetch the Label: header.
*) DAV_TARGET_SELECTOR_HDR is now DAV_LABEL_HDR
*) dav_method_checkout() now processes all the various options for a
CHECKOUT method and either modifies the initial resource lookup, or
passes the data to the checkout hook function.
*) the checkout hook grew a bunch of new parameters
*) new utility function: dav_xml_get_cdata() to gather up all the CDATA from
an XML element. this is used to extract DAV:href values.
(probably move to util_xml.c at some point)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88007
13f79535-47bb-0310-9956-
ffa450edef68