Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
locks.c File Reference
#include "apr.h"
#include "apr_strings.h"
#include "apr_file_io.h"
#include "apr_uuid.h"
#include "apr_want.h"
#include "apr_version.h"
#include "apu_version.h"
#include "httpd.h"
#include "http_log.h"
#include "http_main.h"
#include "mod_dav.h"
#include "locks.h"

Go to the source code of this file.

Classes

struct  dav_locktoken
 
struct  dav_lock_discovery_fixed
 
struct  dav_lock_discovery
 
struct  dav_lock_indirect
 
struct  dav_lockdb_private
 
struct  dav_lockdb_combined
 
struct  dav_lock_private
 
struct  dav_lock_combined
 

Macros

#define APR_WANT_MEMFUNC
 
#define DAV_TRUE   1
 
#define DAV_FALSE   0
 
#define DAV_CREATE_LIST   23
 
#define DAV_APPEND_LIST   24
 
#define DAV_LOCK_DIRECT   1
 
#define DAV_LOCK_INDIRECT   2
 
#define DAV_TYPE_FNAME   11
 
#define dav_compare_locktoken(plt1, plt2)    memcmp(&(plt1)->uuid, &(plt2)->uuid, sizeof((plt1)->uuid))
 
#define dav_size_direct(a)
 
#define dav_size_indirect(a)
 

Typedefs

typedef struct dav_lock_discovery_fixed dav_lock_discovery_fixed
 
typedef struct dav_lock_discovery dav_lock_discovery
 
typedef struct dav_lock_indirect dav_lock_indirect
 

Functions

static dav_errordav_generic_dbm_new_error (apr_dbm_t *db, apr_pool_t *p, apr_status_t status)
 
static dav_lockdav_generic_alloc_lock (dav_lockdb *lockdb, apr_datum_t key, const dav_locktoken *locktoken)
 
static dav_errordav_generic_parse_locktoken (apr_pool_t *p, const char *char_token, dav_locktoken **locktoken_p)
 
static const chardav_generic_format_locktoken (apr_pool_t *p, const dav_locktoken *locktoken)
 
static int dav_generic_compare_locktoken (const dav_locktoken *lt1, const dav_locktoken *lt2)
 
static dav_errordav_generic_really_open_lockdb (dav_lockdb *lockdb)
 
static dav_errordav_generic_open_lockdb (request_rec *r, int ro, int force, dav_lockdb **lockdb)
 
static void dav_generic_close_lockdb (dav_lockdb *lockdb)
 
static apr_datum_t dav_generic_build_key (apr_pool_t *p, const dav_resource *resource)
 
static int dav_generic_lock_expired (time_t expires)
 
static dav_errordav_generic_save_lock_record (dav_lockdb *lockdb, apr_datum_t key, dav_lock_discovery *direct, dav_lock_indirect *indirect)
 
static dav_errordav_generic_load_lock_record (dav_lockdb *lockdb, apr_datum_t key, int add_method, dav_lock_discovery **direct, dav_lock_indirect **indirect)
 
static dav_errordav_generic_resolve (dav_lockdb *lockdb, dav_lock_indirect *indirect, dav_lock_discovery **direct, dav_lock_discovery **ref_dp, dav_lock_indirect **ref_ip)
 
static const chardav_generic_get_supportedlock (const dav_resource *resource)
 
static dav_errordav_generic_remove_locknull_state (dav_lockdb *lockdb, const dav_resource *resource)
 
static dav_errordav_generic_create_lock (dav_lockdb *lockdb, const dav_resource *resource, dav_lock **lock)
 
static dav_errordav_generic_get_locks (dav_lockdb *lockdb, const dav_resource *resource, int calltype, dav_lock **locks)
 
static dav_errordav_generic_find_lock (dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken *locktoken, int partial_ok, dav_lock **lock)
 
static dav_errordav_generic_has_locks (dav_lockdb *lockdb, const dav_resource *resource, int *locks_present)
 
static dav_errordav_generic_append_locks (dav_lockdb *lockdb, const dav_resource *resource, int make_indirect, const dav_lock *lock)
 
static dav_errordav_generic_remove_lock (dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken *locktoken)
 
static int dav_generic_do_refresh (dav_lock_discovery *dp, const dav_locktoken_list *ltl, time_t new_time)
 
static dav_errordav_generic_refresh_locks (dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken_list *ltl, time_t new_time, dav_lock **locks)
 

Variables

const dav_hooks_locks dav_hooks_locks_generic
 

Macro Definition Documentation

◆ APR_WANT_MEMFUNC

#define APR_WANT_MEMFUNC

Definition at line 26 of file locks.c.

◆ DAV_APPEND_LIST

#define DAV_APPEND_LIST   24

