You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2016/11/14 10:26:34 UTC

svn commit: r1769588 [10/17] - in /httpd/httpd/branches/2.4.x-openssl-1.1.0-compat: ./ docs/conf/ docs/manual/ docs/manual/howto/ docs/manual/mod/ docs/manual/platform/ docs/manual/programs/ docs/manual/rewrite/ include/ modules/ modules/aaa/ modules/a...

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/rewrite/vhosts.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/rewrite/vhosts.xml.fr?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/rewrite/vhosts.xml.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/rewrite/vhosts.xml.fr Mon Nov 14 10:26:31 2016
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?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: 1673563 -->
+<!-- English Revision: 1760976 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -25,50 +25,50 @@
 <manualpage metafile="vhosts.xml.meta">
   <parentdocument href="./">Rewrite</parentdocument>
 
-<title>H&eacute;bergement virtuel de masse avec mod_rewrite</title>
+<title>Hébergement virtuel de masse avec mod_rewrite</title>
 
 <summary>
 
-<p>Ce document est un compl&eacute;ment &agrave; la <a
-href="../mod/mod_rewrite.html">documentation de r&eacute;f&eacute;rence</a> du module
-<module>mod_rewrite</module>. Il d&eacute;crit comment cr&eacute;er des serveurs
-virtuels dynamiquement configur&eacute;s en utilisant
+<p>Ce document est un complément à la <a
+href="../mod/mod_rewrite.html">documentation de référence</a> du module
+<module>mod_rewrite</module>. Il décrit comment créer des serveurs
+virtuels dynamiquement configurés en utilisant
 <module>mod_rewrite</module>.</p>
 
 <note type="warning">L'utilisation de mod_rewrite n'est pas la meilleure
-m&eacute;thode pour configurer des serveurs virtuels. Vous devez dans un
-premier temps tenter de r&eacute;soudre votre probl&egrave;me via ces  <a
-href="../vhosts/mass.html">d'autres m&eacute;thodes</a> avant d'avoir
-recours &agrave; mod_rewrite. Voir aussi le document <a
-href="avoid.html#vhosts">Comment &eacute;viter l'utilisation de
+méthode pour configurer des serveurs virtuels. Vous devez dans un
+premier temps tenter de résoudre votre problème via ces  <a
+href="../vhosts/mass.html">d'autres méthodes</a> avant d'avoir
+recours à mod_rewrite. Voir aussi le document <a
+href="avoid.html#vhosts">Comment éviter l'utilisation de
 mod_rewrite</a>.</note>
 
 
 </summary>
 <seealso><a href="../mod/mod_rewrite.html">Documentation du module</a></seealso>
-<seealso><a href="intro.html">Introduction &agrave; mod_rewrite</a></seealso>
+<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
 <seealso><a href="remapping.html">Redirection et remise en
 correspondance</a></seealso>
-<seealso><a href="access.html">Contr&ocirc;le d'acc&egrave;s</a></seealso>
+<seealso><a href="access.html">Contrôle d'accès</a></seealso>
 <!--<seealso><a href="vhosts.html">Serveurs virtuels</a></seealso>-->
 <seealso><a href="proxy.html">Serveurs mandataires</a></seealso>
 <seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Techniques avanc&eacute;es</a></seealso>
+<seealso><a href="advanced.html">Techniques avancées</a></seealso>
 <seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
 
 <section id="per-hostname">
 
-  <title>Serveurs virtuels pour des noms d'h&ocirc;tes arbitraires</title>
+  <title>Serveurs virtuels pour des noms d'hôtes arbitraires</title>
 
   <dl>
     <dt>Description :</dt>
 
     <dd>
-    <p>Nous voulons cr&eacute;er automatiquement un serveur virtuel pour tout
-    nom d'h&ocirc;te qui peut &ecirc;tre r&eacute;solu dans notre domaine, sans avoir &agrave;
-    cr&eacute;er de nouvelle section VirtualHost.</p>
+    <p>Nous voulons créer automatiquement un serveur virtuel pour tout
+    nom d'hôte qui peut être résolu dans notre domaine, sans avoir à
+    créer de nouvelle section VirtualHost.</p>
 
-    <p>Dans cet exemple, nous supposons que nous utilisons le nom d'h&ocirc;te
+    <p>Dans cet exemple, nous supposons que nous utilisons le nom d'hôte
     <code>www.<strong>SITE</strong>.example.com</code> pour chaque
     utilisateur, et que nous servons leur contenu depuis
     <code>/home/<strong>SITE</strong>/www</code>.</p>
@@ -90,31 +90,31 @@ RewriteRule   "^(.*)" "/home/<strong>%1<
 <dt>Discussion</dt>
     <dd>
 
-    <note type="warning">Vous devez v&eacute;rifier le bon fonctionnement de la
-    r&eacute;solution DNS - Apache ne g&egrave;re pas la r&eacute;solution de nom. Vous
-    devrez cr&eacute;er soit des enregistrements CNAME pour chaque nom d'h&ocirc;te,
-    soit un enregistrement DNS avec caract&egrave;res g&eacute;n&eacute;riques. La cr&eacute;ation
+    <note type="warning">Vous devez vérifier le bon fonctionnement de la
+    résolution DNS - Apache ne gère pas la résolution de nom. Vous
+    devrez créer soit des enregistrements CNAME pour chaque nom d'hôte,
+    soit un enregistrement DNS avec caractères génériques. La création
     des enregistrements DNS est en dehors du sujet de ce document.</note>
 
 <p>La directive RewriteMap interne <code>tolower</code> permet de
-s'assurer que les noms d'h&ocirc;tes utilis&eacute;s seront tous en minuscules, de
-fa&ccedil;on &agrave; &eacute;viter toute ambiguit&eacute; dans la structure des r&eacute;pertoires qui
-doit &ecirc;tre cr&eacute;&eacute;e.</p>
-
-<p>Les contenus des parenth&egrave;ses utilis&eacute;es dans une directive <directive
-module="mod_rewrite">RewriteCond</directive> sont enregistr&eacute;s dans les
-r&eacute;f&eacute;rences arri&egrave;res <code>%1</code>, <code>%2</code>, etc..., alors que
-les contenus des parenth&egrave;ses utilis&eacute;es dans une directive <directive
+s'assurer que les noms d'hôtes utilisés seront tous en minuscules, de
+façon à éviter toute ambiguité dans la structure des répertoires qui
+doit être créée.</p>
+
+<p>Les contenus des parenthèses utilisées dans une directive <directive
+module="mod_rewrite">RewriteCond</directive> sont enregistrés dans les
+références arrières <code>%1</code>, <code>%2</code>, etc..., alors que
+les contenus des parenthèses utilisées dans une directive <directive
 module="mod_rewrite">RewriteRule</directive> le sont dans les
-r&eacute;f&eacute;rences arri&egrave;res <code>$1</code>, <code>$2</code>, etc...</p>
+références arrières <code>$1</code>, <code>$2</code>, etc...</p>
 
 <p>
-Comme c'est le cas pour de nombreuses techniques discut&eacute;es dans ce
-document, mod_rewrite n'est vraiment pas la meilleure m&eacute;thode pour
-accomplir cette t&acirc;che. Vous devez plut&ocirc;t vous tourner vers
-<module>mod_vhost_alias</module>, car ce dernier sera bien plus &agrave; m&ecirc;me
-de g&eacute;rer tout ce qui est au del&agrave; du domaine des fichiers statiques,
-comme les contenus dynamiques et la r&eacute;solution des alias.
+Comme c'est le cas pour de nombreuses techniques discutées dans ce
+document, mod_rewrite n'est vraiment pas la meilleure méthode pour
+accomplir cette tâche. Vous devez plutôt vous tourner vers
+<module>mod_vhost_alias</module>, car ce dernier sera bien plus à même
+de gérer tout ce qui est au delà du domaine des fichiers statiques,
+comme les contenus dynamiques et la résolution des alias.
 </p>
     </dd>
   </dl>
@@ -125,24 +125,24 @@ comme les contenus dynamiques et la r&ea
 virtuels via <module>mod_rewrite</module></title>
 
     <p>Cet extrait du fichier <code>httpd.conf</code> permet d'obtenir
-    le m&ecirc;me r&eacute;sultat que <a href="#per-hostname">le premier exemple</a>.
-    La premi&egrave;re moiti&eacute; est tr&egrave;s similaire &agrave; la partie correspondante
-    ci-dessus, except&eacute; quelques modifications requises &agrave; des fins de
-    compatibilit&eacute; ascendante et pour faire en sorte que la partie
-    <code>mod_rewrite</code> fonctionne correctement ; la seconde moiti&eacute;
+    le même résultat que <a href="#per-hostname">le premier exemple</a>.
+    La première moitié est très similaire à la partie correspondante
+    ci-dessus, excepté quelques modifications requises à des fins de
+    compatibilité ascendante et pour faire en sorte que la partie
+    <code>mod_rewrite</code> fonctionne correctement ; la seconde moitié
     configure <code>mod_rewrite</code> pour effectuer le travail
     proprement dit.</p>
 
-    <p>Comme <code>mod_rewrite</code> s'ex&eacute;cute avant tout autre module
+    <p>Comme <code>mod_rewrite</code> s'exécute avant tout autre module
     de traduction d'URI (comme <code>mod_alias</code>), il faut lui
