httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jchamp...@apache.org
Subject svn commit: r1778029 [1/2] - in /httpd/httpd/branches/trunk-test-integration: ./ docs/ docs/manual/ docs/manual/howto/ docs/manual/mod/ docs/manual/vhosts/ modules/http2/ server/
Date Mon, 09 Jan 2017 19:10:05 GMT
Author: jchampion
Date: Mon Jan  9 19:10:05 2017
New Revision: 1778029

URL: http://svn.apache.org/viewvc?rev=1778029&view=rev
Log:
Sync-merge with trunk

Modified:
    httpd/httpd/branches/trunk-test-integration/   (props changed)
    httpd/httpd/branches/trunk-test-integration/CHANGES
    httpd/httpd/branches/trunk-test-integration/docs/   (props changed)
    httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.meta
    httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.html.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.fr
    httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.meta
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.h
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.h
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.h
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_mplx.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_mplx.h
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_session.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_stream.c
    httpd/httpd/branches/trunk-test-integration/modules/http2/h2_version.h
    httpd/httpd/branches/trunk-test-integration/server/listen.c

Propchange: httpd/httpd/branches/trunk-test-integration/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan  9 19:10:05 2017
@@ -1,3 +1,3 @@
 /httpd/httpd/branches/revert-ap-ldap:1150158-1150173
 /httpd/httpd/branches/wombat-integration:723609-723841
-/httpd/httpd/trunk:1777251-1777705,1777709
+/httpd/httpd/trunk:1777251-1778028

Modified: httpd/httpd/branches/trunk-test-integration/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/CHANGES?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/CHANGES [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,15 +1,16 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) Don't set SO_REUSEPORT unless ListenCoresBucketsRatio is greater
+     than zero.  [Eric Covener]
+
+  *) mod_http2: streaming of request output now reacts timely to data
+     from other streams becoming available. Same for new incoming requests.
+     [Stefan Eissing]
+     
   *) core: EBCDIC fixes for interim responses with additional headers.
      [Eric Covener]
 
-  *) mod_http2: fix for possible page fault when stream is resumed during 
-     session shutdown. [sidney-j-r-m (github)]
-     
-  *) mod_http2: fix for h2 session ignoring new responses while already
-     open streams continue to have data available. [Stefan Eissing]
-     
   *) mod_remoteip: Add support for PROXY protocol (code donated by Cloudzilla).
      Add ability for PROXY protocol processing to be optional to donated code.
      See also: http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt

Propchange: httpd/httpd/branches/trunk-test-integration/docs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan  9 19:10:05 2017
@@ -1,4 +1,4 @@
 /httpd/httpd/branches/2.4.x/docs:1537109
 /httpd/httpd/branches/revert-ap-ldap/docs:1150158-1150173
 /httpd/httpd/branches/wombat-integration/docs:723609-723841
-/httpd/httpd/trunk/docs:1777251-1777705,1777709
+/httpd/httpd/trunk/docs:1777251-1778028

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.html.fr Mon Jan  9 19:10:05 2017
@@ -29,8 +29,6 @@
 <a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 </div>
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#intro">Introduction</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#configuring">Configurer Apache pour autoriser CGI</a></li>
@@ -50,9 +48,9 @@
     <p>CGI (Common Gateway Interface) définit une méthode d'interaction
     entre un serveur web et des programmes générateurs de contenu
     externes, plus souvent appelés programmes CGI ou scripts CGI. Il
-    s'agit de la méthode la plus simple, et la plus
-    courante, pour ajouter du contenu dynamique à votre site web. Ce
-    document est une introduction à la configuration de CGI sur votre
+    s'agit d'une méthode simple pour ajouter du contenu dynamique à votre site
+    web en utilisant votre langage de programmation préféré.
+    Ce document est une introduction à la configuration de CGI sur votre
     serveur web Apache, et une initiation à l'écriture de programmes
     CGI.</p>
   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1751930:1773244 (outdated) -->
+<!-- English Revision: 1773244 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -47,9 +47,9 @@
     <p>CGI (Common Gateway Interface) définit une méthode d'interaction
     entre un serveur web et des programmes générateurs de contenu
     externes, plus souvent appelés programmes CGI ou scripts CGI. Il
-    s'agit de la méthode la plus simple, et la plus
-    courante, pour ajouter du contenu dynamique à votre site web. Ce
-    document est une introduction à la configuration de CGI sur votre
+    s'agit d'une méthode simple pour ajouter du contenu dynamique à votre site
+    web en utilisant votre langage de programmation préféré.
+    Ce document est une introduction à la configuration de CGI sur votre
     serveur web Apache, et une initiation à l'écriture de programmes
     CGI.</p>
   </section>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/howto/cgi.xml.meta Mon Jan  9 19:10:05 2017
@@ -9,7 +9,7 @@
   <variants>
     <variant>en</variant>
     <variant>es</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
   </variants>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.html.fr Mon Jan  9 19:10:05 2017
@@ -33,8 +33,6 @@
 <a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../tr/mod/core.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fonctionnalités de base du serveur HTTP Apache toujours
 disponibles</td></tr>
 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Core</td></tr></table>
@@ -892,6 +890,11 @@ DESACTIVÉS à partir de la version 2.3.
     Content-Type, et le destinataire devra déterminer lui-même le type
     de médium.</p>
 
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#undefine">UnDefine</a></code></li>
+<li><code class="directive"><a href="#ifdefine">IfDefine</a></code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="define" id="define">Directive</a> <a name="Define" id="Define">Define</a></h2>
@@ -5048,6 +5051,11 @@ du serveur</td></tr>
     changements qu'elle induit sont visibles de toute directive
     ultérieure, au delà de tout bloc VirtualHost.</p>    
 
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#define">Define</a></code></li>
+<li><code class="directive"><a href="#ifdefine">IfDefine</a></code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="usecanonicalname" id="usecanonicalname">Directive</a> <a name="UseCanonicalName" id="UseCanonicalName">UseCanonicalName</a></h2>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1769718:1777163 (outdated) -->
+<!-- English Revision: 1777163 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -843,6 +843,8 @@ DESACTIVÉS à partir de la version 2.3.
     Content-Type, et le destinataire devra déterminer lui-même le type
     de médium.</p>
 </usage>
+<seealso><directive module="core">UnDefine</directive></seealso>
+<seealso><directive module="core">IfDefine</directive></seealso>
 </directivesynopsis>
 
 <directivesynopsis>
@@ -5078,6 +5080,8 @@ host</context></contextlist>
     changements qu'elle induit sont visibles de toute directive
     ultérieure, au delà de tout bloc VirtualHost.</p>    
 </usage>
+<seealso><directive module="core">Define</directive></seealso>
+<seealso><directive module="core">IfDefine</directive></seealso>
 </directivesynopsis>
 
 <directivesynopsis>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/core.xml.meta Mon Jan  9 19:10:05 2017
@@ -10,7 +10,7 @@
     <variant outdated="yes">de</variant>
     <variant>en</variant>
     <variant outdated="yes">es</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">tr</variant>
   </variants>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.html.fr Mon Jan  9 19:10:05 2017
@@ -31,8 +31,6 @@
 <a href="../ja/mod/mod_info.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_info.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Affiche une présentation complète de la configuration du
 serveur</td></tr>
 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
@@ -134,6 +132,8 @@ serveur</td></tr>
             <dd>Une simple liste des modules activés</dd>
         <dt><code>?server</code></dt>
             <dd>Uniquement des informations de base sur le serveur</dd>
+        <dt><code>?providers</code></dt>
+            <dd>Liste des fournisseurs disponbles pour votre serveur</dd>	    
     </dl>
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -141,7 +141,12 @@ serveur</td></tr>
     <p>Si la directive de configuration define
     <code>-DDUMP_CONFIG</code> est utilisée, <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> va
     envoyer la configuration préinterprétée vers <code>stdout</code> au
