<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1912960 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

<!--
 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>Implémente le fournisseur filesystem pour
<module>mod_dav</module></description>
<status>Extension</status>
<sourcefile>mod_dav_fs.c</sourcefile>
<identifier>dav_fs_module</identifier>

<summary>
    <p>L'activation de ce module <em>nécessite</em> l'utilisation de
    <module>mod_dav</module>. C'est un module de support pour <module
    >mod_dav</module> et à ce titre, il permet l'accès à des ressources
    situées dans le système de fichiers du serveur. Le nom formel de ce
    fournisseur est <code>filesystem</code>. Les fournisseurs supports
    de <module>mod_dav</module> sont invoqués via la directive
    <directive module="mod_dav">Dav</directive> :</p>

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

    <p>Comme <code>filesystem</code> est le fournisseur par défaut de
    <module>mod_dav</module>, vous pouvez vous contenter d'utiliser la
    valeur <code>On</code> comme argument de Dav.</p>
</summary>
<seealso><module>mod_dav</module></seealso>

<directivesynopsis>
<name>DavLockDB</name>
<description>Chemin de la base de données des verrous DAV</description>
<syntax>DavLockDB <var>chemin fichier</var></syntax>
<default>DavLockDB DEFAULT_REL_STATEDIR/davlockdb</default>
<contextlist><context>server config</context><context>virtual
host</context>
</contextlist>
<compatibility>La valeur par défaut a été ajoutée à partir de la version 2.5.1.
du serveur HTTP Apache.</compatibility>

<usage>
    <p>La directive <directive>DavLockDB</directive> spécifie
    le chemin complet de la base de données des verrous, sans extension.
    Si le chemin n'est pas absolu, il sera considéré comme relatif au
    répertoire défini par la directive <directive
    module="core">ServerRoot</directive>. L'implémentation de
    <module>mod_dav_fs</module> utilise une base de données pour
    surveiller les verrous utilisateurs. Le type de cette base de données peut
    être modifié à l'aide de la directive <directive
    module="mod_dav_fs">DavLockDBType</directive>.</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>Exemple</title>
    <highlight language="config">
      DavLockDB var/DavLock
      </highlight>
    </example>

    <p>Les utilisateur et groupe sous lesquels Apache s'exécute et qui
    sont respectivement définis par les directives <directive
    module="mod_unixd">User</directive> et <directive
    module="mod_unixd">Group</directive> doivent pouvoir écrire dans le
    répertoire qui contient le fichier de la base de données des
    verrous. Pour des raisons de sécurité, il est recommandé de créer un
    répertoire dédié à la base de données des verrous, plutôt que de
    modifier les permissions d'un répertoire existant. Dans l'exemple
    ci-dessus, Apache va créer des fichiers dans le répertoire
    <code>var/</code>, lui-même sous-répertoire du répertoire défini par
    la directive <directive
    module="core">ServerRoot</directive>, avec le nom de base
    <code>DavLock</code> suivi d'une extension choisie par le
    serveur.</p>

    <note><title>Valeur par défaut</title>
    <p>A partir de la version 2.5.1. de httpd, une valeur par défaut a été codée
    en dur et correspond à un chemin relatif par rapport au répertoire des
    fichiers d'état (lui-même défini via la directive <directive
    module="core">DefaultStateDir</directive>).</p>
    </note>

</usage>
</directivesynopsis>

<directivesynopsis>
<name>DavLockDBType</name>
<description>Type de base de données pour le verrou DAV</description>
<syntax>DavLockDBType <var>dbm-type</var></syntax>
<default>DavLockDBType default</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<compatibility>Disponible à partir de la version 2.5.1 du serveur HTTP Apache.</compatibility>
<usage>
    <p>La directive <directive>DavLockDBType</directive> permet de spécifier le
    type du fichier de la base de données pour le verrou DAV. Si la directive
    n'est pas définie, c'est le type de base de données par défaut codé en dur
    <code>apr_dbm</code> qui sera utilisé, ce qui revient à spécifier
    <code>DavLockDBType default</code>.</p>
    
</usage>
</directivesynopsis>

<directivesynopsis>
<name>DavLockDiscovery</name>
<description>Active la découverte de verrou</description>
<syntax>DavLockDiscovery on|off</syntax>
<default>DavLockDiscovery on</default>
<contextlist><context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP Apache.</compatibility>

<usage>
    <p>La directive <directive>DavLockDiscovery</directive> permet de contrôler
    l'activation de la fonctionnalité de découverte de verrou pour la méthode
    <code>PROPFIND</code>. Lorsque cette fonctionnalité est désactivée,
    <code>PROPFIND</code> renvoie toujours une section
    <code>lockdiscovery</code> vide. Les performances seront alors améliorées si
    les clients utilisent intensément <code>PROPFIND</code>.</p>
    <example><title>Exemple</title>
     <highlight language="config">
      DavLockDiscovery off
     </highlight>
    </example>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>DavQuota</name>
<description>Définir des quotas d'utilisation</description>
<syntax>DavQuota Off | None | #bytes</syntax>
<default>DavQuota Off</default>
<contextlist><context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>

<usage>
    <p>La directive <directive>DavQuota</directive> permet de définir un quota
    en octets pour un répertoire donné selon les spécifications de la RFC 4331.
    Elle possède deux valeurs particulières :</p>
        <ul>
            <li><code>Off</code> Les quotas sont désactivés.</li>
	    <li><code>None</code> Aucun quota n'est défini, mais les clients qui
	    le demandent sont informés des espaces disque disponible et
	    utilisé.</li>
        </ul>
    
</usage>
</directivesynopsis>

</modulesynopsis>