Definition at line 85 of file locks.c.

◆ dav_compare_locktoken

#define dav_compare_locktoken (   plt1,
  plt2 
)     memcmp(&(plt1)->uuid, &(plt2)->uuid, sizeof((plt1)->uuid))

Definition at line 97 of file locks.c.

◆ DAV_CREATE_LIST

#define DAV_CREATE_LIST   23

Definition at line 84 of file locks.c.

◆ DAV_FALSE

#define DAV_FALSE   0

Definition at line 82 of file locks.c.

◆ DAV_LOCK_DIRECT

#define DAV_LOCK_DIRECT   1

Definition at line 88 of file locks.c.

◆ DAV_LOCK_INDIRECT

#define DAV_LOCK_INDIRECT   2

Definition at line 89 of file locks.c.

◆ dav_size_direct

#define dav_size_direct (   a)
Value:
(1 + sizeof(dav_lock_discovery_fixed) \
+ sizeof(apr_uuid_t) \
+ ((a)->owner ? strlen((a)->owner) : 0) \
+ ((a)->auth_user ? strlen((a)->auth_user) : 0) \
+ 2)
apr_bucket apr_bucket_brigade * a

Definition at line 149 of file locks.c.

◆ dav_size_indirect

#define dav_size_indirect (   a)
Value:
(1 + sizeof(apr_uuid_t) \
+ sizeof(time_t) \
+ sizeof(int) + (a)->key.dsize)
apr_size_t size
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray

Definition at line 156 of file locks.c.

◆ DAV_TRUE

#define DAV_TRUE   1

Definition at line 81 of file locks.c.

◆ DAV_TYPE_FNAME

#define DAV_TYPE_FNAME   11

Definition at line 91 of file locks.c.

Typedef Documentation

◆ dav_lock_discovery

◆ dav_lock_discovery_fixed

◆ dav_lock_indirect

Function Documentation

◆ dav_generic_alloc_lock()

static dav_lock * dav_generic_alloc_lock ( dav_lockdb lockdb,
apr_datum_t  key,
const dav_locktoken locktoken 
)
static

Definition at line 237 of file locks.c.

◆ dav_generic_append_locks()

static dav_error * dav_generic_append_locks ( dav_lockdb lockdb,
const dav_resource resource,
int  make_indirect,
const dav_lock lock 
)
static

Definition at line 979 of file locks.c.

◆ dav_generic_build_key()

static apr_datum_t dav_generic_build_key ( apr_pool_t p,
const dav_resource resource 
)
static

Definition at line 425 of file locks.c.

◆ dav_generic_close_lockdb()

static void dav_generic_close_lockdb ( dav_lockdb lockdb)
static

Definition at line 412 of file locks.c.

◆ dav_generic_compare_locktoken()

static int dav_generic_compare_locktoken ( const dav_locktoken lt1,
const dav_locktoken lt2 
)
static

Definition at line 307 of file locks.c.

◆ dav_generic_create_lock()

static dav_error * dav_generic_create_lock ( dav_lockdb lockdb,
const dav_resource resource,
dav_lock **  lock 
)
static

Definition at line 794 of file locks.c.

◆ dav_generic_dbm_new_error()

static dav_error * dav_generic_dbm_new_error ( apr_dbm_t db,
apr_pool_t p,
apr_status_t  status 
)
static

Definition at line 210 of file locks.c.

◆ dav_generic_do_refresh()

static int dav_generic_do_refresh ( dav_lock_discovery dp,
const dav_locktoken_list ltl,
time_t  new_time 
)
static

Definition at line 1111 of file locks.c.

◆ dav_generic_find_lock()

static dav_error * dav_generic_find_lock ( dav_lockdb lockdb,
const dav_resource resource,
const dav_locktoken locktoken,
int  partial_ok,
dav_lock **  lock 
)
static

Definition at line 887 of file locks.c.

◆ dav_generic_format_locktoken()

static const char * dav_generic_format_locktoken ( apr_pool_t p,
const dav_locktoken locktoken 
)
static

Definition at line 293 of file locks.c.

◆ dav_generic_get_locks()

static dav_error * dav_generic_get_locks ( dav_lockdb lockdb,
const dav_resource resource,
int  calltype,
dav_lock **  locks 
)
static

Definition at line 809 of file locks.c.

◆ dav_generic_get_supportedlock()

static const char * dav_generic_get_supportedlock ( const dav_resource resource)
static

Definition at line 766 of file locks.c.

◆ dav_generic_has_locks()

static dav_error * dav_generic_has_locks ( dav_lockdb lockdb,
const dav_resource resource,
int locks_present 
)
static

Definition at line 951 of file locks.c.

◆ dav_generic_load_lock_record()

