blob: d833e88ee8670a0d475200ff921b0c43b0d99348 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_dav_lock.xml.meta">
<name>mod_dav_lock</name>
<description>Generic locking module for <module>mod_dav</module></description>
<status>Extension</status>
<sourcefile>mod_dav_lock.c</sourcefile>
<identifier>dav_lock_module</identifier>
<compatibility>Available in version 2.1 and later</compatibility>
<summary>
<p>This module implements a generic locking API which can be used by any
backend provider of <module>mod_dav</module>. It <em>requires</em> at least
the service of <module>mod_dav</module>. But without a backend provider
which makes use of it, it's useless and should not be loaded into the
server. A sample backend module which actually utilizes
<module>mod_dav_lock</module> is <a href="http://subversion.apache.org/"
>mod_dav_svn</a>, the subversion provider module.</p>
<p>Note that <module>mod_dav_fs</module> does <em>not</em> need this
generic locking module, because it uses its own more specialized
version.</p>
<p>In order to make <module>mod_dav_lock</module> functional, you just have
to specify the location of the lock database using the <directive
module="mod_dav_lock">DavGenericLockDB</directive> directive described
below.</p>
<note><title>Developer's Note</title>
<p>In order to retrieve the pointer to the locking provider function, you
have to use the <code>ap_lookup_provider</code> API with the arguments
<code>dav-lock</code>, <code>generic</code>, and <code>0</code>.</p>
</note>
</summary>
<seealso><module>mod_dav</module></seealso>
<directivesynopsis>
<name>DavGenericLockDB</name>
<description>Location of the DAV lock database</description>
<syntax>DavGenericLockDB <var>file-path</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context>
</contextlist>
<usage>
<p>Use the <directive>DavGenericLockDB</directive> directive to specify
the full path to the lock database, excluding an extension. If
the path is not absolute, it will be interpreted relative to <directive
module="core">ServerRoot</directive>. The implementation of
<module>mod_dav_lock</module> uses a SDBM database to track user
locks.</p>
<example><title>Example</title>
<highlight language="config">
DavGenericLockDB var/DavLock
</highlight>
</example>
<p>The directory containing the lock database file must be
writable by the <directive module="mod_unixd">User</directive>
and <directive module="mod_unixd" >Group</directive> under which
Apache is running. For security reasons, you should create a
directory for this purpose rather than changing the permissions on
an existing directory. In the above example, Apache will create
files in the <code>var/</code> directory under the <directive
module="core">ServerRoot</directive> with the base filename
<code>DavLock</code> and an extension added by the server.</p>
</usage>
</directivesynopsis>
</modulesynopsis>