2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <modulesynopsis metafile="mod_dav_lock.xml.meta">
25 <name>mod_dav_lock</name>
26 <description>Generic locking module for <module>mod_dav</module></description>
27 <status>Extension</status>
28 <sourcefile>mod_dav_lock.c</sourcefile>
29 <identifier>dav_lock_module</identifier>
32 <p>This module implements a generic locking API which can be used by any
33 backend provider of <module>mod_dav</module>. It <em>requires</em> at least
34 the service of <module>mod_dav</module>. But without a backend provider
35 which makes use of it, it's useless and should not be loaded into the
36 server. A sample backend module which actually utilizes
37 <module>mod_dav_lock</module> is <a href="http://subversion.apache.org/"
38 >mod_dav_svn</a>, the subversion provider module.</p>
40 <p>Note that <module>mod_dav_fs</module> does <em>not</em> need this
41 generic locking module, because it uses its own more specialized
44 <p>In order to make <module>mod_dav_lock</module> functional, you just have
45 to specify the location of the lock database using the <directive
46 module="mod_dav_lock">DavGenericLockDB</directive> directive described
49 <note><title>Developer's Note</title>
50 <p>In order to retrieve the pointer to the locking provider function, you
51 have to use the <code>ap_lookup_provider</code> API with the arguments
52 <code>dav-lock</code>, <code>generic</code>, and <code>0</code>.</p>
55 <seealso><module>mod_dav</module></seealso>
58 <name>DavGenericLockDB</name>
59 <description>Location of the DAV lock database</description>
60 <syntax>DavGenericLockDB <var>file-path</var></syntax>
61 <contextlist><context>server config</context><context>virtual host</context>
62 <context>directory</context>
66 <p>Use the <directive>DavGenericLockDB</directive> directive to specify
67 the full path to the lock database, excluding an extension. If
68 the path is not absolute, it will be interpreted relative to <directive
69 module="core">ServerRoot</directive>. The implementation of
70 <module>mod_dav_lock</module> uses a SDBM database to track user
73 <example><title>Example</title>
74 <highlight language="config">
75 DavGenericLockDB var/DavLock
79 <p>The directory containing the lock database file must be
80 writable by the <directive module="mod_unixd">User</directive>
81 and <directive module="mod_unixd" >Group</directive> under which
82 Apache is running. For security reasons, you should create a
83 directory for this purpose rather than changing the permissions on
84 an existing directory. In the above example, Apache will create
85 files in the <code>var/</code> directory under the <directive
86 module="core">ServerRoot</directive> with the base filename
87 <code>DavLock</code> and an extension added by the server.</p>