static dav_error * dav_generic_load_lock_record ( dav_lockdb lockdb,
apr_datum_t  key,
int  add_method,
dav_lock_discovery **  direct,
dav_lock_indirect **  indirect 
)
static

Definition at line 577 of file locks.c.

◆ dav_generic_lock_expired()

static int dav_generic_lock_expired ( time_t  expires)
static

Definition at line 449 of file locks.c.

◆ dav_generic_open_lockdb()

static dav_error * dav_generic_open_lockdb ( request_rec r,
int  ro,
int  force,
dav_lockdb **  lockdb 
)
static

Definition at line 375 of file locks.c.

◆ dav_generic_parse_locktoken()

static dav_error * dav_generic_parse_locktoken ( apr_pool_t p,
const char char_token,
dav_locktoken **  locktoken_p 
)
static

Definition at line 263 of file locks.c.

◆ dav_generic_really_open_lockdb()

static dav_error * dav_generic_really_open_lockdb ( dav_lockdb lockdb)
static

< use OS's default permissions

<

Deprecated:
See also
APR_FPROT_OS_DEFAULT

Definition at line 318 of file locks.c.

◆ dav_generic_refresh_locks()

static dav_error * dav_generic_refresh_locks ( dav_lockdb lockdb,
const dav_resource resource,
const dav_locktoken_list ltl,
time_t  new_time,
dav_lock **  locks 
)
static

Definition at line 1129 of file locks.c.

◆ dav_generic_remove_lock()

static dav_error * dav_generic_remove_lock ( dav_lockdb lockdb,
const dav_resource resource,
const dav_locktoken locktoken 
)
static

Definition at line 1057 of file locks.c.

◆ dav_generic_remove_locknull_state()

static dav_error * dav_generic_remove_locknull_state ( dav_lockdb lockdb,
const dav_resource resource 
)
static

Definition at line 787 of file locks.c.

◆ dav_generic_resolve()

static dav_error * dav_generic_resolve ( dav_lockdb lockdb,
dav_lock_indirect indirect,
dav_lock_discovery **  direct,
dav_lock_discovery **  ref_dp,
dav_lock_indirect **  ref_ip 
)
static

Definition at line 716 of file locks.c.

◆ dav_generic_save_lock_record()

static dav_error * dav_generic_save_lock_record ( dav_lockdb lockdb,
apr_datum_t  key,
dav_lock_discovery direct,
dav_lock_indirect indirect 
)
static

Definition at line 459 of file locks.c.

Variable Documentation

◆ dav_hooks_locks_generic

const dav_hooks_locks dav_hooks_locks_generic
Initial value:
=
{
NULL,
}
static dav_error * dav_generic_create_lock(dav_lockdb *lockdb, const dav_resource *resource, dav_lock **lock)
Definition locks.c:794
static dav_error * dav_generic_find_lock(dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken *locktoken, int partial_ok, dav_lock **lock)
Definition locks.c:887
static dav_error * dav_generic_remove_lock(dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken *locktoken)
Definition locks.c:1057
static const char * dav_generic_format_locktoken(apr_pool_t *p, const dav_locktoken *locktoken)
Definition locks.c:293
static dav_error * dav_generic_append_locks(dav_lockdb *lockdb, const dav_resource *resource, int make_indirect, const dav_lock *lock)
Definition locks.c:979
static int dav_generic_compare_locktoken(const dav_locktoken *lt1, const dav_locktoken *lt2)
Definition locks.c:307
static dav_error * dav_generic_get_locks(dav_lockdb *lockdb, const dav_resource *resource, int calltype, dav_lock **locks)
Definition locks.c:809
static dav_error * dav_generic_open_lockdb(request_rec *r, int ro, int force, dav_lockdb **lockdb)
Definition locks.c:375
static dav_error * dav_generic_refresh_locks(dav_lockdb *lockdb, const dav_resource *resource, const dav_locktoken_list *ltl, time_t new_time, dav_lock **locks)
Definition locks.c:1129
static dav_error * dav_generic_has_locks(dav_lockdb *lockdb, const dav_resource *resource, int *locks_present)
Definition locks.c:951
static dav_error * dav_generic_remove_locknull_state(dav_lockdb *lockdb, const dav_resource *resource)
Definition locks.c:787
static dav_error * dav_generic_parse_locktoken(apr_pool_t *p, const char *char_token, dav_locktoken **locktoken_p)
Definition locks.c:263
static void dav_generic_close_lockdb(dav_lockdb *lockdb)
Definition locks.c:412
static const char * dav_generic_get_supportedlock(const dav_resource *resource)
Definition locks.c:766
return NULL
Definition mod_so.c:359

Definition at line 1218 of file locks.c.