-    cours du démarrage du serveur. "Préinterprétée" signifie que
+    cours du démarrage du serveur.</p>
+    
+    <pre class="prettyprint lang-sh">httpd -DDUMP_CONFIG -k start</pre>
+
+
+    <p>"Préinterprétée" signifie que
     les directives telles que <code class="directive"><a href="../mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code> et <code class="directive"><a href="../mod/core.html#ifmodule">&lt;IfModule&gt;</a></code> sont évaluées et les variables
     d'environnement remplacées par leurs valeurs. Cela ne représente
     cependant pas la configuration définitive. En particulier, les

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1702012:1774505 (outdated) -->
+<!-- English Revision: 1774505 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -25,7 +25,7 @@
 <modulesynopsis metafile="mod_info.xml.meta">
 
 <name>mod_info</name>
-<description>Affiche une pr&eacute;sentation compl&egrave;te de la configuration du
+<description>Affiche une présentation complète de la configuration du
 serveur</description>
 <status>Extension</status>
 <sourcefile>mod_info.c</sourcefile>
@@ -33,7 +33,7 @@ serveur</description>
 
 <summary>
     <p>Pour activer <module>mod_info</module>, ajoutez les lignes
-    suivantes &agrave; votre fichier <code>httpd.conf</code>.</p>
+    suivantes à votre fichier <code>httpd.conf</code>.</p>
 
     <highlight language="config">
 &lt;Location "/server-info"&gt;
@@ -41,9 +41,9 @@ serveur</description>
 &lt;/Location&gt;
     </highlight>
 
-    <p>Il est recommand&eacute; d'utiliser <module>mod_authz_host</module> &agrave;
-    l'int&eacute;rieur de la section <directive type="section"
-    module="core">Location</directive> afin de restreindre l'acc&egrave;s aux
+    <p>Il est recommandé d'utiliser <module>mod_authz_host</module> à
+    l'intérieur de la section <directive type="section"
+    module="core">Location</directive> afin de restreindre l'accès aux
     informations de configuration de votre serveur :</p>
 
     <highlight language="config">
@@ -53,38 +53,38 @@ serveur</description>
 &lt;/Location&gt;
     </highlight>
 
-    <p>Une fois cette configuration effectu&eacute;e, les informations du
-    serveur sont disponibles &agrave; l'adresse
+    <p>Une fois cette configuration effectuée, les informations du
+    serveur sont disponibles à l'adresse
     <code>http://votre-serveur.com/infos-serveur</code>.</p>
 </summary>
 
-<section id="security"><title>Probl&egrave;mes li&eacute;s &agrave; la s&eacute;curit&eacute;</title>
-    <p>Une fois <module>mod_info</module> charg&eacute; dans le serveur, sa
-    fonctionnalit&eacute; de gestionnaire est disponible dans <em>tous</em> les
+<section id="security"><title>Problèmes liés à la sécurité</title>
+    <p>Une fois <module>mod_info</module> chargé dans le serveur, sa
+    fonctionnalité de gestionnaire est disponible dans <em>tous</em> les
     fichiers de configuration, y compris les fichiers de configuration
-    des r&eacute;pertoires (par exemple <code>.htaccess</code>). Ceci peut
-    avoir des r&eacute;percutions en mati&egrave;re de s&eacute;curit&eacute; pour votre site.</p>
+    des répertoires (par exemple <code>.htaccess</code>). Ceci peut
+    avoir des répercutions en matière de sécurité pour votre site.</p>
 
-    <p>En particulier, l'utilisation de ce module peut conduire &agrave; la
-    divulgation d'informations sensibles &agrave; partir des directives de
-    configuration d'autres modules Apache comme des chemins syst&egrave;mes,
+    <p>En particulier, l'utilisation de ce module peut conduire à la
+    divulgation d'informations sensibles à partir des directives de
+    configuration d'autres modules Apache comme des chemins systèmes,
     des couples nom d'utilisateur/mot de passe, des noms de bases de
-    donn&eacute;es, etc... C'est pourquoi ce module ne doit &ecirc;tre utilis&eacute;
-    <strong>que</strong> dans un environnement sous contr&ocirc;le et toujours
-    avec les plus grandes pr&eacute;cautions.</p>
+    données, etc... C'est pourquoi ce module ne doit être utilisé
+    <strong>que</strong> dans un environnement sous contrôle et toujours
+    avec les plus grandes précautions.</p>
 
-    <p>Il est recommand&eacute; d'utiliser <module>mod_authz_host</module> pour
-    restreindre l'acc&egrave;s aux informations de configuration de votre
+    <p>Il est recommandé d'utiliser <module>mod_authz_host</module> pour
+    restreindre l'accès aux informations de configuration de votre
     serveur.</p>
 
-    <example><title>Contr&ocirc;le d'acc&egrave;s</title>
+    <example><title>Contrôle d'accès</title>
       <highlight language="config">
 &lt;Location "/server-info"&gt;
     SetHandler server-info
-    # Autorisation d'acc&egrave;s depuis le serveur lui-m&ecirc;me
+    # Autorisation d'accès depuis le serveur lui-même
     Require ip 127.0.0.1
 
-    # Autorisation d'acc&egrave;s depuis une station de travail du r&eacute;seau
+    # Autorisation d'accès depuis une station de travail du réseau
 # local
     Require ip 192.168.1.17
 &lt;/Location&gt;
@@ -92,99 +92,107 @@ serveur</description>
     </example>
 </section>
 
-<section id="queries"><title>Filtrage des informations affich&eacute;es</title>
-    <p>Par d&eacute;faut, les informations affich&eacute;es comprennent une liste de
-    tous les modules activ&eacute;s, et pour chaque module, une description des
+<section id="queries"><title>Filtrage des informations affichées</title>
+    <p>Par défaut, les informations affichées comprennent une liste de
+    tous les modules activés, et pour chaque module, une description des
     directives qu'il accepte, les branchements (hooks) qu'il
-    impl&eacute;mente, ainsi que les directives concern&eacute;es dans la
+    implémente, ainsi que les directives concernées dans la
     configuration courante.</p>
 
     <p>Il est possible d'afficher d'autres vues de la configuration en
-    ajoutant un argument &agrave; la requ&ecirc;te <code>infos-serveur</code>. Par
+    ajoutant un argument à la requête <code>infos-serveur</code>. Par
     exemple, <code>http://votre-serveur.com/infos-serveur?config</code>
     affichera toutes les directives de configuration.</p>
 
     <dl>
         <dt><code>?&lt;module-name&gt;</code></dt>
             <dd>Uniquement les informations relatives au module
-	    sp&eacute;cifi&eacute;</dd>
+	    spécifié</dd>
         <dt><code>?config</code></dt>
-            <dd>Uniquement les directives de configuration, non tri&eacute;es
+            <dd>Uniquement les directives de configuration, non triées
 	    par module</dd>
         <dt><code>?hooks</code></dt>
             <dd>Uniquement la liste des branchements (hooks)
-	    auxquels le module est attach&eacute;</dd>
+	    auxquels le module est attaché</dd>
         <dt><code>?list</code></dt>
-            <dd>Une simple liste des modules activ&eacute;s</dd>
+            <dd>Une simple liste des modules activés</dd>
         <dt><code>?server</code></dt>
             <dd>Uniquement des informations de base sur le serveur</dd>
+        <dt><code>?providers</code></dt>
+            <dd>Liste des fournisseurs disponbles pour votre serveur</dd>	    
     </dl>
 </section>
 
-<section id="startup"><title>Affichage de la configuration au d&eacute;marrage</title>
+<section id="startup"><title>Affichage de la configuration au démarrage</title>
     <p>Si la directive de configuration define
-    <code>-DDUMP_CONFIG</code> est utilis&eacute;e, <module>mod_info</module> va
-    envoyer la configuration pr&eacute;interpr&eacute;t&eacute;e vers <code>stdout</code> au
-    cours du d&eacute;marrage du serveur. "Pr&eacute;interpr&eacute;t&eacute;e" signifie que
+    <code>-DDUMP_CONFIG</code> est utilisée, <module>mod_info</module> va
+    envoyer la configuration préinterprétée vers <code>stdout</code> au
+    cours du démarrage du serveur.</p>
+    
+    <highlight language="sh">
+    httpd -DDUMP_CONFIG -k start
+    </highlight>
+
+    <p>"Préinterprétée" signifie que
     les directives telles que <directive type="section"
     module="core">IfDefine</directive> et <directive type="section"
