Add an allocator-passing mechanism throughout the bucket brigades API.
From Apache's standpoint, the apr_bucket_alloc_t* used throughout a given
connection is stored in the conn_rec by the create_connection hook. That
means it's the MPM's job to optimize recycling of apr_bucket_alloc_t's --
the MPM must ensure that no two threads can ever use the same one at the
same time, for instance.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94304 13f79535-47bb-0310-9956-ffa450edef68
1. rename ap_rset_content_type to ap_set_content_type
2. reverse the arguments on the call to aligh with ap_set_content_length
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94056 13f79535-47bb-0310-9956-ffa450edef68
now that it has an RFC. At the same time, I revamped a good chunk of
the name <-> number mapping code in http_protocol.c
* add M_FOO constants for the new RFC 3253 (DeltaV) methods. label
where each of the builtin methods comes from.
* moved METHOD_NUMBER_FIRST/LAST from http_protocol.h into
http_protocol.c since they weren't used anywhere else and they
weren't namespace-protected.
* create register_one_method() and use it to insert all builtin
methods (at _init() time) and extended methods into the registry.
* add a lookup_builtin_method() to quickly map a method name to a
builtin method number.
* rebuild ap_method_number_of() to use the new lookup function.
* revamp ap_method_name_of() to use the registry to locate the name
for any method number. add a pool argument (no callers in the core
code needed to be updated)
* revamp make_allow() to deal with the new method numbers and all
extended methods.
* in mod_dav, use the new method numbers rather than registering the
DeltaV methods.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94015 13f79535-47bb-0310-9956-ffa450edef68
of Jeff Trawick's style changes to the first patches. Doesn't include
the fixes to ssl [more complex], and we won't trap errors that involve
ap_serverroot, since we presume that was normalized on the way in.
Therefore, testing ap_server_root_relative(DEFAULT_FOO) cases
should never become necessary.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93965 13f79535-47bb-0310-9956-ffa450edef68
Mostly detab, but also changed some comments from:
/*
**
*/
to:
/*
*
*/
The latter is the dominant style in apache. The only
other places they can be found (AFAIK) are mod_ssl and
mod_rewrite.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93773 13f79535-47bb-0310-9956-ffa450edef68
<D:error> responses. It's crucial for marshalling svn error messages
back over to the client; and someday it will be needed to return
specific <DAV:> errors as dictated by the DeltaV spec.
* mod_dav.h (dav_error): add two new fields -- an optional error
namespace, and an error-tag-name. Remove the 'delayed computation'
function and cxt ptrs in this struct; they were never used.
(dav_new_error_tag): new alternative constructor that takes new
fields.
* util.c (dav_new_error_tag): implement constructor.
* mod_dav.c (dav_error_response_tag): new function to output
'standard' xml error response based on error struct.
(dav_handle_err): if no multistatus response is passed in, and if an
error-tag is defined, then call our new xml-output routine.
Submitted by: Ben Collins-Sussman <sussman@collab.net>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93651 13f79535-47bb-0310-9956-ffa450edef68
mod_dav providers in the 1.0.x series. Nowadays, the providers are
full-fledged Apache modules and can define their own directives and
set up per-server and per-directory parameters. (for example,
mod_dav_fs and the DAVLockDB directive)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93348 13f79535-47bb-0310-9956-ffa450edef68
compiled and linked.
* there is no UNIX symbol, so go back to #ifndef WIN32. that other
platforms can pile on as needed until we have a proper mechanism.
* reinstate the liveprop callbacks and the dav_hooks_liveprop_fs
structure. since the latter structure is referred to elsewhere in
the file, it better be defined.
* use a "feature" name of DAV_FS_HAS_EXECUTABLE rather than
conditionally specifying the property. convert the tests over to
that symbol.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93012 13f79535-47bb-0310-9956-ffa450edef68
platforms fixes done by wrowe).
* dav_fs_get_parent_resource(): return NULL if we're at the root of
the URL (Location) space.
* dav_fs_dir_file_name(): make it return an error, in case we're
passed a bad path. adjusted callers [who just ignore it for now]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93009 13f79535-47bb-0310-9956-ffa450edef68
Divorce dav_fs from the DAV_PROPID_FS_executable property at the
very head of this module, and drop all references as soon as we
determine that 'our property' isn't supported.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93005 13f79535-47bb-0310-9956-ffa450edef68
* 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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92848 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92804 13f79535-47bb-0310-9956-ffa450edef68
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.
Submitted by: Sander Striker <striker@apache.org>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92764 13f79535-47bb-0310-9956-ffa450edef68
causing the server not to start.
previous method was to call exit(1) which would not fail
gracefully
PR:
Obtained from:
Submitted by:
Reviewed by: (Idea only Jeff Trawick)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92144 13f79535-47bb-0310-9956-ffa450edef68
when the copy/move takes place.
Specifically, the new location might imply a different type from the
original, so updating the type is bad mojo. In the observed case, a
resource was copied into a working collection; the type of the new
resource is supposed to be WORKING. Copying the type would be wrong if
the source was REGULAR.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91732 13f79535-47bb-0310-9956-ffa450edef68
providers. The old API was really based on how the FS stored properties, but
sucked for other types of providers (SQL databases, Subversion, etc). This
new code is overall much cleaner as it moves from a DBM style API to one
tuned for actual mod_dav operation; it also more flexible/clearer for future
improvements (e.g. dropping props directly to the wire rather than buffering
in memory).
This new API allows the provider to better define namespace handling during
the output of the values, how values are serialized and stored, the mapping
between elements' namespaces and the internalized namespace storage, a
clearer mechanism for naming properties (dav_prop_name), and an explicit
rollback mechanism to deal with PROPPATCH atomicity.
Updated the FS provider (fs/dbm.c) to the new API, mostly by moving code
from main/props.c. Of course, with the new semantics, some big changes in
the namespace mapping were made.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91065 13f79535-47bb-0310-9956-ffa450edef68
apr_datum_t (the two are equivalent).
Expose some of the DAVFS' internal DBM cover functions and have the locking
code use them directly, rather than thru the vtable. That vtable will be
changing shortly, so this shift is needed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91064 13f79535-47bb-0310-9956-ffa450edef68
Program Database (from Program Database for Modify on the fly debugging).
The net effect of this patch is to clean up all of the irrelevant entries
associated with either the debugging or release command line switches, and
generally straighten the projects as they would be exported from VC6/SP5.
The outcome of this patch is that VC5 users -should- be able to load and
build the workspace without any errors (as they used to have no symbols
database at all, the /ZI option doesn't work, they had to use cvtdsp.pl
to toggle these to /Zi.)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90269 13f79535-47bb-0310-9956-ffa450edef68