37#define APR_WANT_BYTEFUNC
41#if !APR_VERSION_AT_LEAST(2,0,0)
103 errstr =
"Could not open property database.";
106 "The DBM driver could not be loaded");
135#if APU_MAJOR_VERSION > 1 || (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 7)
144#if APU_MAJOR_VERSION > 1 || (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 7)
147 "mod_dav_fs: The DBM library '%s' could not be loaded: %s",
150 "Could not load library for property database.");
276#define DAV_GDBM_NS_KEY "METADATA"
277#define DAV_GDBM_NS_KEY_LEN 8
281#define DAV_DBVSN_MAJOR 4
306#define DAV_DBVSN_MINOR 0
339 if (*
name->ns ==
'\0') {
374 const char *lang =
value;
377 value += strlen(lang) + 1;
379 if (*
value ==
'\0') {
389 else if (*lang !=
'\0') {
402 else if (*
name ==
':') {
456 key.dptr =
"NS_TABLE";
464 "Prop database has the wrong major "
465 "version number and cannot be used.");
486 "Prop database has the wrong major "
487 "version number and cannot be used.");
535 APLOGNO(00577)
"Error writing propdb: %s",
err->desc);
624 (
void *)((
long)(db->
ns_count + 1)));
692 else if (*
s ==
':') {
755 rb->key.dsize =
key.dsize;
const ap_regex_t char * errbuf
APR Versioning Interface.
APR Standard Headers Support.
APR-util Versioning Interface.
static void dav_append_prop(apr_pool_t *pool, const char *name, const char *value, apr_text_header *phdr)
static void dav_set_name(dav_db *db, dav_prop_name *pname)
static dav_error * dav_propdb_map_namespaces(dav_db *db, const apr_array_header_t *namespaces, dav_namespace_map **mapping)
static dav_error * dav_fs_dbm_error(dav_db *db, apr_pool_t *p, apr_status_t status)
static dav_error * dav_propdb_store(dav_db *db, const dav_prop_name *name, const apr_xml_elem *elem, dav_namespace_map *mapping)
static dav_error * dav_propdb_apply_rollback(dav_db *db, dav_deadprop_rollback *rollback)
static dav_error * dav_dbm_open(apr_pool_t *p, const dav_resource *resource, int ro, dav_db **pdb)
static const char * dav_get_ns_table_uri(dav_db *db, int ns_id)
static dav_error * dav_propdb_next_name(dav_db *db, dav_prop_name *pname)
static dav_error * dav_dbm_firstkey(dav_db *db, apr_datum_t *pkey)
static dav_error * dav_propdb_open(apr_pool_t *pool, const dav_resource *resource, int ro, dav_db **pdb)
static dav_error * dav_propdb_get_rollback(dav_db *db, const dav_prop_name *name, dav_deadprop_rollback **prollback)
static dav_error * dav_propdb_remove(dav_db *db, const dav_prop_name *name)
static dav_error * dav_propdb_define_namespaces(dav_db *db, dav_xmlns_info *xi)
static dav_error * dav_dbm_nextkey(dav_db *db, apr_datum_t *pkey)
#define DAV_GDBM_NS_KEY_LEN
static void dav_propdb_close(dav_db *db)
static dav_error * dav_propdb_output_value(dav_db *db, const dav_prop_name *name, dav_xmlns_info *xi, apr_text_header *phdr, int *found)
static apr_datum_t dav_build_key(dav_db *db, const dav_prop_name *name)
static dav_error * dav_propdb_first_name(dav_db *db, dav_prop_name *pname)
static int dav_propdb_exists(dav_db *db, const dav_prop_name *name)
#define APLOG_USE_MODULE(foo)
server_rec * ap_server_conf
#define APR_STATUS_IS_EDSOOPEN(s)
const char const apr_dbd_driver_t ** driver
apr_datum_t apr_datum_t * pvalue
const char const char * pathname
#define APR_XML_X2T_LANG_INNER
const apr_xml_elem int apr_array_header_t * namespaces
#define HTTP_INTERNAL_SERVER_ERROR
dav_error * dav_dbm_store(dav_db *db, apr_datum_t key, apr_datum_t value)
void dav_fs_ensure_state_dir(apr_pool_t *p, const char *dirname)
dav_error * dav_dbm_delete(dav_db *db, apr_datum_t key)
const dav_hooks_db dav_hooks_db_dbm
void dav_dbm_freedatum(dav_db *db, apr_datum_t data)
dav_error * dav_dbm_fetch(dav_db *db, apr_datum_t key, apr_datum_t *pvalue)
#define DAV_FS_STATE_FILE_FOR_DIR
int dav_dbm_exists(dav_db *db, apr_datum_t key)
dav_error * dav_fs_dir_file_name(const dav_resource *resource, const char **dirpath_p, const char **fname_p)
void dav_dbm_close(dav_db *db)
void dav_dbm_get_statefiles(apr_pool_t *p, const char *fname, const char **state1, const char **state2)
#define DAV_ERR_PROP_BAD_MAJOR
void dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t extra_needed)
void dav_xmlns_add(dav_xmlns_info *xi, const char *prefix, const char *uri)
dav_error * dav_dbm_open_direct(apr_pool_t *p, const char *pathname, int ro, dav_db **pdb)
void dav_set_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t size)
dav_error * dav_new_error(apr_pool_t *p, int status, int error_id, apr_status_t aprerr, const char *desc)
#define ap_strchr_c(s, c)
const char int apr_pool_t * pool
const char apr_file_t * file
#define APR_HASH_KEY_STRING
#define apr_pcalloc(p, size)
apr_int32_t apr_int32_t apr_int32_t err
DAV extension module for Apache 2.0.*.
Declarations for the filesystem repository implementation.
apr_status_t apr_dir_make(const char *path, apr_fileperms_t perm, apr_pool_t *pool)