-    module="core">IfModule</directive> sont &eacute;valu&eacute;es et les variables
-    d'environnement remplac&eacute;es par leurs valeurs. Cela ne repr&eacute;sente
-    cependant pas la configuration d&eacute;finitive. En particulier, les
-    fusions ou &eacute;crasementsde d&eacute;finitions en cas de directives multiples ne sont pas
-    repr&eacute;sent&eacute;s.</p>
+    module="core">IfModule</directive> sont évaluées et les variables
+    d'environnement remplacées par leurs valeurs. Cela ne représente
+    cependant pas la configuration définitive. En particulier, les
+    fusions ou écrasementsde définitions en cas de directives multiples ne sont pas
+    représentés.</p>
 
-    <p>Le r&eacute;sultat est &eacute;quivalent &agrave; celui de la requ&ecirc;te
+    <p>Le résultat est équivalent à celui de la requête
     <code>?config</code>.</p>
     
 </section>
 
 <section id="limitations"><title>Limitations connues</title>
     <p><module>mod_info</module> tire ses informations de
-    la configuration interpr&eacute;t&eacute;e, et non du fichier de configuration
-    original. La mani&egrave;re dont l'arbre de configuration interpr&eacute;t&eacute; est
-    cr&eacute;&eacute; induit quelques limitations :</p>
+    la configuration interprétée, et non du fichier de configuration
+    original. La manière dont l'arbre de configuration interprété est
+    créé induit quelques limitations :</p>
     <ul>
-      <li>Les directives qui sont trait&eacute;es imm&eacute;diatement sans &ecirc;tre
-      enregistr&eacute;es dans l'arbre de configuration interpr&eacute;t&eacute; ne sont pas
+      <li>Les directives qui sont traitées immédiatement sans être
+      enregistrées dans l'arbre de configuration interprété ne sont pas
       prises en compte. Celles-ci comprennent <directive
       module="core">ServerRoot</directive>, <directive
       module="mod_so">LoadModule</directive> et <directive
       module="mod_so">LoadFile</directive>.</li>
-      <li>Les directives qui contr&ocirc;lent le fichier de configuration
-      lui-m&ecirc;me, comme <directive module="core">Include</directive>,
+      <li>Les directives qui contrôlent le fichier de configuration
+      lui-même, comme <directive module="core">Include</directive>,
       <directive type="section" module="core">IfModule</directive> et
       <directive type="section" module="core">IfDefine</directive> ne
       sont pas prises en compte, mais les directives de configuration
       incluses le sont.</li>
-      <li>Les commentaires ne sont pas pris en compte (Ce qui peut &ecirc;tre
-      consid&eacute;r&eacute; comme une fonctionnalit&eacute;).</li>
+      <li>Les commentaires ne sont pas pris en compte (Ce qui peut être
+      considéré comme une fonctionnalité).</li>
       <li>Les directives de configuration des fichiers
       <code>.htaccess</code> ne sont pas prises en compte (car elles ne
       font pas partie de la configuration permanente du serveur).</li>
       <li>Les directives de conteneur comme <directive type="section"
-      module="core">Directory</directive> sont affich&eacute;es
+      module="core">Directory</directive> sont affichées
       normalement, mais <module>mod_info</module> est incapable de
-      d&eacute;terminer le num&eacute;ro de ligne de la balise fermante
+      déterminer le numéro de ligne de la balise fermante
       <directive type="section" module="core"
       name="Directory">/Directory</directive>.</li>
-      <li>Les directives g&eacute;n&eacute;r&eacute;es par des modules tiers comme
-      <a href="http://perl.apache.org">mod_perl</a> peuvent ne pas &ecirc;tre
+      <li>Les directives générées par des modules tiers comme
+      <a href="http://perl.apache.org">mod_perl</a> peuvent ne pas être
       prises en compte.</li>
     </ul>
 </section>
 
 <directivesynopsis>
 <name>AddModuleInfo</name>
-<description>Ajoute des donn&eacute;es suppl&eacute;mentaires aux informations de
-module affich&eacute;es par le gestionnaire server-info</description>
-<syntax>AddModuleInfo <var>nom-module</var> <var>cha&icirc;ne</var></syntax>
+<description>Ajoute des données supplémentaires aux informations de
+module affichées par le gestionnaire server-info</description>
+<syntax>AddModuleInfo <var>nom-module</var> <var>chaîne</var></syntax>
 <contextlist><context>server config</context><context>virtual host</context>
 </contextlist>
 
 <usage>
-    <p>Cette directive permet d'afficher le contenu de <var>cha&icirc;ne</var>
-    en tant qu'<strong>Information suppl&eacute;mentaire</strong> interpr&eacute;t&eacute;e
+    <p>Cette directive permet d'afficher le contenu de <var>chaîne</var>
+    en tant qu'<strong>Information supplémentaire</strong> interprétée
     en HTML pour le module <var>nom-module</var>. Exemple :</p>
 
     <highlight language="config">

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_info.xml.meta Mon Jan  9 19:10:05 2017
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
   </variants>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.html.fr Mon Jan  9 19:10:05 2017
@@ -29,8 +29,6 @@
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_remoteip.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="../fr/mod/mod_remoteip.html" title="Français">&nbsp;fr&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Remplace l'adresse IP du client
 pour la requête par l'adresse IP présentée par un mandataire ou un
 répartiteur de charge via les en-têtes de la requête.
@@ -51,6 +49,9 @@ répartiteur de charge via les en-têtes
     l'en-tête de requête configuré via la directive
     <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code>.</p>
 
+    <p>En outre, ce module implémente la partie serveur du <a href="http://blog.haproxy.com/haproxy/proxy-protocol/">protocole PROXY</a>
+    de HAProxy lorsqu'on utilise la directive <code class="directive"><a href="#remoteipproxyprotocol">RemoteIPProxyProtocol</a></code>.</p>
+
     <p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
     utilisée pour la fonctionnalité <code class="directive"><a href="../mod/mod_authz_host.html#require">Require ip</a></code> de
     <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ; elle est aussi affichée par