-    ordonner explicitement d'ignorer toute URL susceptible d'&ecirc;tre
-    trait&eacute;e par ces autres modules. Et comme ces r&egrave;gles auraient sinon
-    court-circuit&eacute; toute directive <code>ScriptAlias</code>, nous devons
-    faire en sorte que <code>mod_rewrite</code> d&eacute;clare explicitement
+    ordonner explicitement d'ignorer toute URL susceptible d'être
+    traitée par ces autres modules. Et comme ces règles auraient sinon
+    court-circuité toute directive <code>ScriptAlias</code>, nous devons
+    faire en sorte que <code>mod_rewrite</code> déclare explicitement
     ces correspondances.</p>
 
 <highlight language="config">
-# extrait le nom de serveur de l'en-t&ecirc;te Host:
+# extrait le nom de serveur de l'en-tête Host:
 UseCanonicalName Off
 
 # journaux dissociables
@@ -150,18 +150,18 @@ LogFormat "%{Host}i %h %l %u %t \"%r\" %
 CustomLog "logs/access_log" vcommon
 
 &lt;Directory "/www/hosts"&gt;
-    # ExecCGI est n&eacute;cessaire ici car on ne peut pas forcer l'ex&eacute;cution
-    # des CGI &agrave; la mani&egrave;re de ScriptAlias
+    # ExecCGI est nécessaire ici car on ne peut pas forcer l'exécution
+    # des CGI à la manière de ScriptAlias
     Options FollowSymLinks ExecCGI
 &lt;/Directory&gt;
 
 RewriteEngine On
 
-# un nom de serveur extrait d'un en-t&ecirc;te Host: peut &ecirc;tre dans n'importe
+# un nom de serveur extrait d'un en-tête Host: peut être dans n'importe
 # quelle casse
 
 ## on s'occupe tout d'abord des documents normaux :<br />
-# permet &agrave; Alias "/icons/" de fonctionner - r&eacute;p&eacute;ter pour les autres
+# permet à Alias "/icons/" de fonctionner - répéter pour les autres
 RewriteCond  "%{REQUEST_URI}"  "!^/icons/"
 # permet aux CGIs de fonctionner
 RewriteCond  "%{REQUEST_URI}"  "!^/cgi-bin/"
@@ -177,15 +177,15 @@ RewriteRule  "^/(.*)$" "/www/hosts/${low
 </section>
 
 <section id="xtra-conf"><title>Utilisation d'un fichier de configuration
-du serveur virtuel s&eacute;par&eacute;</title>
+du serveur virtuel séparé</title>
 
-    <p>Cette construction utilise des fonctionnalit&eacute;s plus avanc&eacute;es de
+    <p>Cette construction utilise des fonctionnalités plus avancées de
     <module>mod_rewrite</module> pour effectuer la traduction depuis le
-    serveur virtuel vers la racine des documents, &agrave; partir d'un fichier
-    de configuration s&eacute;par&eacute;. Elle est plus souple mais n&eacute;cessite une
-    configuration plus compliqu&eacute;e.</p>
+    serveur virtuel vers la racine des documents, à partir d'un fichier
+    de configuration séparé. Elle est plus souple mais nécessite une
+    configuration plus compliquée.</p>
 
-    <p>Le fichier <code>vhost.map</code> devrait ressembler &agrave; ceci :</p>
+    <p>Le fichier <code>vhost.map</code> devrait ressembler à ceci :</p>
 
 <example>
 www.client-1.example.com  /www/clients/1<br />
@@ -194,28 +194,28 @@ www.client-2.example.com  /www/clients/2
 www.client-N.example.com  /www/clients/N<br />
 </example>
 
-    <p>On doit ajouter &agrave; <code>httpd.conf</code> :</p>
+    <p>On doit ajouter à <code>httpd.conf</code> :</p>
 
 <highlight language="config">
 RewriteEngine on
 
 RewriteMap   lowercase  int:tolower
 
-# d&eacute;finit le fichier de correspondances
+# définit le fichier de correspondances
 RewriteMap   vhost      "txt:/www/conf/vhost.map"
 
 # on s'occupe des alias comme ci-dessus
 RewriteCond  "%{REQUEST_URI}"               "!^/icons/"
 RewriteCond  "%{REQUEST_URI}"               "!^/cgi-bin/"
 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
-# on effectue ici la remise en correspondance &agrave; base de fichier
+# on effectue ici la remise en correspondance à base de fichier
 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
 RewriteRule  "^/(.*)$"                      "%1/docs/$1"
 
 RewriteCond  "%{REQUEST_URI}"               "^/cgi-bin/"
 RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
 RewriteCond  "${vhost:%1}"                  "^(/.*)$"
