<?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_fs.xml.meta">

<name>mod_dav_fs</name>
<description>Filesystem provider for <module>mod_dav</module></description>
<status>Extension</status>
<sourcefile>mod_dav_fs.c</sourcefile>
<identifier>dav_fs_module</identifier>

<summary>
    <p>This module <em>requires</em> the service of <module
    >mod_dav</module>. It acts as a support module for <module
    >mod_dav</module> and provides access to resources located in the
    server's file system. The formal name of this provider is
    <code>filesystem</code>. <module>mod_dav</module> backend providers
    will be invoked by using the <directive module="mod_dav">Dav</directive>
    directive:</p>

    <example><title>Example</title>
    <highlight language="config">
      Dav filesystem
      </highlight>
    </example>

    <p>Since <code>filesystem</code> is the default provider for
    <module>mod_dav</module>, you may simply use the value
    <code>On</code> instead.</p>
</summary>
<seealso><module>mod_dav</module></seealso>

<directivesynopsis>
<name>DavLockDB</name>
<description>Location of the DAV lock database</description>
<syntax>DavLockDB <var>file-path</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>

<usage>
    <p>Use the <directive>DavLockDB</directive> directive to specify
    the full path to the lock database, excluding an extension. If
    the path is not absolute, it will be taken relative to <directive
    module="core">ServerRoot</directive>. The implementation of
    <module>mod_dav_fs</module> uses a SDBM database to track user
    locks.</p>

    <!-- XXX: someone should add that tool to the support directory...
    The utility <code>modules/dav/util/lockview</code> can be used from
    the server to display all locks in a lock database.</p> -->

    <example><title>Example</title>
    <highlight language="config">
      DavLockDB "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 extension name chosen by the server.</p>

</usage>
</directivesynopsis>

</modulesynopsis>