@@ -84,6 +85,7 @@ répartiteur de charge via les en-têtes
 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
 <li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li>
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
+<li><a href="http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt">Proxy Protocol Spec</a></li>
 <li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -252,14 +254,71 @@ RemoteIPProxiesHeader X-Forwarded-By</pr
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="remoteipproxyprotocol" id="remoteipproxyprotocol">Directive</a> <a name="RemoteIPProxyProtocol" id="RemoteIPProxyProtocol">RemoteIPProxyProtocol</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable, optionally enable or disable the PROXY protocol handling</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive la gestion du protocole PROXY</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPProxyProtocol On|Optional|Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
-</table><p>La documentation de cette directive
-	n'a pas encore t traduite. Veuillez vous reporter  la version
-	en langue anglaise.</p></div>
+</table>
+    <p>La directive <code class="directive">RemoteIPProxyProtocol</code> permet
+    d'activer ou de désactiver la prise en compte et la gestion de l'en-tête de
+    connexion du protocole PROXY. Si elle est définie à <code>On</code>, la
+    demande du client <em>doit</em> envoyer l'en-tête approprié pour chaque
+    nouvelle connexion, sinon cette dernière sera fermée. Si elle est définie à
+    <code>Optional</code>, la demande du client <em>peut</em> envoyer l'en-tête
+    approprié, mais ce n'est pas obligatoire.</p>
+
+    <p>Bien que cette directive peut être définie au niveau de n'importe quel
+    serveur virtuel, il est important de garder à l'esprit que, étant donné que
+    le protocole PROXY est basé sur la connexion et agnostique quant au
+    protocle, son activation/désactivation est basée sur le couple adresse
+    IP/port. Cela signifie que si plusieurs serveurs virtuels à base de nom sont
+    configurés avec le même couple adresse IP/port, et si vous activez le
+    protocole PROXY pour l'un d'entre eux, il le sera aussi pour tous les autres
+    (avec le même couple adresse IP/port). Cela signifie aussi que si vous
+    tentez d'activer le protocole PROXY pour un serveur virtuel et de le
+    désactiver pour un autre, cela ne marchera pas ; dans ce dernier cas, la
+    dernière directive l'emporte sur les autres et une notification sera
+    enregistrée dans le journal pour indiquer les réglages qui ont été annulés.</p>
+
+    <div class="note">Lorsque plusieurs serveurs virtuels avec le même couple
+    adresse IP/port sont configurés avec une combinaison de drapeaux
+    <code>On</code> et <code>Optional</code>, les connexions ne seront pas
+    fermées si l'en-tête approprié n'est pas envoyé. L'activation interviendra
+    alors après la lecture de la requête si bien que les serveurs virtuels
+    configurés avec le drapeau <code>On</code> renverront une erreur 400 Bad
+    Request. Les serveurs virtuels configurés avec le drapeau
+    <code>Optional</code> quant à eux continueront de fonctionner de manière
+    habituelle mais sans remplacer les informations IP du client.</div>
+    
+    <pre class="prettyprint lang-config">Listen 80
+&lt;VirtualHost *:80&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol Optional
+
+    #Les requêtes pour ce serveur virtuel ne doivent pas obligatoirement
+    #contenir d'en-tête du protocole PROXY
+&lt;/VirtualHost&gt;
+
+&lt;VirtualHost *:80&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol On
+
+    #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+    #protocole PROXY. Si ce n'est pas le cas, une erreur 400 sera renvoyée
+&lt;/VirtualHost&gt;
+
+Listen 8080
+&lt;VirtualHost *:8080&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol On
+
+    #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+    #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée
+&lt;/VirtualHost&gt;</pre>
+
+
+</div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="remoteiptrustedproxy" id="remoteiptrustedproxy">Directive</a> <a name="RemoteIPTrustedProxy" id="RemoteIPTrustedProxy">RemoteIPTrustedProxy</a></h2>
 <table class="directive">

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1704683:1776624 (outdated) -->
+<!-- English Revision: 1776624 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -46,6 +46,11 @@ répartiteur de charge via les en-têtes
     l'en-tête de requête configuré via la directive
     <directive module="mod_remoteip">RemoteIPHeader</directive>.</p>
 
+    <p>En outre, ce module implémente la partie serveur du <a
+    href="http://blog.haproxy.com/haproxy/proxy-protocol/">protocole PROXY</a>
+    de HAProxy lorsqu'on utilise la directive <directive
+    module="mod_remoteip">RemoteIPProxyProtocol</directive>.</p>
+
     <p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
     utilisée pour la fonctionnalité <directive
     module="mod_authz_host" name="Require">Require ip</directive> de
@@ -66,6 +71,7 @@ répartiteur de charge via les en-têtes
 <seealso><module>mod_authz_host</module></seealso>
 <seealso><module>mod_status</module></seealso>
 <seealso><module>mod_log_config</module></seealso>
+<seealso><a href="http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt">Proxy Protocol Spec</a></seealso>
 
 <section id="processing"><title>Traitement des adresses distantes</title>
 
@@ -246,6 +252,75 @@ RemoteIPProxiesHeader X-Forwarded-By
 </usage>
 </directivesynopsis>
 
+<directivesynopsis>
+<name>RemoteIPProxyProtocol</name>
+<description>Active ou désactive la gestion du protocole PROXY</description>
+<syntax>RemoteIPProxyProtocol On|Optional|Off</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>RemoteIPProxyProtocol</directive> permet
+    d'activer ou de désactiver la prise en compte et la gestion de l'en-tête de
+    connexion du protocole PROXY. Si elle est définie à <code>On</code>, la
+    demande du client <em>doit</em> envoyer l'en-tête approprié pour chaque
+    nouvelle connexion, sinon cette dernière sera fermée. Si elle est définie à
+    <code>Optional</code>, la demande du client <em>peut</em> envoyer l'en-tête
+    approprié, mais ce n'est pas obligatoire.</p>
+
+    <p>Bien que cette directive peut être définie au niveau de n'importe quel
+    serveur virtuel, il est important de garder à l'esprit que, étant donné que
+    le protocole PROXY est basé sur la connexion et agnostique quant au
+    protocle, son activation/désactivation est basée sur le couple adresse
+    IP/port. Cela signifie que si plusieurs serveurs virtuels à base de nom sont
+    configurés avec le même couple adresse IP/port, et si vous activez le
+    protocole PROXY pour l'un d'entre eux, il le sera aussi pour tous les autres
+    (avec le même couple adresse IP/port). Cela signifie aussi que si vous
+    tentez d'activer le protocole PROXY pour un serveur virtuel et de le
+    désactiver pour un autre, cela ne marchera pas ; dans ce dernier cas, la
+    dernière directive l'emporte sur les autres et une notification sera
+    enregistrée dans le journal pour indiquer les réglages qui ont été annulés.</p>
+
+    <note type="hint">Lorsque plusieurs serveurs virtuels avec le même couple
+    adresse IP/port sont configurés avec une combinaison de drapeaux
+    <code>On</code> et <code>Optional</code>, les connexions ne seront pas
+    fermées si l'en-tête approprié n'est pas envoyé. L'activation interviendra
+    alors après la lecture de la requête si bien que les serveurs virtuels
+    configurés avec le drapeau <code>On</code> renverront une erreur 400 Bad
+    Request. Les serveurs virtuels configurés avec le drapeau
+    <code>Optional</code> quant à eux continueront de fonctionner de manière
+    habituelle mais sans remplacer les informations IP du client.</note>
+    
+    <highlight language="config">
+Listen 80
+&lt;VirtualHost *:80&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol Optional
+
+    #Les requêtes pour ce serveur virtuel ne doivent pas obligatoirement
+    #contenir d'en-tête du protocole PROXY
+&lt;/VirtualHost&gt;
+
+&lt;VirtualHost *:80&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol On
+
+    #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+    #protocole PROXY. Si ce n'est pas le cas, une erreur 400 sera renvoyée
+&lt;/VirtualHost&gt;
+
+Listen 8080
+&lt;VirtualHost *:8080&gt;
+    ServerName www.example.com
+    RemoteIPProxyProtocol On
+
+    #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+    #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée
+&lt;/VirtualHost&gt;
+    </highlight>
+</usage>
+</directivesynopsis>
+
 <directivesynopsis>
 <name>RemoteIPTrustedProxy</name>
 <description>Restreint les adresses IP clients dignes de

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_remoteip.xml.meta Mon Jan  9 19:10:05 2017
@@ -8,6 +8,6 @@
 
   <variants>
     <variant>en</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.html.fr Mon Jan  9 19:10:05 2017
@@ -29,8 +29,6 @@
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_rewrite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="../fr/mod/mod_rewrite.html" title="Français">&nbsp;fr&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Ce module fournit un moteur de réécriture à base de
 règles permettant de réécrire les URLs des requêtes
 à la volée</td></tr>
@@ -1092,6 +1090,24 @@ pour le moteur de réécriture</td></tr>
       version 2.4.16 du serveur HTTP Apache.</p>
       </dd>
 
+      <dt><code>LegacyPrefixDocRoot</code></dt>
+      <dd>
+
+      <p>Avant la version 2.4.26, si une substitution était une URL absolue qui
+      correspondait au serveur virtuel courant, l'URL pouvait être tout d'abord
+      réduite à sa partie chemin, puis enfin en chemin local. Comme l'URL peut
+      être réduite en chemin local, le chemin doit être préfixé par la
+      valeur de la directive DocumentRoot, ce qui permet d'interdire l'accès à
+      un fichier tel que /tmp/myfile suite à une requête pour
+      http://host/file/myfile avec la <code class="directive"><a href="#rewriterule">RewriteRule</a></code> suivante :</p>
+      <pre class="prettyprint lang-config">RewriteRule /file/(.*) http://localhost/tmp/$1</pre>
+
+      <p>Cette option permet de restaurer l'ancien comportement lorsqu'un chemin
+      local obtenu à partir de la réduction d'une URL n'est pas préfixé par la
+      valeur de la directive DocumentRoot. Disponible à partir de la version
+      2.4.26 du serveur HTTP Apache.</p>
+      </dd>
+
       </dl>
 
 </div>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1760590:1776708 (outdated) -->
