Lines Matching defs:lockdb

155  * The lockdb structure.
162 * The delayed opening (determined by <opened>) makes creating a lockdb
165 * We export the notion of a lockdb, but hide the details of it. Most
231 static dav_lock *dav_generic_alloc_lock(dav_lockdb *lockdb, apr_datum_t key,
236 comb = apr_pcalloc(lockdb->info->pool, sizeof(*comb));
312 static dav_error * dav_generic_really_open_lockdb(dav_lockdb *lockdb)
317 if (lockdb->info->opened) {
321 status = apr_dbm_open(&lockdb->info->db, lockdb->info->lockdb_path,
322 lockdb->ro ? APR_DBM_READONLY : APR_DBM_RWCREATE,
323 APR_OS_DEFAULT, lockdb->info->pool);
326 err = dav_generic_dbm_new_error(lockdb->info->db, lockdb->info->pool,
328 return dav_push_error(lockdb->info->pool,
336 lockdb->info->opened = 1;
350 dav_lockdb **lockdb)
371 *lockdb = &comb->pub;
375 return dav_generic_really_open_lockdb(*lockdb);
386 static void dav_generic_close_lockdb(dav_lockdb *lockdb)
388 if (lockdb->info->db != NULL) {
389 apr_dbm_close(lockdb->info->db);
391 lockdb->info->opened = 0;
433 static dav_error * dav_generic_save_lock_record(dav_lockdb *lockdb,
446 if (lockdb->ro) {
447 return dav_new_error(lockdb->info->pool,
449 "INTERNAL DESIGN ERROR: the lockdb was opened "
455 if ((err = dav_generic_really_open_lockdb(lockdb)) != NULL) {
464 apr_dbm_delete(lockdb->info->db, key);
479 ptr = val.dptr = apr_pcalloc(lockdb->info->pool, val.dsize);
527 if ((status = apr_dbm_store(lockdb->info->db, key, val)) != APR_SUCCESS) {
529 err = dav_generic_dbm_new_error(lockdb->info->db, lockdb->info->pool,
531 return dav_push_error(lockdb->info->pool,
551 static dav_error * dav_generic_load_lock_record(dav_lockdb *lockdb,
557 apr_pool_t *p = lockdb->info->pool;
571 if ((err = dav_generic_really_open_lockdb(lockdb)) != NULL) {
580 if (lockdb->info->db == NULL) {
584 if ((status = apr_dbm_fetch(lockdb->info->db, key, &val)) != APR_SUCCESS) {
585 return dav_generic_dbm_new_error(lockdb->info->db, p, status);
660 apr_dbm_freedatum(lockdb->info->db, val);
675 apr_dbm_freedatum(lockdb->info->db, val);
683 return dav_generic_save_lock_record(lockdb, key, *direct, *indirect);
690 static dav_error * dav_generic_resolve(dav_lockdb *lockdb,
700 if ((err = dav_generic_load_lock_record(lockdb, indirect->key,
721 return dav_new_error(lockdb->info->pool,
761 static dav_error * dav_generic_remove_locknull_state(dav_lockdb *lockdb,
768 static dav_error * dav_generic_create_lock(dav_lockdb *lockdb,
774 key = dav_generic_build_key(lockdb->info->pool, resource);
776 *lock = dav_generic_alloc_lock(lockdb, key, NULL);
783 static dav_error * dav_generic_get_locks(dav_lockdb *lockdb,
788 apr_pool_t *p = lockdb->info->pool;
798 return dav_new_error(lockdb->info->pool,
806 if ((err = dav_generic_load_lock_record(lockdb, key, DAV_CREATE_LIST,
814 newlock = dav_generic_alloc_lock(lockdb, key, dp->locktoken);
830 newlock = dav_generic_alloc_lock(lockdb, ip->key, ip->locktoken);
834 err = dav_generic_resolve(lockdb, ip, &dp, NULL, NULL);
861 static dav_error * dav_generic_find_lock(dav_lockdb *lockdb,
874 key = dav_generic_build_key(lockdb->info->pool, resource);
875 if ((err = dav_generic_load_lock_record(lockdb, key, DAV_CREATE_LIST,
883 *lock = dav_generic_alloc_lock(lockdb, key, locktoken);
897 *lock = dav_generic_alloc_lock(lockdb, ip->key, locktoken);
906 if ((err = dav_generic_resolve(lockdb, ip, &dp,
925 static dav_error * dav_generic_has_locks(dav_lockdb *lockdb,
934 if ((err = dav_generic_really_open_lockdb(lockdb)) != NULL) {
943 if (lockdb->info->db == NULL)
946 key = dav_generic_build_key(lockdb->info->pool, resource);
948 *locks_present = apr_dbm_exists(lockdb->info->db, key);
953 static dav_error * dav_generic_append_locks(dav_lockdb *lockdb,
958 apr_pool_t *p = lockdb->info->pool;
964 key = dav_generic_build_key(lockdb->info->pool, resource);
966 err = dav_generic_load_lock_record(lockdb, key, 0, &dp, &ip);
1023 if ((err = dav_generic_save_lock_record(lockdb, key, dp, ip)) != NULL) {
1031 static dav_error * dav_generic_remove_lock(dav_lockdb *lockdb,
1040 key = dav_generic_build_key(lockdb->info->pool, resource);
1048 if ((err = dav_generic_load_lock_record(lockdb, key, DAV_CREATE_LIST,
1077 if ((err = dav_generic_save_lock_record(lockdb, key, dh, ih)) != NULL) {
1103 static dav_error * dav_generic_refresh_locks(dav_lockdb *lockdb,
1119 key = dav_generic_build_key(lockdb->info->pool, resource);
1120 if ((err = dav_generic_load_lock_record(lockdb, key, DAV_CREATE_LIST,
1132 newlock = dav_generic_alloc_lock(lockdb, key, dp_scan->locktoken);
1150 && (err = dav_generic_save_lock_record(lockdb, key, dp, ip)) != NULL) {
1160 if ((err = dav_generic_resolve(lockdb, ip, &dp_scan,
1167 newlock = dav_generic_alloc_lock(lockdb, ip->key, dp->locktoken);
1180 if ((err = dav_generic_save_lock_record(lockdb, ip->key, ref_dp,