-RewriteRule  "^/(.*)$"                      "%1/cgi-bin/$1" [H=cgi-script]
+RewriteRule  "^/cgi-bin/(.*)$"              "%1/cgi-bin/$1" [H=cgi-script]
 </highlight>
 
 </section>

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.en?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.en (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.en Mon Nov 14 10:26:31 2016
@@ -543,7 +543,7 @@ other words, order of merging is importa
     Require all granted
 &lt;/Location&gt;
 
-# Woops!  This &lt;Directory&gt; section will have no effect
+# Whoops!  This &lt;Directory&gt; section will have no effect
 &lt;Directory "/"&gt;
     &lt;RequireAll&gt;
         Require all granted

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.fr?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.html.fr Mon Nov 14 10:26:31 2016
@@ -402,7 +402,7 @@ sites qui correspondent � l'URL sp�cif
 acc�d� via le serveur mandataire du module <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
 Par exemple, la configuration suivante n'autorisera qu'un sous-ensemble de
 clients � acc�der au site <code>www.example.com</code> en passant par le serveur
-mandataire :.</p>
+mandataire :</p>
 
 <pre class="prettyprint lang-config">&lt;Proxy "http://www.example.com/*"&gt;
     Require host yournetwork.example.com

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml Mon Nov 14 10:26:31 2016
@@ -609,7 +609,7 @@ other words, order of merging is importa
     Require all granted
 &lt;/Location&gt;
 
-# Woops!  This &lt;Directory&gt; section will have no effect
+# Whoops!  This &lt;Directory&gt; section will have no effect
 &lt;Directory "/"&gt;
     &lt;RequireAll&gt;
         Require all granted

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.fr?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.fr Mon Nov 14 10:26:31 2016
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1731194 -->
+<!-- English Revision: 1755978 -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -451,7 +451,7 @@ sites qui correspondent à l'URL sp�\ufffd
 accédé via le serveur mandataire du module <module>mod_proxy</module>.
 Par exemple, la configuration suivante n'autorisera qu'un sous-ensemble de
 clients à accéder au site <code>www.example.com</code> en passant par le serveur
-mandataire :.</p>
+mandataire :</p>
 
 <highlight language="config">
 &lt;Proxy "http://www.example.com/*"&gt;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ja
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ja?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ja [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ja [utf-8] Mon Nov 14 10:26:31 2016
@@ -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.ja.xsl"?>
-<!-- English Revision: 420990:1731194 (outdated) -->
+<!-- English Revision: 420990:1755978 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ko
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ko?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ko [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.ko [euc-kr] Mon Nov 14 10:26:31 2016
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1731194 (outdated) -->
+<!-- English Revision: 105989:1755978 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.tr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.tr?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.tr [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/sections.xml.tr [utf-8] Mon Nov 14 10:26:31 2016
@@ -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.tr.xsl"?>
-<!-- English Revision: 1731194 -->
+<!-- English Revision: 1755978 -->
 <!-- =====================================================
  Translated by: Nilg�n Belma Bug�ner <nilgun belgeler.gen.tr>
    Reviewed by: Orhan Berent <berent belgeler.gen.tr>

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_mmn.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_mmn.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_mmn.h Mon Nov 14 10:26:31 2016
@@ -477,6 +477,16 @@
  *                          extended proxy_worker_shared.
  * 20120211.60 (2.4.21-dev) Add dav_get_provider_name.
  * 20120211.61 (2.4.21-dev) Add ap_cstr_casecmp[n]() - placeholder of apr_ fns
+ * 20120211.62 (2.4.24-dev) Add childtags to dav_error.
+ * 20120211.63 (2.4.24-dev) Add dav_begin_multistatus, dav_send_one_response,
+ *                          dav_finish_multistatus, dav_send_multistatus,
+ *                          dav_handle_err, dav_failed_proppatch,
+ *                          dav_success_proppatch.
+ * 20120211.64 (2.4.24-dev) Add ap_proxy_check_backend(), and tmp_bb to struct
+ *                          proxy_conn_rec.
+ * 20120211.65 (2.4.24-dev) Add ap_check_pipeline().
+ * 20120211.66 (2.4.24-dev) Rename ap_proxy_check_backend() to
+ *                          ap_proxy_check_connection().
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -484,7 +494,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20120211
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 61                   /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 66                   /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_config.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_config.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_config.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_config.h Mon Nov 14 10:26:31 2016
@@ -50,7 +50,7 @@ enum cmd_how {
     RAW_ARGS,           /**< cmd_func parses command line itself */
     TAKE1,              /**< one argument only */
     TAKE2,              /**< two arguments only */
-    ITERATE,            /**< one argument, occuring multiple times
+    ITERATE,            /**< one argument, occurring multiple times
                          * (e.g., IndexIgnore)
                          */
     ITERATE2,           /**< two arguments, 2nd occurs multiple times
@@ -812,7 +812,7 @@ AP_DECLARE(apr_status_t) ap_cfg_getc(cha
 /**
  * Detach from open ap_configfile_t, calling the close handler
  * @param cfp The file to close
- * @return 1 on sucess, 0 on failure
+ * @return 1 on success, 0 on failure
  */
 AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp);
 

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_log.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_log.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_log.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_log.h Mon Nov 14 10:26:31 2016
@@ -141,7 +141,7 @@ extern "C" {
  * Constant to store module_index for the current file.
  * Objects with static storage duration are set to NULL if not
  * initialized explicitly. This means that if aplog_module_index
- * is not initalized using the ::APLOG_USE_MODULE or the
+ * is not initialized using the ::APLOG_USE_MODULE or the
  * ::AP_DECLARE_MODULE macro, we can safely fall back to
  * use ::APLOG_NO_MODULE. This variable will usually be optimized away.
  */

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_request.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_request.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_request.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_request.h Mon Nov 14 10:26:31 2016
@@ -218,7 +218,7 @@ AP_DECLARE(void) ap_clear_auth_internal(
  * Determine whether access control hooks will be run for all internal
  * requests with URIs distinct from that of the initial request, or only
  * those for which different configurations apply than those which applied
- * to the initial request.  To accomodate legacy external modules which
+ * to the initial request.  To accommodate legacy external modules which
  * may expect access control hooks to be run for all internal requests
  * with distinct URIs, this is the default behaviour unless all access
  * control hooks and authentication and authorization providers are
@@ -337,6 +337,21 @@ void ap_process_async_request(request_re
  */
 AP_DECLARE(void) ap_die(int type, request_rec *r);
 
+/**
+ * Check whether a connection is still established and has data available,
+ * optionnaly consuming blank lines ([CR]LF).
+ * @param c The current connection
+ * @param bb The brigade to filter
+ * @param max_blank_lines Max number of blank lines to consume, or zero
+ *                        to consider them as data (single read).
+ * @return APR_SUCCESS: connection established with data available,
+ *         APR_EAGAIN: connection established and empty,
+ *         APR_NOTFOUND: too much blank lines,
+ *         APR_E*: connection/general error.
+ */
+AP_DECLARE(apr_status_t) ap_check_pipeline(conn_rec *c, apr_bucket_brigade *bb,
+                                           unsigned int max_blank_lines);
+
 /* Hooks */
 
 /**

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/httpd.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/httpd.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/httpd.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/httpd.h Mon Nov 14 10:26:31 2016
@@ -309,7 +309,7 @@ extern "C" {
 
 /**
  * APR_HAS_LARGE_FILES introduces the problem of spliting sendfile into
- * mutiple buckets, no greater than MAX(apr_size_t), and more granular
+ * multiple buckets, no greater than MAX(apr_size_t), and more granular
  * than that in case the brigade code/filters attempt to read it directly.
  * ### 16mb is an invention, no idea if it is reasonable.
  */
@@ -354,7 +354,7 @@ extern "C" {
  * use by modules.  The difference between #AP_DECLARE and
  * #AP_DECLARE_NONSTD is that the latter is required for any functions
  * which use varargs or are used via indirect function call.  This
- * is to accomodate the two calling conventions in windows dlls.
+ * is to accommodate the two calling conventions in windows dlls.
  */
 # define AP_DECLARE_NONSTD(type)    type
 #endif

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/util_ldap.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/util_ldap.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/util_ldap.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/util_ldap.h Mon Nov 14 10:26:31 2016
@@ -254,7 +254,7 @@ APR_DECLARE_OPTIONAL_FN(util_ldap_connec
  * @param dn The first DN to compare.
  * @param reqdn The DN to compare the first DN to.
  * @param compare_dn_on_server Flag to determine whether the DNs should be checked using
- *                             LDAP calls or with a direct string comparision. A direct
+ *                             LDAP calls or with a direct string comparison. A direct
  *                             string comparison is faster, but not as accurate - false
  *                             negative comparisons are possible.
  * @tip Two DNs can be equal and still fail a string comparison. Eg "dc=example,dc=com"

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/NWGNUmakefile
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/NWGNUmakefile?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/NWGNUmakefile (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/NWGNUmakefile Mon Nov 14 10:26:31 2016
@@ -22,7 +22,7 @@ endif
 endif
 endif
 
-# If USE_STDSOCKETS is defined we allways build mod_ssl
+# If USE_STDSOCKETS is defined we always build mod_ssl
 ifdef USE_STDSOCKETS
 WITH_SSL = 1
 endif

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_allowmethods.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_allowmethods.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_allowmethods.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_allowmethods.c Mon Nov 14 10:26:31 2016
@@ -26,7 +26,7 @@
  * This module makes it easy to restrict what HTTP methods can be ran against
  * a server.
  *
- * It provides one comand:
+ * It provides one command:
  *    AllowMethods
  * This command takes a list of HTTP methods to allow.
  *

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_basic.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_basic.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_basic.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_basic.c Mon Nov 14 10:26:31 2016
@@ -381,7 +381,7 @@ static int authenticate_basic_user(reque
 
         apr_table_unset(r->notes, AUTHN_PROVIDER_NAME_NOTE);
 
-        /* Something occured. Stop checking. */
+        /* Something occurred. Stop checking. */
         if (auth_result != AUTH_USER_NOT_FOUND) {
             break;
         }

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_digest.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_digest.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_digest.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_digest.c Mon Nov 14 10:26:31 2016
@@ -1404,7 +1404,7 @@ static authn_status get_hash(request_rec
 
         apr_table_unset(r->notes, AUTHN_PROVIDER_NAME_NOTE);
 
-        /* Something occured.  Stop checking. */
+        /* Something occurred.  Stop checking. */
         if (auth_result != AUTH_USER_NOT_FOUND) {
             break;
         }
@@ -1746,7 +1746,7 @@ static int authenticate_digest_user(requ
              * works out ok, since we can hash the header and get the same
              * result.  however, the uri from the request line won't match
              * the uri Authorization component since the header lacks the
-             * query string, leaving us incompatable with a (broken) MSIE.
+             * query string, leaving us incompatible with a (broken) MSIE.
              *
              * the workaround is to fake a query string match if in the proper
              * environment - BrowserMatch MSIE, for example.  the cool thing

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_form.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_form.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_form.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_auth_form.c Mon Nov 14 10:26:31 2016
@@ -798,7 +798,7 @@ static int check_authn(request_rec * r,
 
         apr_table_unset(r->notes, AUTHN_PROVIDER_NAME_NOTE);
 
-        /* Something occured. Stop checking. */
+        /* Something occurred. Stop checking. */
         if (auth_result != AUTH_USER_NOT_FOUND) {
             break;
         }

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authn_dbd.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authn_dbd.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authn_dbd.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authn_dbd.c Mon Nov 14 10:26:31 2016
@@ -34,11 +34,6 @@ typedef struct {
     const char *realm;
 } authn_dbd_conf;
 
-typedef struct {
-    const char *label;
-    const char *query;
-} authn_dbd_rec;
-
 /* optional function - look it up once in post_config */
 static ap_dbd_t *(*authn_dbd_acquire_fn)(request_rec*) = NULL;
 static void (*authn_dbd_prepare_fn)(server_rec*, const char*, const char*) = NULL;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_core.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_core.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_core.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_core.c Mon Nov 14 10:26:31 2016
@@ -976,7 +976,7 @@ static const char *all_parse_config(cmd_
     /*
      * If the argument to the 'all' provider is 'granted' then just let
      * everybody in. This would be equivalent to the previous syntax of
-     * 'allow from all'. If the argument is 'denied' we reject everbody,
+     * 'allow from all'. If the argument is 'denied' we reject everybody,
      * which is equivalent to 'deny from all'.
      */
     if (strcasecmp(require_line, "granted") == 0) {

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_groupfile.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_groupfile.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_groupfile.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/aaa/mod_authz_groupfile.c Mon Nov 14 10:26:31 2016
@@ -18,7 +18,7 @@
  *
  *          AuthGroupFile standard /path/to/file
  *
- * and the presense of a
+ * and the presence of a
  *
  *         require group <list-of-groups>
  *

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/netware/mod_nw_ssl.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/netware/mod_nw_ssl.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/netware/mod_nw_ssl.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/netware/mod_nw_ssl.c Mon Nov 14 10:26:31 2016
@@ -778,7 +778,7 @@ static int nwssl_post_config(apr_pool_t
 
     for (sl = ap_seclisteners; sl != NULL; sl = sl->next) {
         /* If we find a pre-existing listen socket and it has already been
-           created, then no neeed to go any further, just reuse it. */
+           created, then no need to go any further, just reuse it. */
         if (((sl->fd = find_secure_listener(sl)) >= 0) && (sl->used)) {
             continue;
         }

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.c Mon Nov 14 10:26:31 2016
@@ -27,7 +27,7 @@
  * It is a complete implementation of the ISAPI 2.0 specification,
  * except for "Microsoft extensions" to the API which provide
  * asynchronous I/O.  It is further extended to include additional
- * "Microsoft extentions" through IIS 5.0, with some deficiencies
+ * "Microsoft extensions" through IIS 5.0, with some deficiencies
  * where one-to-one mappings don't exist.
  *
  * Refer to /manual/mod/mod_isapi.html for additional details on
@@ -152,7 +152,7 @@ static const char *isapi_cmd_cachefile(c
         return NULL;
     }
 
-    /* Load the extention as cached (with null request_rec) */
+    /* Load the extension as cached (with null request_rec) */
     rv = isapi_lookup(cmd->pool, cmd->server, NULL, fspec, &isa);
     if (rv != APR_SUCCESS) {
         ap_log_error(APLOG_MARK, APLOG_WARNING, rv, cmd->server, APLOGNO(02106)
@@ -753,7 +753,7 @@ static apr_ssize_t send_response_header(
         /* Well... either there is no dwHttpStatusCode or it's HTTP_OK.
          * In any case, we don't have a good status to return yet...
          * Perhaps the one we came in with will be better. Let's use it,
-         * if we were given one (note this is a pendantic case, it would
+         * if we were given one (note this is a pedantic case, it would
          * normally be covered above unless the scan script code unset
          * the r->status). Should there be a check here as to whether
          * we are setting a valid response code?

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/arch/win32/mod_isapi.h Mon Nov 14 10:26:31 2016
@@ -136,7 +136,7 @@ typedef struct HSE_SEND_HEADER_EX_INFO {
 #define HSE_IO_NODELAY 4096
 
 /* The Completion function prototype.  This callback may be fixed with
- * the HSE_REQ_IO_COMPLETION ServerSupportFunction call, or overriden
+ * the HSE_REQ_IO_COMPLETION ServerSupportFunction call, or overridden
  * for the HSE_REQ_TRANSMIT_FILE call.
  */
 typedef void (APR_THREAD_FUNC *PFN_HSE_IO_COMPLETION)

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache.c Mon Nov 14 10:26:31 2016
@@ -1277,7 +1277,7 @@ static apr_status_t cache_save_filter(ap
 
     /* It's safe to cache the response.
      *
-     * There are two possiblities at this point:
+     * There are two possibilities at this point:
      * - cache->handle == NULL. In this case there is no previously
      * cached entity anywhere on the system. We must create a brand
      * new entity and store the response in it.

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cluster/README.heartbeat
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cluster/README.heartbeat?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cluster/README.heartbeat (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cluster/README.heartbeat Mon Nov 14 10:26:31 2016
@@ -14,7 +14,7 @@ Consuming:
   Every 1 second, this module generates a single multicast UDP packet,
   containing the number of busy and idle workers.
   
-  The packet is a simple ASCII format, similiar to GET query parameters in UDP.
+  The packet is a simple ASCII format, similar to GET query parameters in UDP.
   
   An Example packet:
     v=1&ready=75&busy=0

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_macro.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_macro.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_macro.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_macro.c Mon Nov 14 10:26:31 2016
@@ -377,7 +377,7 @@ static char *substitute(char *buf,
 }
 
 /*
-  find first occurence of args in buf.
+  find first occurrence of args in buf.
   in case of conflict, the LONGEST argument is kept. (could be the FIRST?).
   returns the pointer and the whichone found, or NULL.
 */
@@ -464,7 +464,7 @@ static const char *process_content(apr_p
     /* for each line of the macro body */
     for (i = 0; i < contents->nelts; i++) {
         const char *errmsg;
-        /* copy the line and subtitute macro parameters */
+        /* copy the line and substitute macro parameters */
         strncpy(line, ((char **) contents->elts)[i], MAX_STRING_LEN - 1);
         errmsg = substitute_macro_args(line, MAX_STRING_LEN,
                                        macro, replacements, used);
@@ -916,7 +916,7 @@ static int macro_pre_config(apr_pool_t *
 /*
   macro module commands.
   configuration file macro stuff
-  they are processed immediatly when found, hence the EXEC_ON_READ.
+  they are processed immediately when found, hence the EXEC_ON_READ.
 */
 static const command_rec macro_cmds[] = {
     AP_INIT_RAW_ARGS(BEGIN_MACRO, macro_section, NULL, EXEC_ON_READ | OR_ALL,

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_so.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_so.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_so.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/core/mod_so.c Mon Nov 14 10:26:31 2016
@@ -193,7 +193,7 @@ static const char *load_module(cmd_parms
     const char *error;
 
     /* we need to setup this value for dummy to make sure that we don't try
-     * to add a non-existant tree into the build when we return to
+     * to add a non-existent tree into the build when we return to
      * execute_now.
      */
     *(ap_directive_t **)dummy = NULL;
@@ -321,7 +321,7 @@ static const char *load_module(cmd_parms
 
 /*
  * This implements the LoadFile directive and loads an arbitrary
- * shared object file into the adress space of the server process.
+ * shared object file into the address space of the server process.
  */
 
 static const char *load_file(cmd_parms *cmd, void *dummy, const char *filename)

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.c Mon Nov 14 10:26:31 2016
@@ -364,16 +364,33 @@ static int dav_error_response_tag(reques
         ap_rputs(" xmlns:m=\"http://apache.org/dav/xmlns\"", r);
     }
 
-    if (err->namespace != NULL) {
-        ap_rprintf(r,
-                   " xmlns:C=\"%s\">" DEBUG_CR
-                   "<C:%s/>" DEBUG_CR,
-                   err->namespace, err->tagname);
+    if (err->childtags) {
+        if (err->namespace != NULL) {
+            ap_rprintf(r,
+                    " xmlns:C=\"%s\">" DEBUG_CR
+                    "<C:%s>%s</C:%s>" DEBUG_CR,
+                    err->namespace,
+                    err->tagname, err->childtags, err->tagname);
+        }
+        else {
+            ap_rprintf(r,
+                    ">" DEBUG_CR
+                    "<D:%s>%s</D:%s>" DEBUG_CR,
+                    err->tagname, err->childtags, err->tagname);
+        }
     }
     else {
-        ap_rprintf(r,
-                   ">" DEBUG_CR
-                   "<D:%s/>" DEBUG_CR, err->tagname);
+        if (err->namespace != NULL) {
+            ap_rprintf(r,
+                    " xmlns:C=\"%s\">" DEBUG_CR
+                    "<C:%s/>" DEBUG_CR,
+                    err->namespace, err->tagname);
+        }
+        else {
+            ap_rprintf(r,
+                    ">" DEBUG_CR
+                    "<D:%s/>" DEBUG_CR, err->tagname);
+        }
     }
 
     /* here's our mod_dav specific tag: */
@@ -421,30 +438,31 @@ static const char *dav_xml_escape_uri(ap
 
 /* Write a complete RESPONSE object out as a <DAV:repsonse> xml
    element.  Data is sent into brigade BB, which is auto-flushed into
-   OUTPUT filter stack.  Use POOL for any temporary allocations.
+   the output filter stack for request R.  Use POOL for any temporary
+   allocations.
 
    [Presumably the <multistatus> tag has already been written;  this
    routine is shared by dav_send_multistatus and dav_stream_response.]
 */
-static void dav_send_one_response(dav_response *response,
-                                  apr_bucket_brigade *bb,
-                                  ap_filter_t *output,
-                                  apr_pool_t *pool)
+DAV_DECLARE(void) dav_send_one_response(dav_response *response,
+                                        apr_bucket_brigade *bb,
+                                        request_rec *r,
+                                        apr_pool_t *pool)
 {
     apr_text *t = NULL;
 
     if (response->propresult.xmlns == NULL) {
-      ap_fputs(output, bb, "<D:response>");
+      ap_fputs(r->output_filters, bb, "<D:response>");
     }
     else {
-      ap_fputs(output, bb, "<D:response");
+      ap_fputs(r->output_filters, bb, "<D:response");
       for (t = response->propresult.xmlns; t; t = t->next) {
-        ap_fputs(output, bb, t->text);
+        ap_fputs(r->output_filters, bb, t->text);
       }
-      ap_fputc(output, bb, '>');
+      ap_fputc(r->output_filters, bb, '>');
     }
 
-    ap_fputstrs(output, bb,
+    ap_fputstrs(r->output_filters, bb,
                 DEBUG_CR "<D:href>",
                 dav_xml_escape_uri(pool, response->href),
                 "</D:href>" DEBUG_CR,
@@ -455,7 +473,7 @@ static void dav_send_one_response(dav_re
        * default to 500 Internal Server Error if first->status
        * is not a known (or valid) status code.
        */
-      ap_fputstrs(output, bb,
+      ap_fputstrs(r->output_filters, bb,
                   "<D:status>HTTP/1.1 ",
                   ap_get_status_line(response->status),
                   "</D:status>" DEBUG_CR,
@@ -464,7 +482,7 @@ static void dav_send_one_response(dav_re
     else {
       /* assume this includes <propstat> and is quoted properly */
       for (t = response->propresult.propstats; t; t = t->next) {
-        ap_fputs(output, bb, t->text);
+        ap_fputs(r->output_filters, bb, t->text);
       }
     }
 
@@ -473,14 +491,14 @@ static void dav_send_one_response(dav_re
        * We supply the description, so we know it doesn't have to
        * have any escaping/encoding applied to it.
        */
-      ap_fputstrs(output, bb,
+      ap_fputstrs(r->output_filters, bb,
                   "<D:responsedescription>",
                   response->desc,
                   "</D:responsedescription>" DEBUG_CR,
                   NULL);
     }
 
-    ap_fputs(output, bb, "</D:response>" DEBUG_CR);
+    ap_fputs(r->output_filters, bb, "</D:response>" DEBUG_CR);
 }
 
 
@@ -488,9 +506,9 @@ static void dav_send_one_response(dav_re
    response and write <multistatus> tag into BB, destined for
    R->output_filters.  Use xml NAMESPACES in initial tag, if
    non-NULL. */
-static void dav_begin_multistatus(apr_bucket_brigade *bb,
-                                  request_rec *r, int status,
-                                  apr_array_header_t *namespaces)
+DAV_DECLARE(void) dav_begin_multistatus(apr_bucket_brigade *bb,
+                                        request_rec *r, int status,
+                                        apr_array_header_t *namespaces)
 {
     /* Set the correct status and Content-Type */
     r->status = status;
@@ -513,8 +531,8 @@ static void dav_begin_multistatus(apr_bu
 }
 
 /* Finish a multistatus response started by dav_begin_multistatus: */
-static apr_status_t dav_finish_multistatus(request_rec *r,
-                                           apr_bucket_brigade *bb)
+DAV_DECLARE(apr_status_t) dav_finish_multistatus(request_rec *r,
+                                                 apr_bucket_brigade *bb)
 {
     apr_bucket *b;
 
@@ -528,9 +546,9 @@ static apr_status_t dav_finish_multistat
     return ap_pass_brigade(r->output_filters, bb);
 }
 
-static void dav_send_multistatus(request_rec *r, int status,
-                                 dav_response *first,
-                                 apr_array_header_t *namespaces)
+DAV_DECLARE(void) dav_send_multistatus(request_rec *r, int status,
+                                       dav_response *first,
+                                       apr_array_header_t *namespaces)
 {
     apr_pool_t *subpool;
     apr_bucket_brigade *bb = apr_brigade_create(r->pool,
@@ -542,7 +560,7 @@ static void dav_send_multistatus(request
 
     for (; first != NULL; first = first->next) {
       apr_pool_clear(subpool);
-      dav_send_one_response(first, bb, r->output_filters, subpool);
+      dav_send_one_response(first, bb, r, subpool);
     }
     apr_pool_destroy(subpool);
 
@@ -583,8 +601,8 @@ static void dav_log_err(request_rec *r,
  *   - repos_hooks->copy_resource
  *   - vsn_hooks->update
  */
-static int dav_handle_err(request_rec *r, dav_error *err,
-                          dav_response *response)
+DAV_DECLARE(int) dav_handle_err(request_rec *r, dav_error *err,
+                                dav_response *response)
 {
     /* log the errors */
     dav_log_err(r, err, APLOG_ERR);
@@ -1149,7 +1167,7 @@ static void dav_stream_response(dav_walk
         resp.propresult = *propstats;
     }
 
-    dav_send_one_response(&resp, ctx->bb, ctx->r->output_filters, pool);
+    dav_send_one_response(&resp, ctx->bb, ctx->r, pool);
 }
 
 
@@ -2156,8 +2174,8 @@ static int dav_method_propfind(request_r
     return DONE;
 }
 
-static apr_text * dav_failed_proppatch(apr_pool_t *p,
-                                      apr_array_header_t *prop_ctx)
+DAV_DECLARE(apr_text *) dav_failed_proppatch(apr_pool_t *p,
+                                             apr_array_header_t *prop_ctx)
 {
     apr_text_header hdr = { 0 };
     int i = prop_ctx->nelts;
@@ -2217,7 +2235,8 @@ static apr_text * dav_failed_proppatch(a
     return hdr.first;
 }
 
-static apr_text * dav_success_proppatch(apr_pool_t *p, apr_array_header_t *prop_ctx)
+DAV_DECLARE(apr_text *) dav_success_proppatch(apr_pool_t *p,
+                                              apr_array_header_t *prop_ctx)
 {
     apr_text_header hdr = { 0 };
     int i = prop_ctx->nelts;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/mod_dav.h Mon Nov 14 10:26:31 2016
@@ -130,6 +130,8 @@ typedef struct dav_error {
 
     struct dav_error *prev;     /* previous error (in stack) */
 
+    const char *childtags;      /* error-tag may have children */
+
 } dav_error;
 
 /*
@@ -183,6 +185,23 @@ DAV_DECLARE(dav_error*) dav_push_error(a
 */
 DAV_DECLARE(dav_error*) dav_join_error(dav_error* dest, dav_error* src);
 
+typedef struct dav_response dav_response;
+
+/*
+** dav_handle_err()
+**
+** Handle the standard error processing. <err> must be non-NULL.
+**
+** <response> is set by the following:
+**   - dav_validate_request()
+**   - dav_add_lock()
+**   - repos_hooks->remove_resource
+**   - repos_hooks->move_resource
+**   - repos_hooks->copy_resource
+**   - vsn_hooks->update
+*/
+DAV_DECLARE(int) dav_handle_err(request_rec *r, dav_error *err,
+                                dav_response *response);
 
 /* error ID values... */
 
@@ -418,7 +437,7 @@ typedef struct dav_locktoken dav_locktok
 ** the sub-pools are a bit more general and heavyweight than these buffers.
 */
 
-/* buffer for reuse; can grow to accomodate needed size */
+/* buffer for reuse; can grow to accommodate needed size */
 typedef struct
 {
     apr_size_t alloc_len;       /* how much has been allocated */
@@ -436,7 +455,7 @@ DAV_DECLARE(void) dav_set_bufsize(apr_po
 DAV_DECLARE(void) dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf,
                                   const char *str);
 
-/* check that the buffer can accomodate <extra_needed> more bytes */
+/* check that the buffer can accommodate <extra_needed> more bytes */
 DAV_DECLARE(void) dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf,
                                     apr_size_t extra_needed);
 
@@ -467,7 +486,7 @@ typedef struct
 } dav_get_props_result;
 
 /* holds the contents of a <response> element */
-typedef struct dav_response
+struct dav_response
 {
     const char *href;           /* always */
     const char *desc;           /* optional description at <response> level */
@@ -478,7 +497,7 @@ typedef struct dav_response
     int status;
 
     struct dav_response *next;
-} dav_response;
+};
 
 typedef struct
 {
@@ -515,6 +534,42 @@ typedef enum {
 #define DAV_STYLE_RFC822        2
 #define DAV_TIMEBUF_SIZE        30
 
+/* Write a complete RESPONSE object out as a <DAV:response> xml
+ * element.  Data is sent into brigade BB, which is auto-flushed into
+ * the output filter stack for request R.  Use POOL for any temporary
+ * allocations.
+ *
+ * [Presumably the <multistatus> tag has already been written;  this
+ * routine is shared by dav_send_multistatus and dav_stream_response.]
+ */
+DAV_DECLARE(void) dav_send_one_response(dav_response *response,
+                                        apr_bucket_brigade *bb,
+                                        request_rec *r,
+                                        apr_pool_t *pool);
+
+/* Factorized helper function: prep request_rec R for a multistatus
+ * response and write <multistatus> tag into BB, destined for
+ * R->output_filters.  Use xml NAMESPACES in initial tag, if
+ * non-NULL.
+ */
+DAV_DECLARE(void) dav_begin_multistatus(apr_bucket_brigade *bb,
+                                        request_rec *r, int status,
+                                        apr_array_header_t *namespaces);
+
+/* Finish a multistatus response started by dav_begin_multistatus: */
+DAV_DECLARE(apr_status_t) dav_finish_multistatus(request_rec *r,
+                                                 apr_bucket_brigade *bb);
+
+/* Send a multistatus response */
+DAV_DECLARE(void) dav_send_multistatus(request_rec *r, int status,
+                                       dav_response *first,
+                                       apr_array_header_t *namespaces);
+
+DAV_DECLARE(apr_text *) dav_failed_proppatch(apr_pool_t *p,
+                                             apr_array_header_t *prop_ctx);
+DAV_DECLARE(apr_text *) dav_success_proppatch(apr_pool_t *p,
+                                              apr_array_header_t *prop_ctx);
+
 DAV_DECLARE(int) dav_get_depth(request_rec *r, int def_depth);
 
 DAV_DECLARE(int) dav_validate_root(const apr_xml_doc *doc,
@@ -867,7 +922,7 @@ struct dav_hooks_liveprop
 **
 ** This structure is used as a standard way to determine if a particular
 ** property is a live property. Its use is not part of the mandated liveprop
-** interface, but can be used by liveprop providers in conjuction with the
+** interface, but can be used by liveprop providers in conjunction with the
 ** utility routines below.
 **
 ** spec->name == NULL is the defined end-sentinel for a list of specs.
@@ -2314,7 +2369,7 @@ struct dav_hooks_vsn
     ** exist. Any <DAV:mkworkspace> element is passed to the provider
     ** in the "doc" structure; it may be empty.
     **
-    ** If workspace creation is succesful, the state of the resource
+    ** If workspace creation is successful, the state of the resource
     ** object is updated appropriately.
     **
     ** This hook is optional; if the provider does not support workspaces,
@@ -2337,7 +2392,7 @@ struct dav_hooks_vsn
     ** Create an activity resource. The resource must not already
     ** exist.
     **
-    ** If activity creation is succesful, the state of the resource
+    ** If activity creation is successful, the state of the resource
     ** object is updated appropriately.
     **
     ** This hook is optional; if the provider does not support activities,

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/util.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/util.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/dav/main/util.c Mon Nov 14 10:26:31 2016
@@ -428,7 +428,7 @@ DAV_DECLARE(void) dav_xmlns_add(dav_xmln
     apr_hash_set(xi->prefix_uri, prefix, APR_HASH_KEY_STRING, uri);
 
     /* note: this may overwrite an existing URI->prefix mapping, but it
-       doesn't matter -- any prefix is usuable to specify the URI. */
+       doesn't matter -- any prefix is usable to specify the URI. */
     apr_hash_set(xi->uri_prefix, uri, APR_HASH_KEY_STRING, prefix);
 }
 
@@ -587,7 +587,7 @@ static dav_error * dav_add_if_state(apr_
 }
 
 /* fetch_next_token returns the substring from str+1
- * to the next occurence of char term, or \0, whichever
+ * to the next occurrence of char term, or \0, whichever
  * occurs first.  Leading whitespace is ignored.
  */
 static char *dav_fetch_next_token(char **str, char term)

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/examples/README
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/examples/README?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/examples/README (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/examples/README Mon Nov 14 10:26:31 2016
@@ -32,7 +32,7 @@ For windows, the process is slightly dif
 
     A. copy modules\examples\mod_example_hooks.c modules\examples\mod_myexample.c
     B. copy modules\examples\mod_example_hooks.dsp modules\examples\mod_myexample.dsp
-    C. replace the occurances of 'example_hooks' with your module name.
+    C. replace the occurrences of 'example_hooks' with your module name.
     D. add the new .dsp to your Apache.dsw workspace, with dependencies
        on the libapr, libaprutil and libhttpd projects.  With the newer
        Developer Studio 2002 through 2005, when you add the new .dsp

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_reqtimeout.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_reqtimeout.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_reqtimeout.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_reqtimeout.c Mon Nov 14 10:26:31 2016
@@ -417,8 +417,8 @@ static int reqtimeout_before_body(reques
     reqtimeout_con_cfg *ccfg =
         ap_get_module_config(r->connection->conn_config, &reqtimeout_module);
 
-    if (ccfg == NULL || r->method_number == M_CONNECT) {
-        /* either disabled for this connection or a CONNECT request */
+    if (ccfg == NULL) {
+        /* not configured for this connection */
         return OK;
     }
     cfg = ap_get_module_config(r->connection->base_server->module_config,
@@ -428,7 +428,11 @@ static int reqtimeout_before_body(reques
     ccfg->timeout_at = 0;
     ccfg->max_timeout_at = 0;
     ccfg->type = "body";
-    if (cfg->body_timeout != UNSET) {
+    if (r->method_number == M_CONNECT) {
+        /* disabled for a CONNECT request */
+        ccfg->new_timeout     = 0;
+    }
+    else if (cfg->body_timeout != UNSET) {
         ccfg->new_timeout     = cfg->body_timeout;
         ccfg->new_max_timeout = cfg->body_max_timeout;
         ccfg->min_rate        = cfg->body_min_rate;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_cgid.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_cgid.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_cgid.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_cgid.c Mon Nov 14 10:26:31 2016
@@ -1298,8 +1298,8 @@ static void discard_script_output(apr_bu
 
 struct cleanup_script_info {
     request_rec *r;
-    unsigned long conn_id;
     cgid_server_conf *conf;
+    pid_t pid;
 };
 
 static apr_status_t dead_yet(pid_t pid, apr_interval_time_t max_wait)
@@ -1351,25 +1351,19 @@ static apr_status_t cleanup_nonchild_pro
     return APR_EGENERAL;
 }
 
-static apr_status_t cleanup_script(void *vptr)
-{
-    struct cleanup_script_info *info = vptr;
-    int sd;
-    int rc;
+static apr_status_t get_cgi_pid(request_rec *r,  cgid_server_conf *conf, pid_t *pid) { 
     cgid_req_t req = {0};
-    pid_t pid;
     apr_status_t stat;
+    int rc, sd;
 
-    rc = connect_to_daemon(&sd, info->r, info->conf);
+    rc = connect_to_daemon(&sd, r, conf);
     if (rc != OK) {
         return APR_EGENERAL;
     }
 
-    /* we got a socket, and there is already a cleanup registered for it */
-
     req.req_type = GETPID_REQ;
     req.ppid = parent_pid;
-    req.conn_id = info->r->connection->id;
+    req.conn_id = r->connection->id;
 
     stat = sock_write(sd, &req, sizeof(req));
     if (stat != APR_SUCCESS) {
@@ -1377,18 +1371,26 @@ static apr_status_t cleanup_script(void
     }
 
     /* wait for pid of script */
-    stat = sock_read(sd, &pid, sizeof(pid));
+    stat = sock_read(sd, pid, sizeof(*pid));
     if (stat != APR_SUCCESS) {
         return stat;
     }
 
     if (pid == 0) {
-        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, info->r, APLOGNO(01261)
+        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01261)
                       "daemon couldn't find CGI process for connection %lu",
-                      info->conn_id);
+                      r->connection->id);
         return APR_EGENERAL;
     }
-    return cleanup_nonchild_process(info->r, pid);
+
+    return APR_SUCCESS;
+}
+
+
+static apr_status_t cleanup_script(void *vptr)
+{
+    struct cleanup_script_info *info = vptr;
+    return cleanup_nonchild_process(info->r, info->pid);
 }
 
 static int cgid_handler(request_rec *r)
@@ -1486,12 +1488,19 @@ static int cgid_handler(request_rec *r)
     }
 
     info = apr_palloc(r->pool, sizeof(struct cleanup_script_info));
-    info->r = r;
-    info->conn_id = r->connection->id;
     info->conf = conf;
-    apr_pool_cleanup_register(r->pool, info,
+    info->r = r;
+    rv = get_cgi_pid(r, conf, &(info->pid));
+
+    if (APR_SUCCESS == rv){  
+        apr_pool_cleanup_register(r->pool, info,
                               cleanup_script,
                               apr_pool_cleanup_null);
+    }
+    else { 
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, "error determining cgi PID");
+    }
+
     /* We are putting the socket discriptor into an apr_file_t so that we can
      * use a pipe bucket to send the data to the client.  APR will create
      * a cleanup for the apr_file_t which will close the socket, so we'll
@@ -1816,6 +1825,7 @@ static int include_cmd(include_ctx_t *ct
     cgid_dirconf *dc = ap_get_module_config(r->per_dir_config, &cgid_module);
 
     struct cleanup_script_info *info;
+    apr_status_t rv;
 
     add_ssi_vars(r);
     env = ap_create_environment(r->pool, r->subprocess_env);
@@ -1827,13 +1837,22 @@ static int include_cmd(include_ctx_t *ct
     send_req(sd, r, command, env, SSI_REQ);
 
     info = apr_palloc(r->pool, sizeof(struct cleanup_script_info));
-    info->r = r;
-    info->conn_id = r->connection->id;
     info->conf = conf;
-    /* for this type of request, the script is invoked through an
-     * intermediate shell process...  cleanup_script is only able
-     * to knock out the shell process, not the actual script
-     */
+    info->r = r;
+    rv = get_cgi_pid(r, conf, &(info->pid));
+    if (APR_SUCCESS == rv) {             
+        /* for this type of request, the script is invoked through an
+         * intermediate shell process...  cleanup_script is only able
+         * to knock out the shell process, not the actual script
+         */
+        apr_pool_cleanup_register(r->pool, info,
+                                  cleanup_script,
+                                  apr_pool_cleanup_null);
+    }
+    else { 
+        ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, "error determining cgi PID (for SSI)");
+    }
+
     apr_pool_cleanup_register(r->pool, info,
                               cleanup_script,
                               apr_pool_cleanup_null);

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_status.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_status.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_status.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/generators/mod_status.c Mon Nov 14 10:26:31 2016
@@ -195,7 +195,7 @@ static int status_handler(request_rec *r
     long req_time;
     int short_report;
     int no_table_report;
-    worker_score *ws_record = apr_palloc(r->pool, sizeof *ws_record);
+    worker_score *ws_record;
     process_score *ps_record;
     char *stat_buffer;
     pid_t *pid_buffer, worker_pid;
@@ -293,6 +293,8 @@ static int status_handler(request_rec *r
         }
     }
 
+    ws_record = apr_palloc(r->pool, sizeof *ws_record);
+
     for (i = 0; i < server_limit; ++i) {
 #ifdef HAVE_TIMES
         clock_t proc_tu = 0, proc_ts = 0, proc_tcu = 0, proc_tcs = 0;
@@ -621,7 +623,7 @@ static int status_handler(request_rec *r
                  "\"<b><code>G</code></b>\" Gracefully finishing,<br /> \n"
                  "\"<b><code>I</code></b>\" Idle cleanup of worker, \n"
                  "\"<b><code>.</code></b>\" Open slot with no current process<br />\n"
-                 "<p />\n", r);
+                 "</p>\n", r);
         if (!ap_extended_status) {
             int j;
             int k = 0;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_core.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_core.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_core.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_core.c Mon Nov 14 10:26:31 2016
@@ -66,7 +66,7 @@ static const char *set_keep_alive_timeou
      * set for the main server, because if no http_module directive is used
      * for a vhost, it will inherit the http_srv_cfg from the main server.
      * However keep_alive_timeout_set helps determine whether the vhost should
-     * use its own configured timeout or the one from the vhost delared first
+     * use its own configured timeout or the one from the vhost declared first
      * on the same IP:port (ie. c->base_server, and the legacy behaviour).
      */
     if (cmd->server->is_virtual) {

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_filters.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_filters.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_filters.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_filters.c Mon Nov 14 10:26:31 2016
@@ -1295,7 +1295,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_
     }
 
     /*
-     * Control cachability for non-cachable responses if not already set by
+     * Control cachability for non-cacheable responses if not already set by
      * some other part of the server configuration.
      */
     if (r->no_cache && !apr_table_get(r->headers_out, "Expires")) {
@@ -1392,22 +1392,22 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_
 AP_DECLARE(int) ap_map_http_request_error(apr_status_t rv, int status)
 {
     switch (rv) {
-    case AP_FILTER_ERROR: {
+    case AP_FILTER_ERROR:
         return AP_FILTER_ERROR;
-    }
-    case APR_ENOSPC: {
+
+    case APR_ENOSPC:
         return HTTP_REQUEST_ENTITY_TOO_LARGE;
-    }
-    case APR_ENOTIMPL: {
+
+    case APR_ENOTIMPL:
         return HTTP_NOT_IMPLEMENTED;
-    }
-    case APR_ETIMEDOUT: {
+
+    case APR_TIMEUP:
+    case APR_ETIMEDOUT:
         return HTTP_REQUEST_TIME_OUT;
-    }
-    default: {
+
+    default:
         return status;
     }
-    }
 }
 
 /* In HTTP/1.1, any method can have a body.  However, most GET handlers

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_protocol.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_protocol.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_protocol.c Mon Nov 14 10:26:31 2016
@@ -688,8 +688,11 @@ AP_DECLARE(void) ap_method_registry_init
                               apr_pool_cleanup_null);
 
     /* put all the standard methods into the registry hash to ease the
-       mapping operations between name and number */
+     * mapping operations between name and number
+     * HEAD is a special-instance of the GET method and shares the same ID
+     */
     register_one_method(p, "GET", M_GET);
+    register_one_method(p, "HEAD", M_GET);
     register_one_method(p, "PUT", M_PUT);
     register_one_method(p, "POST", M_POST);
     register_one_method(p, "DELETE", M_DELETE);

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_request.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_request.c?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_request.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http/http_request.c Mon Nov 14 10:26:31 2016
@@ -228,41 +228,51 @@ AP_DECLARE(void) ap_die(int type, reques
     ap_die_r(type, r, r->status);
 }
 
-static void check_pipeline(conn_rec *c, apr_bucket_brigade *bb)
+AP_DECLARE(apr_status_t) ap_check_pipeline(conn_rec *c, apr_bucket_brigade *bb,
+                                           unsigned int max_blank_lines)
 {
-    apr_status_t rv;
-    int num_blank_lines = DEFAULT_LIMIT_BLANK_LINES;
+    apr_status_t rv = APR_EOF;
     ap_input_mode_t mode = AP_MODE_SPECULATIVE;
+    unsigned int num_blank_lines = 0;
     apr_size_t cr = 0;
     char buf[2];
 
-    c->data_in_input_filters = 0;
     while (c->keepalive != AP_CONN_CLOSE && !c->aborted) {
         apr_size_t len = cr + 1;
 
         apr_brigade_cleanup(bb);
         rv = ap_get_brigade(c->input_filters, bb, mode,
                             APR_NONBLOCK_READ, len);
-        if (rv != APR_SUCCESS || APR_BRIGADE_EMPTY(bb)) {
-            /*
-             * Error or empty brigade: There is no data present in the input
-             * filter
-             */
+        if (rv != APR_SUCCESS || APR_BRIGADE_EMPTY(bb) || !max_blank_lines) {
             if (mode == AP_MODE_READBYTES) {
                 /* Unexpected error, stop with this connection */
                 ap_log_cerror(APLOG_MARK, APLOG_ERR, rv, c, APLOGNO(02967)
                               "Can't consume pipelined empty lines");
                 c->keepalive = AP_CONN_CLOSE;
+                rv = APR_EGENERAL;
+            }
+            else if (rv != APR_SUCCESS || APR_BRIGADE_EMPTY(bb)) {
+                if (rv != APR_SUCCESS && !APR_STATUS_IS_EAGAIN(rv)) {
+                    /* Pipe is dead */
+                    c->keepalive = AP_CONN_CLOSE;
+                }
+                else {
+                    /* Pipe is up and empty */
+                    rv = APR_EAGAIN;
+                }
+            }
+            else {
+                apr_off_t n = 0;
+                /* Single read asked, (non-meta-)data available? */
+                rv = apr_brigade_length(bb, 0, &n);
+                if (rv == APR_SUCCESS && n <= 0) {
+                    rv = APR_EAGAIN;
+                }
             }
             break;
         }
 
-        /* Ignore trailing blank lines (which must not be interpreted as
-         * pipelined requests) up to the limit, otherwise we would block
-         * on the next read without flushing data, and hence possibly delay
-         * pending response(s) until the next/real request comes in or the
-         * keepalive timeout expires.
-         */
+        /* Lookup and consume blank lines */
         rv = apr_brigade_flatten(bb, buf, &len);
         if (rv != APR_SUCCESS || len != cr + 1) {
             int log_level;
@@ -270,14 +280,15 @@ static void check_pipeline(conn_rec *c,
                 /* Unexpected error, stop with this connection */
                 c->keepalive = AP_CONN_CLOSE;
                 log_level = APLOG_ERR;
+                rv = APR_EGENERAL;
             }
             else {
                 /* Let outside (non-speculative/blocking) read determine
                  * where this possible failure comes from (metadata,
-                 * morphed EOF socket => empty bucket? debug only here).
+                 * morphed EOF socket, ...). Debug only here.
                  */
-                c->data_in_input_filters = 1;
                 log_level = APLOG_DEBUG;
+                rv = APR_SUCCESS;
             }
             ap_log_cerror(APLOG_MARK, log_level, rv, c, APLOGNO(02968)
                           "Can't check pipelined data");
@@ -285,40 +296,47 @@ static void check_pipeline(conn_rec *c,
         }
 
         if (mode == AP_MODE_READBYTES) {
+            /* [CR]LF consumed, try next */
             mode = AP_MODE_SPECULATIVE;
             cr = 0;
         }
         else if (cr) {
             AP_DEBUG_ASSERT(len == 2 && buf[0] == APR_ASCII_CR);
             if (buf[1] == APR_ASCII_LF) {
+                /* consume this CRLF */
                 mode = AP_MODE_READBYTES;
-                num_blank_lines--;
+                num_blank_lines++;
             }
             else {
-                c->data_in_input_filters = 1;
+                /* CR(?!LF) is data */
                 break;
             }
         }
         else {
             if (buf[0] == APR_ASCII_LF) {
+                /* consume this LF */
                 mode = AP_MODE_READBYTES;
-                num_blank_lines--;
+                num_blank_lines++;
             }
             else if (buf[0] == APR_ASCII_CR) {
                 cr = 1;
             }
             else {
-                c->data_in_input_filters = 1;
+                /* Not [CR]LF, some data */
                 break;
             }
         }
-        /* Enough blank lines with this connection?
-         * Stop and don't recycle it.
-         */
-        if (num_blank_lines < 0) {
+        if (num_blank_lines > max_blank_lines) {
+            /* Enough blank lines with this connection,
+             * stop and don't recycle it.
+             */
             c->keepalive = AP_CONN_CLOSE;
+            rv = APR_NOTFOUND;
+            break;
         }
     }
+
+    return rv;
 }
 
 
@@ -327,6 +345,7 @@ AP_DECLARE(void) ap_process_request_afte
     apr_bucket_brigade *bb;
     apr_bucket *b;
     conn_rec *c = r->connection;
+    apr_status_t rv;
 
     /* Send an EOR bucket through the output filter chain.  When
      * this bucket is destroyed, the request will be logged and
@@ -351,8 +370,15 @@ AP_DECLARE(void) ap_process_request_afte
      * already by the EOR bucket's cleanup function.
      */
 
-    check_pipeline(c, bb);
+    /* Check pipeline consuming blank lines, they must not be interpreted as
+     * the next pipelined request, otherwise we would block on the next read
+     * without flushing data, and hence possibly delay pending response(s)
+     * until the next/real request comes in or the keepalive timeout expires.
+     */
+    rv = ap_check_pipeline(c, bb, DEFAULT_LIMIT_BLANK_LINES);
+    c->data_in_input_filters = (rv == APR_SUCCESS);
     apr_brigade_destroy(bb);
+
     if (c->cs)
         c->cs->state = (c->aborted) ? CONN_STATE_LINGER
                                     : CONN_STATE_WRITE_COMPLETION;

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUmod_http2
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUmod_http2?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUmod_http2 (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUmod_http2 Mon Nov 14 10:26:31 2016
@@ -199,7 +199,7 @@ FILES_nlm_objs = \
 	$(OBJDIR)/h2_ngn_shed.o \
 	$(OBJDIR)/h2_push.o \
 	$(OBJDIR)/h2_request.o \
-	$(OBJDIR)/h2_response.o \
+	$(OBJDIR)/h2_headers.o \
 	$(OBJDIR)/h2_session.o \
 	$(OBJDIR)/h2_stream.o \
 	$(OBJDIR)/h2_switch.o \
@@ -355,25 +355,6 @@ $(OBJDIR)/mod_http2.imp : NWGNUmod_http2
 	@echo $(DL)GEN  $@$(DL)
 	@echo $(DL) (HTTP2)$(DL) > $@
 	@echo $(DL) http2_module,$(DL) >> $@
-	@echo $(DL) h2_ihash_add,$(DL) >> $@
-	@echo $(DL) h2_ihash_clear,$(DL) >> $@
-	@echo $(DL) h2_ihash_count,$(DL) >> $@
-	@echo $(DL) h2_ihash_create,$(DL) >> $@
-	@echo $(DL) h2_ihash_empty,$(DL) >> $@
-	@echo $(DL) h2_ihash_iter,$(DL) >> $@
-	@echo $(DL) h2_ihash_remove,$(DL) >> $@
-	@echo $(DL) h2_iq_add,$(DL) >> $@
-	@echo $(DL) h2_iq_create,$(DL) >> $@
-	@echo $(DL) h2_iq_remove,$(DL) >> $@
-	@echo $(DL) h2_log2,$(DL) >> $@
-	@echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
-	@echo $(DL) h2_headers_add_h1,$(DL) >> $@
-	@echo $(DL) h2_req_create,$(DL) >> $@
-	@echo $(DL) h2_req_createn,$(DL) >> $@
-	@echo $(DL) h2_req_make,$(DL) >> $@
-	@echo $(DL) h2_util_camel_case_header,$(DL) >> $@
-	@echo $(DL) h2_util_frame_print,$(DL) >> $@
-	@echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@
 	@echo $(DL) nghttp2_is_fatal,$(DL) >> $@
 	@echo $(DL) nghttp2_option_del,$(DL) >> $@
 	@echo $(DL) nghttp2_option_new,$(DL) >> $@
@@ -400,6 +381,7 @@ $(OBJDIR)/mod_http2.imp : NWGNUmod_http2
 	@echo $(DL) nghttp2_session_want_write,$(DL) >> $@
 	@echo $(DL) nghttp2_strerror,$(DL) >> $@
 	@echo $(DL) nghttp2_submit_goaway,$(DL) >> $@
+	@echo $(DL) nghttp2_submit_ping,$(DL) >> $@
 	@echo $(DL) nghttp2_submit_request,$(DL) >> $@
 	@echo $(DL) nghttp2_submit_rst_stream,$(DL) >> $@
 	@echo $(DL) nghttp2_submit_settings,$(DL) >> $@

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUproxyht2
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUproxyht2?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUproxyht2 (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/NWGNUproxyht2 Mon Nov 14 10:26:31 2016
@@ -182,6 +182,7 @@ TARGET_lib = \
 FILES_nlm_objs = \
 	$(OBJDIR)/mod_proxy_http2.o \
 	$(OBJDIR)/h2_proxy_session.o \
+	$(OBJDIR)/h2_proxy_util.o \
 	$(EOLIST)
 
 #

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/README.h2
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/README.h2?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/README.h2 (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/README.h2 Mon Nov 14 10:26:31 2016
@@ -60,7 +60,7 @@ TLS CONFIGURATION
 
 If you want to use HTTP/2 with a browser, most modern browsers will support
 it without further configuration. However, browsers so far only support
-HTTP/2 over TLS and are expecially picky about the certificate and
+HTTP/2 over TLS and are especially picky about the certificate and
 encryption ciphers used.
 
 Server admins may look for up-to-date information about "modern" TLS

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/config2.m4
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/config2.m4?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/config2.m4 (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/config2.m4 Mon Nov 14 10:26:31 2016
@@ -30,11 +30,11 @@ h2_ctx.lo dnl
 h2_filter.lo dnl
 h2_from_h1.lo dnl
 h2_h2.lo dnl
+h2_headers.lo dnl
 h2_mplx.lo dnl
 h2_ngn_shed.lo dnl
 h2_push.lo dnl
 h2_request.lo dnl
-h2_response.lo dnl
 h2_session.lo dnl
 h2_stream.lo dnl
 h2_switch.lo dnl
@@ -154,6 +154,9 @@ dnl # nghttp2 >= 1.3.0: access to stream
 dnl # nghttp2 >= 1.5.0: changing stream priorities
       AC_CHECK_FUNCS([nghttp2_session_change_stream_priority], 
         [APR_ADDTO(MOD_CPPFLAGS, ["-DH2_NG2_CHANGE_PRIO"])], [])
+dnl # nghttp2 >= 1.14.0: invalid header callback
+      AC_CHECK_FUNCS([nghttp2_session_callbacks_set_on_invalid_header_callback], 
+        [APR_ADDTO(MOD_CPPFLAGS, ["-DH2_NG2_INVALID_HEADER_CB"])], [])
     else
       AC_MSG_WARN([nghttp2 version is too old])
     fi

Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/h2.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/h2.h?rev=1769588&r1=1769587&r2=1769588&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/h2.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/http2/h2.h Mon Nov 14 10:26:31 2016
@@ -47,6 +47,9 @@ extern const char *H2_MAGIC_TOKEN;
 #define H2_HEADER_PATH_LEN   5
 #define H2_CRLF             "\r\n"
 
+/* Max data size to write so it fits inside a TLS record */
+#define H2_DATA_CHUNK_SIZE          ((16*1024) - 100 - 9) 
+
 /* Maximum number of padding bytes in a frame, rfc7540 */
 #define H2_MAX_PADLEN               256
 /* Initial default window size, RFC 7540 ch. 6.5.2 */
@@ -95,17 +98,16 @@ typedef enum {
     H2_SESSION_ST_IDLE,             /* nothing to write, expecting data inc */
     H2_SESSION_ST_BUSY,             /* read/write without stop */
     H2_SESSION_ST_WAIT,             /* waiting for tasks reporting back */
-    H2_SESSION_ST_LOCAL_SHUTDOWN,   /* we announced GOAWAY */
-    H2_SESSION_ST_REMOTE_SHUTDOWN,  /* client announced GOAWAY */
 } h2_session_state;
 
 typedef struct h2_session_props {
-    apr_uint32_t accepted_max;      /* the highest remote stream id was/will be handled */
-    apr_uint32_t completed_max;     /* the highest remote stream completed */
-    apr_uint32_t emitted_count;     /* the number of local streams sent */
-    apr_uint32_t emitted_max;       /* the highest local stream id sent */
-    apr_uint32_t error;             /* the last session error encountered */
+    int accepted_max;      /* the highest remote stream id was/will be handled */
+    int completed_max;     /* the highest remote stream completed */
+    int emitted_count;     /* the number of local streams sent */
+    int emitted_max;       /* the highest local stream id sent */
+    int error;             /* the last session error encountered */
     unsigned int accepting : 1;     /* if the session is accepting new streams */
+    unsigned int shutdown : 1;      /* if the final GOAWAY has been sent */
 } h2_session_props;
 
 
@@ -116,37 +118,23 @@ typedef struct h2_session_props {
 typedef struct h2_request h2_request;
 
 struct h2_request {
-    int id;             /* stream id */
-    int initiated_on;   /* initiating stream id (PUSH) or 0 */
-    
     const char *method; /* pseudo header values, see ch. 8.1.2.3 */
     const char *scheme;
     const char *authority;
     const char *path;
-    
     apr_table_t *headers;
-    apr_table_t *trailers;
 
     apr_time_t request_time;
-    apr_off_t content_length;
-    
-    unsigned int chunked : 1; /* iff requst body needs to be forwarded as chunked */
-    unsigned int eoh     : 1; /* iff end-of-headers has been seen and request is complete */
-    unsigned int body    : 1; /* iff this request has a body */
+    unsigned int chunked : 1;   /* iff requst body needs to be forwarded as chunked */
     unsigned int serialize : 1; /* iff this request is written in HTTP/1.1 serialization */
-    unsigned int push_policy; /* which push policy to use for this request */
 };
 
-typedef struct h2_response h2_response;
+typedef struct h2_headers h2_headers;
 
-struct h2_response {
-    int         stream_id;
-    int         rst_error;
-    int         http_status;
-    apr_off_t   content_length;
+struct h2_headers {
+    int         status;
     apr_table_t *headers;
-    apr_table_t *trailers;
-    const char  *sos_filter;
+    apr_table_t *notes;
 };
 
 typedef apr_status_t h2_io_data_cb(void *ctx, const char *data, apr_off_t len);
@@ -155,7 +143,7 @@ typedef int h2_stream_pri_cmp(int stream
 
 /* Note key to attach connection task id to conn_rec/request_rec instances */
 
-#define H2_TASK_ID_NOTE     "http2-task-id"
-
+#define H2_TASK_ID_NOTE         "http2-task-id"
+#define H2_FILTER_DEBUG_NOTE    "http2-debug"
 
 #endif /* defined(__mod_h2__h2__) */