+<!-- English Revision: 1776708 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -309,6 +309,26 @@ pour le moteur de réécriture</descript
       version 2.4.16 du serveur HTTP Apache.</p>
       </dd>
 
+      <dt><code>LegacyPrefixDocRoot</code></dt>
+      <dd>
+
+      <p>Avant la version 2.4.26, si une substitution était une URL absolue qui
+      correspondait au serveur virtuel courant, l'URL pouvait être tout d'abord
+      réduite à sa partie chemin, puis enfin en chemin local. Comme l'URL peut
+      être réduite en chemin local, le chemin doit être préfixé par la
+      valeur de la directive DocumentRoot, ce qui permet d'interdire l'accès à
+      un fichier tel que /tmp/myfile suite à une requête pour
+      http://host/file/myfile avec la <directive
+      module="mod_rewrite">RewriteRule</directive> suivante :</p>
+      <highlight language="config">
+          RewriteRule /file/(.*) http://localhost/tmp/$1
+      </highlight>
+      <p>Cette option permet de restaurer l'ancien comportement lorsqu'un chemin
+      local obtenu à partir de la réduction d'une URL n'est pas préfixé par la
+      valeur de la directive DocumentRoot. Disponible à partir de la version
+      2.4.26 du serveur HTTP Apache.</p>
+      </dd>
+
       </dl>
 </usage>
 

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/mod/mod_rewrite.xml.meta Mon Jan  9 19:10:05 2017
@@ -8,6 +8,6 @@
 
   <variants>
     <variant>en</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.html.fr Mon Jan  9 19:10:05 2017
@@ -26,8 +26,6 @@
 <p><span>Langues Disponibles: </span><a href="./en/upgrading.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="./fr/upgrading.html" title="Français">&nbsp;fr&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 
   <p>Afin d'assister les utilisateurs lors de leurs opérations de mise à
   jour, nous maintenons un document
@@ -163,22 +161,25 @@ nécessiter une mise à jour des fichier
       <p>Voici quelques exemples de contrôle d'accès avec l'ancienne et
       la nouvelle méthode :</p>
 
-      <p>Dans cet exemple, toutes les requêtes sont rejetées :</p>
+      <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
+      requêtes sont rejetées :</p>
       <div class="example"><h3>version 2.2 :</h3><pre class="prettyprint lang-config">Order deny,allow
 Deny from all</pre>
 </div>
       <div class="example"><h3>version 2.4 :</h3><pre class="prettyprint lang-config">Require all denied</pre>
 </div>
 
-      <p>Dans cet exemple, toutes les requêtes sont acceptées :</p>
+      <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
+      requêtes sont acceptées :</p>
       <div class="example"><h3>version 2.2 :</h3><pre class="prettyprint lang-config">Order allow,deny
 Allow from all</pre>
 </div>
       <div class="example"><h3>version 2.4 :</h3><pre class="prettyprint lang-config">Require all granted</pre>
 </div>
 
-      <p>Dans l'exemple suivant, tous les hôtes du domaine example.org
-      ont l'autorisation d'accès, tous les autres sont rejetés :</p>
+      <p>Dans l'exemple suivant, il n'y a pas d'authentification et tous les
+      hôtes du domaine example.org
+      ont l'autorisation d'accès, tous les autres étant rejetés :</p>
 
       <div class="example"><h3>version 2.2 :</h3><pre class="prettyprint lang-config">Order Deny,Allow
 Deny from all
@@ -239,6 +240,70 @@ access.log - GET /server-status 200 127.
       </p>
     
 
+
+     <p>Dans de nombreuses configurations avec authentification où la directive
+     <code class="directive">Satisfy</code> était définie à sa valeur par défaut
+     <em>ALL</em>, les lignes de configuration qui désactivent le contrôle
+     d'accès basé sur l'hôte sont maintenant omises :</p>
+
+      <div class="example"><h3>Version 2.2 :</h3><pre class="prettyprint lang-config">Order Deny,Allow
+Deny from all
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user</pre>
+</div>
+      <div class="example"><h3>Version 2.4 :</h3><pre class="prettyprint lang-config"># Pas besoin de remplacer les directives Order et deny
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user</pre>
+</div>
+
+     <p>Dans les configurations où l'authentification et le contrôle d'accès se
+     combinaient dans un but précis, les directives de contrôle d'accès doivent
+     être migrées. Dans l'exemple suivant, les requêtes qui correspondent aux
+     <em>deux</em> critères sont acceptées :</p>
+      <div class="example"><h3>Version 2.2 :</h3><pre class="prettyprint lang-config">Order allow,deny
+Deny from all
+# ALL est la valeur par défaut de Satisfy
+Satisfy ALL
+Allow from 127.0.0.1
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user</pre>
+</div>
+      <div class="example"><h3>Version 2.4 :</h3><pre class="prettyprint lang-config">AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+&lt;RequireAll&gt;
+  Require valid-user
+  Require ip 127.0.0.1
+&lt;/RequireAll&gt;</pre>
+</div>
+
+     <p>Dans les configurations où l'authentification et le contrôle d'accès se
+     combinaient dans un but précis, les directives de contrôle d'accès doivent
+     être migrées. Dans l'exemple suivant, les requêtes qui correspondent à
+     <em>au moins un</em> critère sont acceptées :</p>
+      <div class="example"><h3>Version 2.2 :</h3><pre class="prettyprint lang-config">Order allow,deny
+Deny from all
+Satisfy any
+Allow from 127.0.0.1
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user</pre>
+</div>
+      <div class="example"><h3>Version 2.4 :</h3><pre class="prettyprint lang-config">AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+# Implicite : &lt;RequireAny&gt;
+Require valid-user
+Require ip 127.0.0.1</pre>
+</div>
+
     
 
     <h3><a name="config" id="config">Autres changements dans la configuration</a></h3>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1738217:1772763 (outdated) -->
+<!-- English Revision: 1772763 -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -168,7 +168,8 @@ nécessiter une mise à jour des fichier
       <p>Voici quelques exemples de contrôle d'accès avec l'ancienne et
       la nouvelle méthode :</p>
 
-      <p>Dans cet exemple, toutes les requêtes sont rejetées :</p>
+      <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
+      requêtes sont rejetées :</p>
       <example>
         <title>version 2.2 :</title>
         <highlight language="config">
@@ -183,7 +184,8 @@ Deny from all
 	</highlight>
       </example>
 
-      <p>Dans cet exemple, toutes les requêtes sont acceptées :</p>
+      <p>Dans cet exemple, il n'y a pas d'authentification et toutes les
+      requêtes sont acceptées :</p>
       <example>
         <title>version 2.2 :</title>
         <highlight language="config">
@@ -198,8 +200,9 @@ Allow from all
 	</highlight>
       </example>
 
-      <p>Dans l'exemple suivant, tous les hôtes du domaine example.org
-      ont l'autorisation d'accès, tous les autres sont rejetés :</p>
+      <p>Dans l'exemple suivant, il n'y a pas d'authentification et tous les
+      hôtes du domaine example.org
+      ont l'autorisation d'accès, tous les autres étant rejetés :</p>
 
       <example>
         <title>version 2.2 :</title>
@@ -277,6 +280,94 @@ access.log - GET /server-status 200 127.
       </p>
     </section>
 
+
+     <p>Dans de nombreuses configurations avec authentification où la directive
+     <directive>Satisfy</directive> était définie à sa valeur par défaut
+     <em>ALL</em>, les lignes de configuration qui désactivent le contrôle
+     d'accès basé sur l'hôte sont maintenant omises :</p>
+
+      <example>
+        <title>Version 2.2 :</title>
+        <highlight language="config">
+Order Deny,Allow
+Deny from all
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user
+        </highlight>
+      </example>
+      <example>
+        <title>Version 2.4 :</title>
+        <highlight language="config">
+# Pas besoin de remplacer les directives Order et deny
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user
+        </highlight>
+      </example>
+
+     <p>Dans les configurations où l'authentification et le contrôle d'accès se
+     combinaient dans un but précis, les directives de contrôle d'accès doivent
+     être migrées. Dans l'exemple suivant, les requêtes qui correspondent aux
+     <em>deux</em> critères sont acceptées :</p>
+      <example>
+        <title>Version 2.2 :</title>
+        <highlight language="config">
+Order allow,deny
+Deny from all
+# ALL est la valeur par défaut de Satisfy
+Satisfy ALL
+Allow from 127.0.0.1
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user
+        </highlight>
+      </example>
+      <example>
+        <title>Version 2.4 :</title>
+        <highlight language="config">
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+&lt;RequireAll&gt;
+  Require valid-user
+  Require ip 127.0.0.1
+&lt;/RequireAll&gt;
+        </highlight>
+      </example>
+
+     <p>Dans les configurations où l'authentification et le contrôle d'accès se
+     combinaient dans un but précis, les directives de contrôle d'accès doivent
+     être migrées. Dans l'exemple suivant, les requêtes qui correspondent à
+     <em>au moins un</em> critère sont acceptées :</p>
+      <example>
+        <title>Version 2.2 :</title>
+        <highlight language="config">
+Order allow,deny
+Deny from all
+Satisfy any
+Allow from 127.0.0.1
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+Require valid-user
+        </highlight>
+      </example>
+      <example>
+        <title>Version 2.4 :</title>
+        <highlight language="config">
+AuthBasicProvider File
+AuthUserFile /example.com/conf/users.passwd
+AuthName secure
+# Implicite : &lt;RequireAny&gt;
+Require valid-user
+Require ip 127.0.0.1
+        </highlight>
+      </example>
+
     </section>
 
     <section id="config">

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/upgrading.xml.meta Mon Jan  9 19:10:05 2017
@@ -8,6 +8,6 @@
 
   <variants>
     <variant>en</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.html.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.html.fr (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.html.fr Mon Jan  9 19:10:05 2017
@@ -28,8 +28,6 @@
 <a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
-            anglaise pour les changements récents.</div>
 
 
     <p>Ce document vise à expliquer dans le détail comment le serveur

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.fr?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.fr [utf-8] (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.fr [utf-8] Mon Jan  9 19:10:05 2017
@@ -1,7 +1,7 @@
-<?xml version='1.0' ?>
+<?xml version='1.0' encoding="UTF-8"?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1673947:1777061 (outdated) -->
+<!-- English Revision: 1777061 -->
 <!-- French translation by Vincent Deffontaines, review by alain B -->
 <!-- Updated by Lucien Gentis -->
 

Modified: httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.meta?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.meta (original)
+++ httpd/httpd/branches/trunk-test-integration/docs/manual/vhosts/details.xml.meta Mon Jan  9 19:10:05 2017
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant outdated="yes">fr</variant>
+    <variant>fr</variant>
     <variant outdated="yes">ko</variant>
     <variant outdated="yes">tr</variant>
   </variants>

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.c?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.c (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.c Mon Jan  9 19:10:05 2017
@@ -14,6 +14,7 @@
  */
 
 #include <apr_lib.h>
+#include <apr_atomic.h>
 #include <apr_strings.h>
 #include <apr_time.h>
 #include <apr_buckets.h>
@@ -243,25 +244,29 @@ static void leave_yellow(h2_bucket_beam
     }
 }
 
-static void report_consumption(h2_bucket_beam *beam, int force)
+static int report_consumption(h2_bucket_beam *beam)
 {
-    if (force || beam->received_bytes != beam->reported_consumed_bytes) {
-        if (beam->consumed_fn) { 
-            beam->consumed_fn(beam->consumed_ctx, beam, beam->received_bytes
-                              - beam->reported_consumed_bytes);
+    int rv = 0;
+    if (apr_atomic_read32(&beam->cons_ev_pending)) {
+        if (beam->cons_io_cb) { 
+            beam->cons_io_cb(beam->cons_ctx, beam, beam->received_bytes
+                             - beam->cons_bytes_reported);
+            rv = 1;
         }
-        beam->reported_consumed_bytes = beam->received_bytes;
+        beam->cons_bytes_reported = beam->received_bytes;
+        apr_atomic_set32(&beam->cons_ev_pending, 0);
     }
+    return rv;
 }
 
-static void report_production(h2_bucket_beam *beam, int force)
+static void report_prod_io(h2_bucket_beam *beam, int force)
 {
-    if (force || beam->sent_bytes != beam->reported_produced_bytes) {
-        if (beam->produced_fn) { 
-            beam->produced_fn(beam->produced_ctx, beam, beam->sent_bytes
-                              - beam->reported_produced_bytes);
+    if (force || beam->prod_bytes_reported != beam->sent_bytes) {
+        if (beam->prod_io_cb) { 
+            beam->prod_io_cb(beam->prod_ctx, beam, beam->sent_bytes
+                             - beam->prod_bytes_reported);
         }
-        beam->reported_produced_bytes = beam->sent_bytes;
+        beam->prod_bytes_reported = beam->sent_bytes;
     }
 }
 
@@ -322,7 +327,7 @@ static apr_status_t r_wait_space(h2_buck
     while (!beam->aborted && *premain <= 0 
            && (block == APR_BLOCK_READ) && pbl->mutex) {
         apr_status_t status;
-        report_production(beam, 1);
+        report_prod_io(beam, 1);
         status = wait_cond(beam, pbl->mutex);
         if (APR_STATUS_IS_TIMEUP(status)) {
             return status;
@@ -453,7 +458,7 @@ static apr_status_t beam_send_cleanup(vo
     /* sender has gone away, clear up all references to its memory */
     r_purge_sent(beam);
     h2_blist_cleanup(&beam->send_list);
-    report_consumption(beam, 0);
+    report_consumption(beam);
     while (!H2_BPROXY_LIST_EMPTY(&beam->proxies)) {
         h2_beam_proxy *proxy = H2_BPROXY_LIST_FIRST(&beam->proxies);
         H2_BPROXY_REMOVE(proxy);
@@ -634,7 +639,7 @@ void h2_beam_abort(h2_bucket_beam *beam)
             beam->aborted = 1;
             r_purge_sent(beam);
             h2_blist_cleanup(&beam->send_list);
-            report_consumption(beam, 0);
+            report_consumption(beam);
         }
         if (beam->m_cond) {
             apr_thread_cond_broadcast(beam->m_cond);
@@ -650,7 +655,7 @@ apr_status_t h2_beam_close(h2_bucket_bea
     if (enter_yellow(beam, &bl) == APR_SUCCESS) {
         r_purge_sent(beam);
         beam_close(beam);
-        report_consumption(beam, 0);
+        report_consumption(beam);
         leave_yellow(beam, &bl);
     }
     return beam->aborted? APR_ECONNABORTED : APR_SUCCESS;
@@ -851,12 +856,12 @@ apr_status_t h2_beam_send(h2_bucket_beam
                 b = APR_BRIGADE_FIRST(red_brigade);
                 status = append_bucket(beam, b, block, &bl);
             }
-            report_production(beam, force_report);
+            report_prod_io(beam, force_report);
             if (beam->m_cond) {
                 apr_thread_cond_broadcast(beam->m_cond);
             }
         }
-        report_consumption(beam, 0);
+        report_consumption(beam);
         leave_yellow(beam, &bl);
     }
     return status;
@@ -872,6 +877,7 @@ apr_status_t h2_beam_receive(h2_bucket_b
     int transferred = 0;
     apr_status_t status = APR_SUCCESS;
     apr_off_t remain = readbytes;
+    int transferred_buckets = 0;
     
     /* Called from the green thread to take buckets from the beam */
     if (enter_yellow(beam, &bl) == APR_SUCCESS) {
@@ -968,6 +974,8 @@ transfer:
             APR_BUCKET_REMOVE(bred);
             H2_BLIST_INSERT_TAIL(&beam->hold_list, bred);
             beam->received_bytes += bred->length;
+            ++transferred_buckets;
+            
             if (bgreen) {
                 APR_BRIGADE_INSERT_TAIL(bb, bgreen);
                 remain -= bgreen->length;
@@ -1000,6 +1008,13 @@ transfer:
             }
         }
 
+        if (transferred_buckets > 0) {
+           apr_atomic_set32(&beam->cons_ev_pending, 1);
+           if (beam->cons_ev_cb) { 
+               beam->cons_ev_cb(beam->cons_ctx, beam);
+            }
+        }
+        
         if (beam->closed 
             && (!beam->recv_buffer || APR_BRIGADE_EMPTY(beam->recv_buffer))
             && H2_BLIST_EMPTY(&beam->send_list)) {
@@ -1042,25 +1057,25 @@ leave:
 }
 
 void h2_beam_on_consumed(h2_bucket_beam *beam, 
-                         h2_beam_io_callback *cb, void *ctx)
+                         h2_beam_ev_callback *ev_cb,
+                         h2_beam_io_callback *io_cb, void *ctx)
 {
     h2_beam_lock bl;
-    
     if (enter_yellow(beam, &bl) == APR_SUCCESS) {
-        beam->consumed_fn = cb;
-        beam->consumed_ctx = ctx;
+        beam->cons_ev_cb = ev_cb;
+        beam->cons_io_cb = io_cb;
+        beam->cons_ctx = ctx;
         leave_yellow(beam, &bl);
     }
 }
 
 void h2_beam_on_produced(h2_bucket_beam *beam, 
-                         h2_beam_io_callback *cb, void *ctx)
+                         h2_beam_io_callback *io_cb, void *ctx)
 {
     h2_beam_lock bl;
-    
     if (enter_yellow(beam, &bl) == APR_SUCCESS) {
-        beam->produced_fn = cb;
-        beam->produced_ctx = ctx;
+        beam->prod_io_cb = io_cb;
+        beam->prod_ctx = ctx;
         leave_yellow(beam, &bl);
     }
 }
@@ -1173,3 +1188,16 @@ int h2_beam_no_files(void *ctx, h2_bucke
     return 0;
 }
 
+int h2_beam_report_consumption(h2_bucket_beam *beam)
+{
+    if (apr_atomic_read32(&beam->cons_ev_pending)) {
+        h2_beam_lock bl;
+        if (enter_yellow(beam, &bl) == APR_SUCCESS) {
+            int rv = report_consumption(beam);
+            leave_yellow(beam, &bl);
+            return rv;
+        }
+    }
+    return 0;
+}
+

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.h?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.h (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_bucket_beam.h Mon Jan  9 19:10:05 2017
@@ -154,6 +154,7 @@ typedef apr_status_t h2_beam_mutex_enter
 
 typedef void h2_beam_io_callback(void *ctx, h2_bucket_beam *beam,
                                  apr_off_t bytes);
+typedef void h2_beam_ev_callback(void *ctx, h2_bucket_beam *beam);
 
 typedef struct h2_beam_proxy h2_beam_proxy;
 typedef struct {
@@ -205,12 +206,17 @@ struct h2_bucket_beam {
     h2_beam_mutex_enter *m_enter;
     struct apr_thread_cond_t *m_cond;
     
-    apr_off_t reported_consumed_bytes; /* amount of bytes reported as consumed */
-    h2_beam_io_callback *consumed_fn;
-    void *consumed_ctx;
-    apr_off_t reported_produced_bytes; /* amount of bytes reported as produced */
-    h2_beam_io_callback *produced_fn;
-    void *produced_ctx;
+    apr_uint32_t cons_ev_pending;     /* != 0, consumer event pending */
+    apr_off_t cons_bytes_reported;    /* amount of bytes reported as consumed */
+    h2_beam_ev_callback *cons_ev_cb;
+    h2_beam_io_callback *cons_io_cb;
+    void *cons_ctx;
+
+    apr_uint32_t prod_ev_pending;     /* != 0, producer event pending */
+    apr_off_t prod_bytes_reported;    /* amount of bytes reported as produced */
+    h2_beam_io_callback *prod_io_cb;
+    void *prod_ctx;
+
     h2_beam_can_beam_callback *can_beam_fn;
     void *can_beam_ctx;
 };
@@ -336,26 +342,38 @@ apr_size_t h2_beam_buffer_size_get(h2_bu
  * amount of bytes that have been consumed by the receiver, since the
  * last callback invocation or reset.
  * @param beam the beam to set the callback on
- * @param cb   the callback or NULL
+ * @param ev_cb the callback or NULL, called when bytes are consumed
+ * @param io_cb the callback or NULL, called on sender with bytes consumed
  * @param ctx  the context to use in callback invocation
  * 
- * Call from the sender side, callbacks invoked on sender side.
+ * Call from the sender side, io callbacks invoked on sender side, ev callback
+ * from any side.
  */
 void h2_beam_on_consumed(h2_bucket_beam *beam, 
-                         h2_beam_io_callback *cb, void *ctx);
+                         h2_beam_ev_callback *ev_cb,
+                         h2_beam_io_callback *io_cb, void *ctx);
+
+/**
+ * Call any registered consumed handler, if any changes have happened
+ * since the last invocation. 
+ * @return !=0 iff a handler has been called
+ *
+ * Needs to be invoked from the sending side.
+ */
+int h2_beam_report_consumption(h2_bucket_beam *beam);
 
 /**
  * Register a callback to be invoked on the receiver side with the
  * amount of bytes that have been produces by the sender, since the
  * last callback invocation or reset.
  * @param beam the beam to set the callback on
- * @param cb   the callback or NULL
+ * @param io_cb the callback or NULL, called on receiver with bytes produced
  * @param ctx  the context to use in callback invocation
  * 
- * Call from the receiver side, callbacks invoked on receiver side.
+ * Call from the receiver side, callbacks invoked on either side.
  */
 void h2_beam_on_produced(h2_bucket_beam *beam, 
-                         h2_beam_io_callback *cb, void *ctx);
+                         h2_beam_io_callback *io_cb, void *ctx);
 
 void h2_beam_on_file_beam(h2_bucket_beam *beam, 
                           h2_beam_can_beam_callback *cb, void *ctx);

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.c?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.c (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.c Mon Jan  9 19:10:05 2017
@@ -64,7 +64,6 @@ static h2_config defconf = {
     0,                      /* copy files across threads */
     NULL,                   /* push list */
     0,                      /* early hints, http status 103 */
-    2,                      /* TLS records flush count */
 };
 
 void h2_config_init(apr_pool_t *pool)
@@ -100,7 +99,6 @@ static void *h2_config_create(apr_pool_t
     conf->copy_files           = DEF_VAL;
     conf->push_list            = NULL;
     conf->early_hints          = DEF_VAL;
-    conf->tls_flush_count      = DEF_VAL;
     return conf;
 }
 
@@ -153,7 +151,6 @@ static void *h2_config_merge(apr_pool_t
         n->push_list        = add->push_list? add->push_list : base->push_list;
     }
     n->early_hints          = H2_CONFIG_GET(add, base, early_hints);
-    n->tls_flush_count      = H2_CONFIG_GET(add, base, tls_flush_count);
     return n;
 }
 
@@ -211,8 +208,6 @@ apr_int64_t h2_config_geti64(const h2_co
             return H2_CONFIG_GET(conf, &defconf, copy_files);
         case H2_CONF_EARLY_HINTS:
             return H2_CONFIG_GET(conf, &defconf, early_hints);
-        case H2_CONF_TLS_FLUSH_COUNT:
-            return H2_CONFIG_GET(conf, &defconf, tls_flush_count);
         default:
             return DEF_VAL;
     }
@@ -510,15 +505,6 @@ static const char *h2_conf_set_tls_coold
     return NULL;
 }
 
-static const char *h2_conf_set_tls_flush_count(cmd_parms *parms,
-                                               void *arg, const char *value)
-{
-    h2_config *cfg = (h2_config *)h2_config_sget(parms->server);
-    cfg->tls_flush_count = (int)apr_atoi64(value);
-    (void)arg;
-    return NULL;
-}
-
 static const char *h2_conf_set_push_diary_size(cmd_parms *parms,
                                                void *arg, const char *value)
 {
@@ -657,8 +643,6 @@ const command_rec h2_cmds[] = {
                   RSRC_CONF, "number of bytes on TLS connection before doing max writes"),
     AP_INIT_TAKE1("H2TLSCoolDownSecs", h2_conf_set_tls_cooldown_secs, NULL,
                   RSRC_CONF, "seconds of idle time on TLS before shrinking writes"),
-    AP_INIT_TAKE1("H2TLSFlushCount", h2_conf_set_tls_flush_count, NULL,
-                  RSRC_CONF, "number of max TLS records before output is flushed"),
     AP_INIT_TAKE1("H2Push", h2_conf_set_push, NULL,
                   RSRC_CONF, "off to disable HTTP/2 server push"),
     AP_INIT_TAKE23("H2PushPriority", h2_conf_add_push_priority, NULL,

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.h?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.h (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_config.h Mon Jan  9 19:10:05 2017
@@ -42,7 +42,6 @@ typedef enum {
     H2_CONF_PUSH_DIARY_SIZE,
     H2_CONF_COPY_FILES,
     H2_CONF_EARLY_HINTS,
-    H2_CONF_TLS_FLUSH_COUNT,
 } h2_config_var_t;
 
 struct apr_hash_t;
@@ -80,7 +79,6 @@ typedef struct h2_config {
     int copy_files;               /* if files shall be copied vs setaside on output */
     apr_array_header_t *push_list;/* list of h2_push_res configurations */
     int early_hints;              /* support status code 103 */
-    int tls_flush_count;          /* max # of TLS records until output flushed */
 } h2_config;
 
 

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.c?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.c (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.c Mon Jan  9 19:10:05 2017
@@ -132,9 +132,7 @@ apr_status_t h2_conn_io_init(h2_conn_io
     io->output         = apr_brigade_create(c->pool, c->bucket_alloc);
     io->is_tls         = h2_h2_is_tls(c);
     io->buffer_output  = io->is_tls;
-    io->pass_threshold = (apr_size_t)h2_config_geti64(cfg, H2_CONF_STREAM_MAX_MEM);
-    io->flush_factor   = h2_config_geti(cfg, H2_CONF_TLS_FLUSH_COUNT);
-    io->speed_factor   = 1.0;
+    io->flush_threshold = (apr_size_t)h2_config_geti64(cfg, H2_CONF_STREAM_MAX_MEM);
 
     if (io->is_tls) {
         /* This is what we start with, 
@@ -257,7 +255,6 @@ static void check_write_size(h2_conn_io
         /* long time not written, reset write size */
         io->write_size = WRITE_SIZE_INITIAL;
         io->bytes_written = 0;
-        io->speed_factor = 1.0;
         ap_log_cerror(APLOG_MARK, APLOG_TRACE4, 0, io->c,
                       "h2_conn_io(%ld): timeout write size reset to %ld", 
                       (long)io->c->id, (long)io->write_size);
@@ -282,7 +279,7 @@ static apr_status_t pass_output(h2_conn_
     apr_status_t status;
     
     append_scratch(io);
-    if (flush) {
+    if (flush && !io->is_flushed) {
         b = apr_bucket_flush_create(c->bucket_alloc);
         APR_BRIGADE_INSERT_TAIL(bb, b);
     }
@@ -300,6 +297,9 @@ static apr_status_t pass_output(h2_conn_
     if (status == APR_SUCCESS) {
         io->bytes_written += (apr_size_t)bblen;
         io->last_write = apr_time_now();
+        if (flush) {
+            io->is_flushed = 1;
+        }
     }
     apr_brigade_cleanup(bb);
 
@@ -325,35 +325,26 @@ static apr_status_t pass_output(h2_conn_
     return status;
 }
 
+int h2_conn_io_needs_flush(h2_conn_io *io)
+{
+    if (!io->is_flushed) {
+        apr_off_t len = h2_brigade_mem_size(io->output);
+        if (len > io->flush_threshold) {
+            return 1;
+        }
+        /* if we do not exceed flush length due to memory limits,
+         * we want at least flush when we have that amount of data. */
+        apr_brigade_length(io->output, 0, &len);
+        return len > (4 * io->flush_threshold);
+    }
+    return 0;
+}
+
 apr_status_t h2_conn_io_flush(h2_conn_io *io)
 {
-    apr_time_t start = 0;
     apr_status_t status;
-    
-    if (io->needs_flush > 0) {
-        /* this is a buffer size triggered flush, let's measure how
-         * long it takes and try to adjust our speed factor accordingly */
-        start = apr_time_now();
-    }
     status = pass_output(io, 1, NULL);
     check_write_size(io);
-    if (start && status == APR_SUCCESS) {
-        apr_time_t duration = apr_time_now() - start;
-        if (duration < apr_time_from_msec(100)) {
-            io->speed_factor *= 1.0 + ((apr_time_from_msec(100) - duration) 
-                                        / (float)apr_time_from_msec(100));
-            ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, io->c,
-                          "h2_conn_io(%ld): incr speed_factor to %f",
-                          io->c->id, io->speed_factor);
-        }
-        else if (duration > apr_time_from_msec(200)) {
-            io->speed_factor *= 0.5;
-            ap_log_cerror(APLOG_MARK, APLOG_TRACE3, status, io->c,
-                          "h2_conn_io(%ld): decr speed_factor to %f",
-                          io->c->id, io->speed_factor);
-        }
-    }
-    io->needs_flush = -1;
     return status;
 }
 
@@ -367,6 +358,10 @@ apr_status_t h2_conn_io_write(h2_conn_io
     apr_status_t status = APR_SUCCESS;
     apr_size_t remain;
     
+    if (length > 0) {
+        io->is_flushed = 0;
+    }
+    
     if (io->buffer_output) {
         while (length > 0) {
             remain = assure_scratch_space(io);
@@ -396,7 +391,6 @@ apr_status_t h2_conn_io_write(h2_conn_io
     else {
         status = apr_brigade_write(io->output, NULL, NULL, data, length);
     }
-    io->needs_flush = -1;
     return status;
 }
 
@@ -405,6 +399,10 @@ apr_status_t h2_conn_io_pass(h2_conn_io
     apr_bucket *b;
     apr_status_t status = APR_SUCCESS;
     
+    if (!APR_BRIGADE_EMPTY(bb)) {
+        io->is_flushed = 0;
+    }
+
     while (!APR_BRIGADE_EMPTY(bb) && status == APR_SUCCESS) {
         b = APR_BRIGADE_FIRST(bb);
         
@@ -447,21 +445,6 @@ apr_status_t h2_conn_io_pass(h2_conn_io
             APR_BRIGADE_INSERT_TAIL(io->output, b);
         }
     }
-    io->needs_flush = -1;
     return status;
 }
 
-int h2_conn_io_needs_flush(h2_conn_io *io)
-{
-    if (io->needs_flush < 0) {
-        apr_off_t len;
-        apr_brigade_length(io->output, 0, &len);
-        if (len > (io->pass_threshold * io->flush_factor * io->speed_factor)) {
-            /* don't want to keep too much around */
-            io->needs_flush = 1;
-            return 1;
-        }
-        io->needs_flush = 0;
-    }
-    return 0;
-}

Modified: httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.h?rev=1778029&r1=1778028&r2=1778029&view=diff
==============================================================================
--- httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.h (original)
+++ httpd/httpd/branches/trunk-test-integration/modules/http2/h2_conn_io.h Mon Jan  9 19:10:05 2017
@@ -39,10 +39,8 @@ typedef struct {
     apr_int64_t bytes_written;
     
     int buffer_output;
-    int needs_flush;
-    apr_size_t pass_threshold;
-    float flush_factor;
-    float speed_factor;
+    apr_size_t flush_threshold;
+    unsigned int is_flushed : 1;
     
     char *scratch;
     apr_size_t ssize;
@@ -76,6 +74,9 @@ apr_status_t h2_conn_io_write_eoc(h2_con
  */
 apr_status_t h2_conn_io_flush(h2_conn_io *io);
 
+/**
+ * Check if the buffered amount of data needs flushing.
+ */
 int h2_conn_io_needs_flush(h2_conn_io *io);
 
 #endif /* defined(__mod_h2__h2_conn_io__) */



Mime
View raw message