46#define DAV_VERSION AP_SERVER_BASEREVISION
48#define DAV_XML_HEADER "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
49#define DAV_XML_CONTENT_TYPE "text/xml; charset=\"utf-8\""
51#define DAV_READ_BLOCKSIZE 2048
53#define DAV_RESPONSE_BODY_1 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n<title>"
54#define DAV_RESPONSE_BODY_2 "</title>\n</head><body>\n<h1>"
55#define DAV_RESPONSE_BODY_3 "</h1>\n<p>"
56#define DAV_RESPONSE_BODY_4 "</p>\n"
57#define DAV_RESPONSE_BODY_5 "</body></html>\n"
66#define DBG0(f) ap_log_error(APLOG_MARK, \
67 APLOG_ERR, 0, NULL, (f))
68#define DBG1(f,a1) ap_log_error(APLOG_MARK, \
69 APLOG_ERR, 0, NULL, f, a1)
70#define DBG2(f,a1,a2) ap_log_error(APLOG_MARK, \
71 APLOG_ERR, 0, NULL, f, a1, a2)
72#define DBG3(f,a1,a2,a3) ap_log_error(APLOG_MARK, \
73 APLOG_ERR, 0, NULL, f, a1, a2, a3)
79#define DAV_INFINITY INT_MAX
85#define DAV_DECLARE(type) type
86#define DAV_DECLARE_NONSTD(type) type
87#define DAV_DECLARE_DATA
88#elif defined(DAV_DECLARE_STATIC)
89#define DAV_DECLARE(type) type __stdcall
90#define DAV_DECLARE_NONSTD(type) type
91#define DAV_DECLARE_DATA
92#elif defined(DAV_DECLARE_EXPORT)
93#define DAV_DECLARE(type) __declspec(dllexport) type __stdcall
94#define DAV_DECLARE_NONSTD(type) __declspec(dllexport) type
95#define DAV_DECLARE_DATA __declspec(dllexport)
97#define DAV_DECLARE(type) __declspec(dllimport) type __stdcall
98#define DAV_DECLARE_NONSTD(type) __declspec(dllimport) type
99#define DAV_DECLARE_DATA __declspec(dllimport)
128 const char *
namespace;
153 const char *
namespace,
209#define DAV_ERR_IF_PARSE 100
210#define DAV_ERR_IF_MULTIPLE_NOT 101
211#define DAV_ERR_IF_UNK_CHAR 102
212#define DAV_ERR_IF_ABSENT 103
213#define DAV_ERR_IF_TAGGED 104
214#define DAV_ERR_IF_UNCLOSED_PAREN 105
217#define DAV_ERR_PROP_BAD_MAJOR 200
218#define DAV_ERR_PROP_READONLY 201
219#define DAV_ERR_PROP_NO_DATABASE 202
220#define DAV_ERR_PROP_NOT_FOUND 203
221#define DAV_ERR_PROP_BAD_LOCKDB 204
222#define DAV_ERR_PROP_OPENING 205
223#define DAV_ERR_PROP_EXEC 206
229#define DAV_ERR_LOCK_OPENDB 400
230#define DAV_ERR_LOCK_NO_DB 401
231#define DAV_ERR_LOCK_CORRUPT_DB 402
232#define DAV_ERR_LOCK_UNK_STATE_TOKEN 403
233#define DAV_ERR_LOCK_PARSE_TOKEN 404
234#define DAV_ERR_LOCK_SAVE_LOCK 405
450#define DAV_BUFFER_MINSIZE 256
451#define DAV_BUFFER_PAD 64
536#define DAV_STYLE_ISO8601 1
537#define DAV_STYLE_RFC822 2
538#define DAV_TIMEBUF_SIZE 30
579 const char *tagname);
581 int ns,
const char *tagname);
583 const char *tagname);
585 int ns,
const char *tagname);
587 int ns,
const char *tagname);
807#define DAV_GET_HOOKS_PROPDB(r) dav_get_propdb_hooks(r)
808#define DAV_GET_HOOKS_LOCKS(r) dav_get_lock_hooks(r)
809#define DAV_GET_HOOKS_VSN(r) dav_get_vsn_hooks(r)
810#define DAV_GET_HOOKS_BINDING(r) dav_get_binding_hooks(r)
811#define DAV_GET_HOOKS_SEARCH(r) dav_get_search_hooks(r)
852#define DAV_IF_COND_NORMAL 0
853#define DAV_IF_COND_NOT 1
1182#define DAV_PROPID_CORE 10000
1183#define DAV_PROPID_FS 10100
1185#define DAV_PROPID_TEST1 10300
1186#define DAV_PROPID_TEST2 10400
1187#define DAV_PROPID_TEST3 10500
1315#define DAV_TIMEOUT_INFINITE 0
1456#define DAV_VALIDATE_RESOURCE 0x0010
1457#define DAV_VALIDATE_PARENT 0x0020
1458#define DAV_VALIDATE_ADD_LD 0x0040
1460#define DAV_VALIDATE_USE_424 0x0080
1461#define DAV_VALIDATE_IS_PARENT 0x0100
1462#define DAV_VALIDATE_NO_MODIFY 0x0200
1476 const char * (*get_supportedlock)(
1494 const char * (*format_locktoken)(
1570#define DAV_GETLOCKS_RESOLVED 0
1571#define DAV_GETLOCKS_PARTIAL 1
1572#define DAV_GETLOCKS_COMPLETE 2
1675#define DAV_RESOURCE_LOCK_NULL 10
1676#define DAV_RESOURCE_NULL 11
1677#define DAV_RESOURCE_EXISTS 12
1678#define DAV_RESOURCE_ERROR 13
1688#define DAV_PROPDB_NONE 0
1689#define DAV_PROPDB_RO 1
1690#define DAV_PROPDB_DISABLE_LOCKDISCOVERY 2
1769#define DAV_PROP_OP_SET 1
1770#define DAV_PROP_OP_DELETE 2
1790#define DAV_PROP_CTX_HAS_ERR(dpc) ((dpc).err && (dpc).err->status >= 300)
1823#define DAV_WALKTYPE_AUTH 0x0001
1824#define DAV_WALKTYPE_NORMAL 0x0002
1825#define DAV_WALKTYPE_LOCKNULL 0x0004
1826#define DAV_WALKTYPE_TOLERANT 0x0008
1863#define DAV_PROPFIND_IS_ALLPROP 1
1864#define DAV_PROPFIND_IS_PROPNAME 2
1865#define DAV_PROPFIND_IS_PROP 3
2195 int resource_versioned;
2196 int resource_checkedout;
2197 int parent_checkedout;
2254 const char *nmspace;
2315 const char *target);
2624#define DAV_OPTIONS_EXTENSION_GROUP "dav_options"
2657#define DAV_RESOURCE_TYPE_GROUP "dav_resource_type"
const unsigned char * buf
apr_brigade_flush void * ctx
apr_pool_t apr_dbd_t const char const char * label
apr_dbd_transaction_t int mode
apr_pool_t const char * params
const char apr_ssize_t int flags
#define APR_DECLARE_EXTERNAL_HOOK(ns, link, ret, name, args)
const apr_xml_elem int apr_array_header_t int const char ** pbuf
const apr_xml_elem int apr_array_header_t * namespaces
dav_error * dav_new_error_tag(apr_pool_t *p, int status, int error_id, apr_status_t aprerr, const char *desc, const char *namespace, const char *tagname)
int dav_handle_err(request_rec *r, dav_error *err, dav_response *response)
int dav_get_depth(request_rec *r, int def_depth)
void dav_core_insert_all_liveprops(request_rec *r, const dav_resource *resource, dav_prop_insert what, apr_text_header *phdr)
const dav_hooks_locks * dav_get_lock_hooks(request_rec *r)
long dav_get_liveprop_info(int propid, const dav_liveprop_group *group, const dav_liveprop_spec **info)
void dav_resource_type_provider_register(apr_pool_t *p, const char *name, const dav_resource_type_provider *provider)
void dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, const char *str)
apr_text * dav_failed_proppatch(apr_pool_t *p, apr_array_header_t *prop_ctx)
dav_get_props_result dav_get_allprops(dav_propdb *db, dav_prop_insert what)
dav_lookup_result dav_lookup_uri(const char *uri, request_rec *r, int must_be_absolute)
void dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, const char *str)
void dav_core_register_uris(apr_pool_t *p)
const char * dav_lock_get_activelock(request_rec *r, dav_lock *locks, dav_buffer *pbuf)
apr_xml_attr * dav_find_attr(const apr_xml_elem *elem, const char *attrname)
void dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, const void *mem, apr_size_t amt, apr_size_t pad)
void dav_prop_validate(dav_prop_ctx *ctx)
const dav_hooks_binding * dav_get_binding_hooks(request_rec *r)
dav_error * dav_lock_parse_lockinfo(request_rec *r, const dav_resource *resource, dav_lockdb *lockdb, const apr_xml_doc *doc, dav_lock **lock_request)
const char * dav_xmlns_get_prefix(dav_xmlns_info *xi, const char *uri)
int dav_unlock(request_rec *r, const dav_resource *resource, const dav_locktoken *locktoken)
const char * dav_xmlns_get_uri(dav_xmlns_info *xi, const char *prefix)
dav_error * dav_auto_checkin(request_rec *r, dav_resource *resource, int undo, int unlock, dav_auto_version_info *av_info)
const dav_provider * dav_lookup_provider(const char *name)
void dav_add_vary_header(request_rec *in_req, request_rec *out_req, const dav_resource *resource)
void dav_register_liveprop_group(apr_pool_t *pool, const dav_liveprop_group *group)
void dav_close_propdb(dav_propdb *db)
dav_error * dav_lock_query(dav_lockdb *lockdb, const dav_resource *resource, dav_lock **locks)
void dav_get_liveprop_supported(dav_propdb *propdb, const char *ns_uri, const char *propname, apr_text_header *body)
int dav_validate_root_ns(const apr_xml_doc *doc, int ns, const char *tagname)
dav_xmlns_info * dav_xmlns_create(apr_pool_t *pool)
void dav_xmlns_generate(dav_xmlns_info *xi, apr_text_header *phdr)
#define DAV_DECLARE_NONSTD(type)
void dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t extra_needed)
dav_error * dav_add_lock(request_rec *r, const dav_resource *resource, dav_lockdb *lockdb, dav_lock *request, dav_response **response)
apr_text * dav_success_proppatch(apr_pool_t *p, apr_array_header_t *prop_ctx)
long dav_get_liveprop_ns_index(const char *uri)
dav_get_props_result dav_get_props(dav_propdb *db, apr_xml_doc *doc)
const char * dav_get_provider_name(request_rec *r)
void dav_xmlns_add(dav_xmlns_info *xi, const char *prefix, const char *uri)
int dav_do_find_liveprop(const char *ns_uri, const char *name, const dav_liveprop_group *group, const dav_hooks_liveprop **hooks)
void dav_prop_exec(dav_prop_ctx *ctx)
time_t dav_get_timeout(request_rec *r)
void dav_add_all_liveprop_xmlns(apr_pool_t *p, apr_text_header *phdr)
int dav_validate_root(const apr_xml_doc *doc, const char *tagname)
int dav_get_resource_state(request_rec *r, const dav_resource *resource)
const dav_resource_type_provider * dav_get_resource_type_providers(const char *name)
void dav_register_provider(apr_pool_t *p, const char *name, const dav_provider *hooks)
dav_error * dav_popen_propdb(apr_pool_t *p, request_rec *r, dav_lockdb *lockdb, const dav_resource *resource, int flags, apr_array_header_t *ns_xlate, dav_propdb **propdb)
dav_error * dav_join_error(dav_error *dest, dav_error *src)
dav_error * dav_get_locktoken_list(request_rec *r, dav_locktoken_list **ltl)
dav_error * dav_auto_checkout(request_rec *r, dav_resource *resource, int parent_only, dav_auto_version_info *av_info)
const char * dav_xml_get_cdata(const apr_xml_elem *elem, apr_pool_t *pool, int strip_white)
apr_status_t dav_finish_multistatus(request_rec *r, apr_bucket_brigade *bb)
void dav_prop_commit(dav_prop_ctx *ctx)
const dav_provider * dav_get_provider(request_rec *r)
apr_xml_elem * dav_find_child(const apr_xml_elem *elem, const char *tagname)
void dav_send_one_response(dav_response *response, apr_bucket_brigade *bb, request_rec *r, apr_pool_t *pool)
int dav_core_find_liveprop(const dav_resource *resource, const char *ns_uri, const char *name, const dav_hooks_liveprop **hooks)
dav_error * dav_open_lockdb(request_rec *r, int ro, dav_lockdb **lockdb)
dav_error * dav_push_error(apr_pool_t *p, int status, int error_id, const char *desc, dav_error *prev)
dav_error * dav_notify_created(request_rec *r, dav_lockdb *lockdb, const dav_resource *resource, int resource_state, int depth)
void dav_options_provider_register(apr_pool_t *p, const char *name, const dav_options_provider *provider)
#define DAV_DECLARE(type)
apr_xml_elem * dav_find_child_ns(const apr_xml_elem *elem, int ns, const char *tagname)
dav_liveprop_elem * dav_get_liveprop_element(const dav_resource *resource)
long dav_get_liveprop_ns_count(void)
void dav_set_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t size)
const dav_options_provider * dav_get_options_providers(const char *name)
apr_xml_attr * dav_find_attr_ns(const apr_xml_elem *elem, int ns, const char *attrname)
void dav_begin_multistatus(apr_bucket_brigade *bb, request_rec *r, int status, apr_array_header_t *namespaces)
void dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, const char *str)
const char * dav_xmlns_add_uri(dav_xmlns_info *xi, const char *uri)
void dav_prop_rollback(dav_prop_ctx *ctx)
dav_error * dav_open_propdb(request_rec *r, dav_lockdb *lockdb, const dav_resource *resource, int flags, apr_array_header_t *ns_xlate, dav_propdb **propdb)
const dav_hooks_search * dav_get_search_hooks(request_rec *r)
const dav_hooks_vsn * dav_get_vsn_hooks(request_rec *r)
void dav_send_multistatus(request_rec *r, int status, dav_response *first, apr_array_header_t *namespaces)
dav_error * dav_get_resource(request_rec *r, int label_allowed, int use_checked_in, dav_resource **res_p)
dav_error * dav_new_error(apr_pool_t *p, int status, int error_id, apr_status_t aprerr, const char *desc)
apr_xml_elem * dav_find_next_ns(const apr_xml_elem *elem, int ns, const char *tagname)
dav_error * dav_validate_request(request_rec *r, dav_resource *resource, int depth, dav_locktoken *locktoken, dav_response **response, int flags, dav_lockdb *lockdb)
void dav_add_response(dav_walk_resource *wres, int status, dav_get_props_result *propstats)
void dav_close_lockdb(dav_lockdb *lockdb)
const dav_hooks_propdb * dav_get_propdb_hooks(request_rec *r)
struct dav_liveprop_rollback dav_liveprop_rollback
dav_hooks_propdb dav_hooks_db
@ DAV_LOCKREC_INDIRECT_PARTIAL
@ DAV_PROPID_getcontentlength
@ DAV_PROPID_version_history
@ DAV_PROPID_activity_checkout_set
@ DAV_PROPID_baseline_collection
@ DAV_PROPID_auto_version
@ DAV_PROPID_checkout_fork
@ DAV_PROPID_supported_live_property_set
@ DAV_PROPID_version_controlled_binding_set
@ DAV_PROPID_checkin_fork
@ DAV_PROPID_activity_version_set
@ DAV_PROPID_creationdate
@ DAV_PROPID_auto_merge_set
@ DAV_PROPID_label_name_set
@ DAV_PROPID_workspace_checkout_set
@ DAV_PROPID_resourcetype
@ DAV_PROPID_root_version
@ DAV_PROPID_default_variant
@ DAV_PROPID_getcontenttype
@ DAV_PROPID_version_controlled_configuration
@ DAV_PROPID_version_name
@ DAV_PROPID_supported_method_set
@ DAV_PROPID_successor_set
@ DAV_PROPID_eclipsed_set
@ DAV_PROPID_getlastmodified
@ DAV_PROPID_activity_set
@ DAV_PROPID_baseline_controlled_collection
@ DAV_PROPID_getcontentlanguage
@ DAV_PROPID_checkout_set
@ DAV_PROPID_lockdiscovery
@ DAV_PROPID_supported_report_set
@ DAV_PROPID_precursor_set
@ DAV_PROPID_current_activity_set
@ DAV_PROPID_subbaseline_set
@ DAV_PROPID_subactivity_set
@ DAV_PROPID_current_workspace_set
@ DAV_PROPID_creator_displayname
@ DAV_PROPID_baseline_controlled_collection_set
@ DAV_PROPID_supportedlock
@ DAV_PROPID_predecessor_set
@ DAV_AUTO_VERSION_LOCKED
@ DAV_AUTO_VERSION_ALWAYS
@ DAV_LOCKSCOPE_EXCLUSIVE
@ DAV_PROP_INSERT_NOTSUPP
@ DAV_PROP_INSERT_SUPPORTED
@ DAV_MODE_WRITE_SEEKABLE
@ DAV_CALLTYPE_COLLECTION
@ DAV_RESOURCE_TYPE_PRIVATE
@ DAV_RESOURCE_TYPE_VERSION
@ DAV_RESOURCE_TYPE_WORKSPACE
@ DAV_RESOURCE_TYPE_REGULAR
@ DAV_RESOURCE_TYPE_WORKING
@ DAV_RESOURCE_TYPE_ACTIVITY
@ DAV_RESOURCE_TYPE_HISTORY
@ DAV_RESOURCE_TYPE_UNKNOWN
const char int apr_pool_t * pool
apr_sockaddr_t apr_sockaddr_t apr_sockaddr_t * source
const apr_array_header_t * first
apr_int32_t apr_int32_t apr_int32_t err
static const char *const hooks[]
The representation of a filter chain.
int(* is_bindable)(const dav_resource *resource)
int(* is_writable)(const dav_resource *resource, int propid)
const char *const * namespace_uris
void(* patch_commit)(const dav_resource *resource, int operation, void *context, dav_liveprop_rollback *rollback_ctx)
dav_prop_insert(* insert_prop)(const dav_resource *resource, int propid, dav_prop_insert what, apr_text_header *phdr)
int(* compare_locktoken)(const dav_locktoken *lt1, const dav_locktoken *lt2)
void(* close_lockdb)(dav_lockdb *lockdb)
void(* close)(dav_db *db)
int(* exists)(dav_db *db, const dav_prop_name *name)
int(* is_same_resource)(const dav_resource *res1, const dav_resource *res2)
int(* is_parent_resource)(const dav_resource *res1, const dav_resource *res2)
int(* versionable)(const dav_resource *resource)
int(* can_be_activity)(const dav_resource *resource)
int(* can_be_workspace)(const dav_resource *resource)
dav_auto_version(* auto_versionable)(const dav_resource *resource)
int(* report_label_header_allowed)(const apr_xml_doc *doc)
void(* get_vsn_options)(apr_pool_t *p, apr_text_header *phdr)
dav_locktoken * locktoken
struct dav_if_state_list * next
const apr_xml_elem * elem
const dav_hooks_liveprop * hooks
const char *const * namespace_uris
const dav_liveprop_spec * specs
const dav_locktoken * locktoken
struct dav_locktoken_list * next
dav_locktoken * locktoken
struct dav_rollback_item * rollback
apr_array_header_t * ns_xlate
const dav_hooks_vsn * vsn
const dav_hooks_propdb * propdb
const dav_hooks_locks * locks
const dav_hooks_repository * repos
const dav_hooks_search * search
const dav_hooks_binding * binding
int(* get_resource_type)(const dav_resource *resource, const char **name, const char **uri)
dav_resource_private * info
const dav_hooks_repository * hooks
dav_get_props_result propresult
struct dav_response * next
const dav_locktoken * locktoken
const dav_if_header * if_header
A structure that represents the current request.
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray