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 2017/01/31 09:52:09 UTC
svn commit: r1781045 [46/50] - in
/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat: ./ build/ docs/man/
docs/manual/ docs/manual/developer/ docs/manual/faq/ docs/manual/howto/
docs/manual/misc/ docs/manual/mod/ docs/manual/platform/
docs/manual/program...
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.ko.euc-kr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.ko.euc-kr [euc-kr] Tue Jan 31 09:52:02 2017
@@ -110,7 +110,7 @@
<a href="../tr/vhosts/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/vhosts/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">\ubaa8\ub4c8</a> | <a href="../mod/directives.html">\uc9c0\uc2dc\uc5b4\ub4e4</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\uc6a9\uc5b4</a> | <a href="../sitemap.html">\uc0ac\uc774\ud2b8\ub9f5</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.tr.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.tr.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -114,7 +114,7 @@
<a href="../tr/vhosts/" title="T�rk�e"> tr </a> |
<a href="../zh-cn/vhosts/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
<p class="menu"><a href="../mod/">Mod�ller</a> | <a href="../mod/directives.html">Y�nergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritas\u0131</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.zh-cn.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.zh-cn.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.zh-cn.utf8 (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.html.zh-cn.utf8 Tue Jan 31 09:52:02 2017
@@ -96,7 +96,7 @@
<a href="../tr/vhosts/" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/vhosts/" title="Simplified Chinese"> zh-cn </a></p>
</div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />基于 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 许可证.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />基于 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 许可证.</p>
<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/directives.html">指令</a> | <a href="http://wiki.apache.org/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.xml.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.xml.fr [iso-8859-1] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/index.xml.fr [utf-8] Tue Jan 31 09:52:02 2017
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1753873 -->
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.en?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.en (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.en Tue Jan 31 09:52:02 2017
@@ -201,7 +201,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.fr Tue Jan 31 09:52:02 2017
@@ -204,7 +204,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ja.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ja.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -181,7 +181,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />\u3053\u306e\u6587\u66f8\u306f <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />\u3053\u306e\u6587\u66f8\u306f <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002.</p>
<p class="menu"><a href="../mod/">\u30e2\u30b8\u30e5\u30fc\u30eb</a> | <a href="../mod/directives.html">\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\u7528\u8a9e</a> | <a href="../sitemap.html">\u30b5\u30a4\u30c8\u30de\u30c3\u30d7</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ko.euc-kr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.ko.euc-kr [euc-kr] Tue Jan 31 09:52:02 2017
@@ -171,7 +171,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">\ubaa8\ub4c8</a> | <a href="../mod/directives.html">\uc9c0\uc2dc\uc5b4\ub4e4</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\uc6a9\uc5b4</a> | <a href="../sitemap.html">\uc0ac\uc774\ud2b8\ub9f5</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.tr.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.html.tr.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -202,7 +202,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
<p class="menu"><a href="../mod/">Mod�ller</a> | <a href="../mod/directives.html">Y�nergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritas\u0131</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.xml.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.xml.fr [iso-8859-1] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/ip-based.xml.fr [utf-8] Tue Jan 31 09:52:02 2017
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- English Revision: 1673563 -->
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.en?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.en (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.en Tue Jan 31 09:52:02 2017
@@ -328,7 +328,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.fr Tue Jan 31 09:52:02 2017
@@ -343,7 +343,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.ko.euc-kr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] Tue Jan 31 09:52:02 2017
@@ -444,7 +444,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">\ubaa8\ub4c8</a> | <a href="../mod/directives.html">\uc9c0\uc2dc\uc5b4\ub4e4</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\uc6a9\uc5b4</a> | <a href="../sitemap.html">\uc0ac\uc774\ud2b8\ub9f5</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.tr.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.html.tr.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -315,7 +315,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
<p class="menu"><a href="../mod/">Mod�ller</a> | <a href="../mod/directives.html">Y�nergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritas\u0131</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.xml.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.xml.fr [iso-8859-1] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/mass.xml.fr [utf-8] Tue Jan 31 09:52:02 2017
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673563 -->
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.de
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.de?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.de (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.de Tue Jan 31 09:52:02 2017
@@ -290,7 +290,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.en?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.en (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.en Tue Jan 31 09:52:02 2017
@@ -215,7 +215,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.fr (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.fr Tue Jan 31 09:52:02 2017
@@ -258,7 +258,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ja.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -294,7 +294,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />\u3053\u306e\u6587\u66f8\u306f <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />\u3053\u306e\u6587\u66f8\u306f <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002.</p>
<p class="menu"><a href="../mod/">\u30e2\u30b8\u30e5\u30fc\u30eb</a> | <a href="../mod/directives.html">\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\u7528\u8a9e</a> | <a href="../sitemap.html">\u30b5\u30a4\u30c8\u30de\u30c3\u30d7</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ko.euc-kr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.ko.euc-kr [euc-kr] Tue Jan 31 09:52:02 2017
@@ -257,7 +257,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">\ubaa8\ub4c8</a> | <a href="../mod/directives.html">\uc9c0\uc2dc\uc5b4\ub4e4</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">\uc6a9\uc5b4</a> | <a href="../sitemap.html">\uc0ac\uc774\ud2b8\ub9f5</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.tr.utf8?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.html.tr.utf8 [utf-8] Tue Jan 31 09:52:02 2017
@@ -229,7 +229,7 @@ var comments_identifier = 'http://httpd.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
+<p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> alt\u0131nda lisansl\u0131d\u0131r.</p>
<p class="menu"><a href="../mod/">Mod�ller</a> | <a href="../mod/directives.html">Y�nergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritas\u0131</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.xml.fr?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.xml.fr [iso-8859-1] (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/docs/manual/vhosts/name-based.xml.fr [utf-8] Tue Jan 31 09:52:02 2017
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673563 -->
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -487,6 +487,13 @@
* 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().
+ * 20120211.67 (2.4.24-dev) Add http09_enable, http_conformance, and
+ * http_methods to core_server_config
+ * Add ap_scan_http_field_token(),
+ * ap_scan_http_field_content(),
+ * and ap_scan_vchar_obstext()
+ * Replaced fold boolean with with multiple bit flags
+ * to ap_[r]getline()
*/
#define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -494,7 +501,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20120211
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 66 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 67 /* 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/ap_release.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_release.h?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_release.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/ap_release.h Tue Jan 31 09:52:02 2017
@@ -23,7 +23,7 @@
#define AP_RELEASE_H
#define AP_SERVER_COPYRIGHT \
- "Copyright 2016 The Apache Software Foundation."
+ "Copyright 2017 The Apache Software Foundation."
/*
* The below defines the base string of the Server: header. Additional
@@ -43,7 +43,7 @@
#define AP_SERVER_MAJORVERSION_NUMBER 2
#define AP_SERVER_MINORVERSION_NUMBER 4
-#define AP_SERVER_PATCHLEVEL_NUMBER 24
+#define AP_SERVER_PATCHLEVEL_NUMBER 26
#define AP_SERVER_DEVBUILD_BOOLEAN 1
/* Synchronize the above with docs/manual/style/version.ent */
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -410,6 +410,23 @@ struct module_struct {
};
/**
+ * The AP_MAYBE_UNUSED macro is used for variable declarations that
+ * might potentially exhibit "unused var" warnings on some compilers if
+ * left untreated.
+ * Since static intializers are not part of the C language (C89), making
+ * (void) usage is not possible. However many compiler have proprietary
+ * mechanism to suppress those warnings.
+ */
+#ifdef AP_MAYBE_UNUSED
+#elif defined(__GNUC__)
+# define AP_MAYBE_UNUSED(x) x __attribute__((unused))
+#elif defined(__LCLINT__)
+# define AP_MAYBE_UNUSED(x) /*@unused@*/ x
+#else
+# define AP_MAYBE_UNUSED(x) x
+#endif
+
+/**
* The APLOG_USE_MODULE macro is used choose which module a file belongs to.
* This is necessary to allow per-module loglevel configuration.
*
@@ -424,7 +441,7 @@ struct module_struct {
*/
#define APLOG_USE_MODULE(foo) \
extern module AP_MODULE_DECLARE_DATA foo##_module; \
- static int * const aplog_module_index = &(foo##_module.module_index)
+ AP_MAYBE_UNUSED(static int * const aplog_module_index) = &(foo##_module.module_index)
/**
* AP_DECLARE_MODULE is a convenience macro that combines a call of
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_core.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_core.h?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_core.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_core.h Tue Jan 31 09:52:02 2017
@@ -723,10 +723,24 @@ typedef struct {
#define AP_MERGE_TRAILERS_DISABLE 2
int merge_trailers;
-
-
apr_array_header_t *protocols;
int protocols_honor_order;
+
+#define AP_HTTP09_UNSET 0
+#define AP_HTTP09_ENABLE 1
+#define AP_HTTP09_DISABLE 2
+ char http09_enable;
+
+#define AP_HTTP_CONFORMANCE_UNSET 0
+#define AP_HTTP_CONFORMANCE_UNSAFE 1
+#define AP_HTTP_CONFORMANCE_STRICT 2
+ char http_conformance;
+
+#define AP_HTTP_METHODS_UNSET 0
+#define AP_HTTP_METHODS_LENIENT 1
+#define AP_HTTP_METHODS_REGISTERED 2
+ char http_methods;
+
} core_server_config;
/* for AddOutputFiltersByType in core.c */
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_protocol.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_protocol.h?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_protocol.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/http_protocol.h Tue Jan 31 09:52:02 2017
@@ -582,17 +582,22 @@ AP_DECLARE(int) ap_get_basic_auth_pw(req
*/
AP_CORE_DECLARE(void) ap_parse_uri(request_rec *r, const char *uri);
+#define AP_GETLINE_FOLD 1 /* Whether to merge continuation lines */
+#define AP_GETLINE_CRLF 2 /*Whether line ends must be in the form CR LF */
+
/**
* Get the next line of input for the request
* @param s The buffer into which to read the line
* @param n The size of the buffer
* @param r The request
- * @param fold Whether to merge continuation lines
+ * @param flags Bit flag of multiple parsing options
+ * AP_GETLINE_FOLD Whether to merge continuation lines
+ * AP_GETLINE_CRLF Whether line ends must be in the form CR LF
* @return The length of the line, if successful
* n, if the line is too big to fit in the buffer
* -1 for miscellaneous errors
*/
-AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold);
+AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int flags);
/**
* Get the next line of input for the request
@@ -610,7 +615,9 @@ AP_DECLARE(int) ap_getline(char *s, int
* @param n The size of the buffer
* @param read The length of the line.
* @param r The request
- * @param fold Whether to merge continuation lines
+ * @param flags Bit flag of multiple parsing options
+ * AP_GETLINE_FOLD Whether to merge continuation lines
+ * AP_GETLINE_CRLF Whether line ends must be in the form CR LF
* @param bb Working brigade to use when reading buckets
* @return APR_SUCCESS, if successful
* APR_ENOSPC, if the line is too big to fit in the buffer
@@ -619,7 +626,7 @@ AP_DECLARE(int) ap_getline(char *s, int
#if APR_CHARSET_EBCDIC
AP_DECLARE(apr_status_t) ap_rgetline(char **s, apr_size_t n,
apr_size_t *read,
- request_rec *r, int fold,
+ request_rec *r, int flags,
apr_bucket_brigade *bb);
#else /* ASCII box */
#define ap_rgetline(s, n, read, r, fold, bb) \
@@ -629,7 +636,7 @@ AP_DECLARE(apr_status_t) ap_rgetline(cha
/** @see ap_rgetline */
AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n,
apr_size_t *read,
- request_rec *r, int fold,
+ request_rec *r, int flags,
apr_bucket_brigade *bb);
/**
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -1585,6 +1585,28 @@ AP_DECLARE(int) ap_find_etag_weak(apr_po
*/
AP_DECLARE(int) ap_find_etag_strong(apr_pool_t *p, const char *line, const char *tok);
+/* Scan a string for field content chars, as defined by RFC7230 section 3.2
+ * including VCHAR/obs-text, as well as HT and SP
+ * @param ptr The string to scan
+ * @return A pointer to the first (non-HT) ASCII ctrl character.
+ * @note lws and trailing whitespace are scanned, the caller is responsible
+ * for trimming leading and trailing whitespace
+ */
+AP_DECLARE(const char *) ap_scan_http_field_content(const char *ptr);
+
+/* Scan a string for token characters, as defined by RFC7230 section 3.2.6
+ * @param ptr The string to scan
+ * @return A pointer to the first non-token character.
+ */
+AP_DECLARE(const char *) ap_scan_http_token(const char *ptr);
+
+/* Scan a string for visible ASCII (0x21-0x7E) or obstext (0x80+)
+ * and return a pointer to the first SP/CTL/NUL character encountered.
+ * @param ptr The string to scan
+ * @return A pointer to the first SP/CTL character.
+ */
+AP_DECLARE(const char *) ap_scan_vchar_obstext(const char *ptr);
+
/**
* Retrieve an array of tokens in the format "1#token" defined in RFC2616. Only
* accepts ',' as a delimiter, does not accept quoted strings, and errors on
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/scoreboard.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/scoreboard.h?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/scoreboard.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/include/scoreboard.h Tue Jan 31 09:52:02 2017
@@ -26,7 +26,7 @@
extern "C" {
#endif
-#ifdef HAVE_SYS_TIMES_H
+#if APR_HAVE_SYS_TIME_H
#include <sys/time.h>
#include <sys/times.h>
#endif
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -18,7 +18,7 @@
* mod_auth_digest: MD5 digest authentication
*
* Originally by Alexei Kosut <ak...@nueva.pvt.k12.ca.us>
- * Updated to RFC-2617 by Ronald Tschal�r <ro...@innovation.ch>
+ * Updated to RFC-2617 by Ronald Tschal�r <ro...@innovation.ch>
* based on mod_auth, by Rob McCool and Robert S. Thau
*
* This module an updated version of modules/standard/mod_digest.c
@@ -232,7 +232,7 @@ static apr_status_t initialize_secret(se
{
apr_status_t status;
- ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s, APLOGNO(01757)
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(01757)
"generating secret for digest authentication ...");
#if APR_HAS_RANDOM
@@ -261,6 +261,26 @@ static void log_error_and_cleanup(char *
cleanup_tables(NULL);
}
+/* RMM helper functions that behave like single-step malloc/free. */
+
+static void *rmm_malloc(apr_rmm_t *rmm, apr_size_t size)
+{
+ apr_rmm_off_t offset = apr_rmm_malloc(rmm, size);
+
+ if (!offset) {
+ return NULL;
+ }
+
+ return apr_rmm_addr_get(rmm, offset);
+}
+
+static apr_status_t rmm_free(apr_rmm_t *rmm, void *alloc)
+{
+ apr_rmm_off_t offset = apr_rmm_offset_get(rmm, alloc);
+
+ return apr_rmm_free(rmm, offset);
+}
+
#if APR_HAS_SHARED_MEMORY
static int initialize_tables(server_rec *s, apr_pool_t *ctx)
@@ -299,8 +319,8 @@ static int initialize_tables(server_rec
return !OK;
}
- client_list = apr_rmm_addr_get(client_rmm, apr_rmm_malloc(client_rmm, sizeof(*client_list) +
- sizeof(client_entry*)*num_buckets));
+ client_list = rmm_malloc(client_rmm, sizeof(*client_list) +
+ sizeof(client_entry *) * num_buckets);
if (!client_list) {
log_error_and_cleanup("failed to allocate shared memory", -1, s);
return !OK;
@@ -322,7 +342,7 @@ static int initialize_tables(server_rec
/* setup opaque */
- opaque_cntr = apr_rmm_addr_get(client_rmm, apr_rmm_malloc(client_rmm, sizeof(*opaque_cntr)));
+ opaque_cntr = rmm_malloc(client_rmm, sizeof(*opaque_cntr));
if (opaque_cntr == NULL) {
log_error_and_cleanup("failed to allocate shared memory", -1, s);
return !OK;
@@ -339,7 +359,7 @@ static int initialize_tables(server_rec
/* setup one-time-nonce counter */
- otn_counter = apr_rmm_addr_get(client_rmm, apr_rmm_malloc(client_rmm, sizeof(*otn_counter)));
+ otn_counter = rmm_malloc(client_rmm, sizeof(*otn_counter));
if (otn_counter == NULL) {
log_error_and_cleanup("failed to allocate shared memory", -1, s);
return !OK;
@@ -779,7 +799,7 @@ static client_entry *get_client(unsigned
* last entry in each bucket and updates the counters. Returns the
* number of removed entries.
*/
-static long gc(void)
+static long gc(server_rec *s)
{
client_entry *entry, *prev;
unsigned long num_removed = 0, idx;
@@ -789,6 +809,12 @@ static long gc(void)
for (idx = 0; idx < client_list->tbl_len; idx++) {
entry = client_list->table[idx];
prev = NULL;
+
+ if (!entry) {
+ /* This bucket is empty. */
+ continue;
+ }
+
while (entry->next) { /* find last entry */
prev = entry;
entry = entry->next;
@@ -800,8 +826,16 @@ static long gc(void)
client_list->table[idx] = NULL;
}
if (entry) { /* remove entry */
- apr_rmm_free(client_rmm, apr_rmm_offset_get(client_rmm, entry));
+ apr_status_t err;
+
+ err = rmm_free(client_rmm, entry);
num_removed++;
+
+ if (err) {
+ /* Nothing we can really do but log... */
+ ap_log_error(APLOG_MARK, APLOG_ERR, err, s, APLOGNO()
+ "Failed to free auth_digest client allocation");
+ }
}
}
@@ -835,16 +869,16 @@ static client_entry *add_client(unsigned
/* try to allocate a new entry */
- entry = apr_rmm_addr_get(client_rmm, apr_rmm_malloc(client_rmm, sizeof(client_entry)));
+ entry = rmm_malloc(client_rmm, sizeof(client_entry));
if (!entry) {
- long num_removed = gc();
+ long num_removed = gc(s);
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, APLOGNO(01766)
"gc'd %ld client entries. Total new clients: "
"%ld; Total removed clients: %ld; Total renewed clients: "
"%ld", num_removed,
client_list->num_created - client_list->num_renewed,
client_list->num_removed, client_list->num_renewed);
- entry = apr_rmm_addr_get(client_rmm, apr_rmm_malloc(client_rmm, sizeof(client_entry)));
+ entry = rmm_malloc(client_rmm, sizeof(client_entry));
if (!entry) {
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(01767)
"unable to allocate new auth_digest client");
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -842,7 +842,7 @@ static int check_authn(request_rec * r,
break;
}
- /* If we're returning 403, tell them to try again. */
+ /* If we're returning 401, tell them to try again. */
if (return_code == HTTP_UNAUTHORIZED) {
note_cookie_auth_failure(r);
}
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/NWGNUsocachmem
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/NWGNUsocachmem?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/NWGNUsocachmem (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/NWGNUsocachmem Tue Jan 31 09:52:02 2017
@@ -26,6 +26,7 @@ XINCDIRS += \
$(APR)/include \
$(APRUTIL)/include \
$(AP_WORK)/include \
+ $(STDMOD)/generators \
$(AP_WORK)/server/mpm/netware \
$(NWOS) \
$(EOLIST)
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_storage.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_storage.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_storage.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_storage.c Tue Jan 31 09:52:02 2017
@@ -115,7 +115,7 @@ int cache_create_entity(cache_request_re
static int filter_header_do(void *v, const char *key, const char *val)
{
- if ((*key == 'W' || *key == 'w') && !strcasecmp(key, "Warning")
+ if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning")
&& *val == '1') {
/* any stored Warning headers with warn-code 1xx (see section
* 14.46) MUST be deleted from the cache entry and the forwarded
@@ -129,7 +129,7 @@ static int filter_header_do(void *v, con
}
static int remove_header_do(void *v, const char *key, const char *val)
{
- if ((*key == 'W' || *key == 'w') && !strcasecmp(key, "Warning")) {
+ if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning")) {
/* any stored Warning headers with warn-code 2xx MUST be retained
* in the cache entry and the forwarded response.
*/
@@ -427,7 +427,9 @@ int cache_select(cache_request_rec *cach
}
static apr_status_t cache_canonicalise_key(request_rec *r, apr_pool_t* p,
- const char *uri, apr_uri_t *parsed_uri, const char **key)
+ const char *uri, const char *query,
+ apr_uri_t *parsed_uri,
+ const char **key)
{
cache_server_conf *conf;
char *port_str, *hn, *lcs;
@@ -563,7 +565,7 @@ static apr_status_t cache_canonicalise_k
* if needed.
*/
path = uri;
- querystring = parsed_uri->query;
+ querystring = apr_pstrdup(p, query ? query : parsed_uri->query);
if (conf->ignore_session_id->nelts) {
int i;
char **identifier;
@@ -588,7 +590,7 @@ static apr_status_t cache_canonicalise_k
/*
* Check if the identifier is in the querystring and cut it out.
*/
- if (querystring) {
+ if (querystring && *querystring) {
/*
* First check if the identifier is at the beginning of the
* querystring and followed by a '='
@@ -605,7 +607,7 @@ static apr_status_t cache_canonicalise_k
* identifier with a '&' and append a '='
*/
complete = apr_pstrcat(p, "&", *identifier, "=", NULL);
- param = strstr(querystring, complete);
+ param = ap_strstr_c(querystring, complete);
/* If we found something we are sitting on the '&' */
if (param) {
param++;
@@ -669,7 +671,11 @@ static apr_status_t cache_canonicalise_k
apr_status_t cache_generate_key_default(request_rec *r, apr_pool_t* p,
const char **key)
{
- return cache_canonicalise_key(r, p, r->uri, &r->parsed_uri, key);
+ /* We want the actual query-string, which may differ from
+ * r->parsed_uri.query (immutable), so use "" (not NULL).
+ */
+ const char *args = r->args ? r->args : "";
+ return cache_canonicalise_key(r, p, r->uri, args, &r->parsed_uri, key);
}
/*
@@ -709,12 +715,13 @@ int cache_invalidate(cache_request_rec *
location = apr_table_get(r->headers_out, "Location");
if (location) {
- if (APR_SUCCESS != apr_uri_parse(r->pool, location, &location_uri)
- || APR_SUCCESS
- != cache_canonicalise_key(r, r->pool, location,
- &location_uri, &location_key)
- || !(r->parsed_uri.hostname && location_uri.hostname
- && !strcmp(r->parsed_uri.hostname,
+ if (apr_uri_parse(r->pool, location, &location_uri)
+ || cache_canonicalise_key(r, r->pool,
+ location, NULL,
+ &location_uri, &location_key)
+ || !(r->parsed_uri.hostname
+ && location_uri.hostname
+ && !strcmp(r->parsed_uri.hostname,
location_uri.hostname))) {
location_key = NULL;
}
@@ -722,14 +729,15 @@ int cache_invalidate(cache_request_rec *
content_location = apr_table_get(r->headers_out, "Content-Location");
if (content_location) {
- if (APR_SUCCESS
- != apr_uri_parse(r->pool, content_location,
- &content_location_uri)
- || APR_SUCCESS
- != cache_canonicalise_key(r, r->pool, content_location,
- &content_location_uri, &content_location_key)
- || !(r->parsed_uri.hostname && content_location_uri.hostname
- && !strcmp(r->parsed_uri.hostname,
+ if (apr_uri_parse(r->pool, content_location,
+ &content_location_uri)
+ || cache_canonicalise_key(r, r->pool,
+ content_location, NULL,
+ &content_location_uri,
+ &content_location_key)
+ || !(r->parsed_uri.hostname
+ && content_location_uri.hostname
+ && !strcmp(r->parsed_uri.hostname,
content_location_uri.hostname))) {
content_location_key = NULL;
}
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.c Tue Jan 31 09:52:02 2017
@@ -31,8 +31,9 @@ extern module AP_MODULE_DECLARE_DATA cac
* in "filter". All but the path comparisons are case-insensitive.
*/
static int uri_meets_conditions(const apr_uri_t *filter, const int pathlen,
- const apr_uri_t *url)
+ request_rec *r)
{
+ const apr_uri_t *url = &r->parsed_uri;
/* Scheme, hostname port and local part. The filter URI and the
* URI we test may have the following shapes:
@@ -55,7 +56,7 @@ static int uri_meets_conditions(const ap
}
else {
/* The URI scheme must be present and identical except for case. */
- if (!url->scheme || strcasecmp(filter->scheme, url->scheme)) {
+ if (!url->scheme || ap_cstr_casecmp(filter->scheme, url->scheme)) {
return 0;
}
@@ -113,7 +114,7 @@ static int uri_meets_conditions(const ap
/* For HTTP caching purposes, an empty (NULL) path is equivalent to
* a single "/" path. RFCs 3986/2396
*/
- if (!url->path) {
+ if (!r->uri) {
if (*filter->path == '/' && pathlen == 1) {
return 1;
}
@@ -125,7 +126,7 @@ static int uri_meets_conditions(const ap
/* Url has met all of the filter conditions so far, determine
* if the paths match.
*/
- return !strncmp(filter->path, url->path, pathlen);
+ return !strncmp(filter->path, r->uri, pathlen);
}
static cache_provider_list *get_provider(request_rec *r, struct cache_enable *ent,
@@ -167,8 +168,7 @@ static cache_provider_list *get_provider
}
cache_provider_list *cache_get_providers(request_rec *r,
- cache_server_conf *conf,
- apr_uri_t uri)
+ cache_server_conf *conf)
{
cache_dir_conf *dconf = ap_get_module_config(r->per_dir_config, &cache_module);
cache_provider_list *providers = NULL;
@@ -183,7 +183,7 @@ cache_provider_list *cache_get_providers
for (i = 0; i < conf->cachedisable->nelts; i++) {
struct cache_disable *ent =
(struct cache_disable *)conf->cachedisable->elts;
- if (uri_meets_conditions(&ent[i].url, ent[i].pathlen, &uri)) {
+ if (uri_meets_conditions(&ent[i].url, ent[i].pathlen, r)) {
/* Stop searching now. */
return NULL;
}
@@ -200,7 +200,7 @@ cache_provider_list *cache_get_providers
for (i = 0; i < conf->cacheenable->nelts; i++) {
struct cache_enable *ent =
(struct cache_enable *)conf->cacheenable->elts;
- if (uri_meets_conditions(&ent[i].url, ent[i].pathlen, &uri)) {
+ if (uri_meets_conditions(&ent[i].url, ent[i].pathlen, r)) {
providers = get_provider(r, &ent[i], providers);
}
}
@@ -284,7 +284,25 @@ apr_status_t cache_try_lock(cache_server
/* create the key if it doesn't exist */
if (!cache->key) {
- cache_generate_key(r, r->pool, &cache->key);
+ cache_handle_t *h;
+ /*
+ * Try to use the key of a possible open but stale cache
+ * entry if we have one.
+ */
+ if (cache->handle != NULL) {
+ h = cache->handle;
+ }
+ else {
+ h = cache->stale_handle;
+ }
+ if ((h != NULL) &&
+ (h->cache_obj != NULL) &&
+ (h->cache_obj->key != NULL)) {
+ cache->key = apr_pstrdup(r->pool, h->cache_obj->key);
+ }
+ else {
+ cache_generate_key(r, r->pool, &cache->key);
+ }
}
/* create a hashed filename from the key, and save it for later */
@@ -315,7 +333,7 @@ apr_status_t cache_try_lock(cache_server
status = apr_stat(&finfo, lockname,
APR_FINFO_MTIME | APR_FINFO_NLINK, r->pool);
if (!(APR_STATUS_IS_ENOENT(status)) && APR_SUCCESS != status) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_EEXIST, r, APLOGNO(00779)
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00779)
"Could not stat a cache lock file: %s",
lockname);
return status;
@@ -981,12 +999,7 @@ int ap_cache_control(request_rec *r, cac
char *header = apr_pstrdup(r->pool, pragma_header);
const char *token = cache_strqtok(header, CACHE_SEPARATOR, &last);
while (token) {
- /* handle most common quickest case... */
- if (!strcmp(token, "no-cache")) {
- cc->no_cache = 1;
- }
- /* ...then try slowest case */
- else if (!strcasecmp(token, "no-cache")) {
+ if (!ap_cstr_casecmp(token, "no-cache")) {
cc->no_cache = 1;
}
token = cache_strqtok(NULL, CACHE_SEPARATOR, &last);
@@ -1003,52 +1016,36 @@ int ap_cache_control(request_rec *r, cac
switch (token[0]) {
case 'n':
case 'N': {
- /* handle most common quickest cases... */
- if (!strcmp(token, "no-cache")) {
- cc->no_cache = 1;
- }
- else if (!strcmp(token, "no-store")) {
- cc->no_store = 1;
- }
- /* ...then try slowest cases */
- else if (!strncasecmp(token, "no-cache", 8)) {
+ if (!ap_cstr_casecmpn(token, "no-cache", 8)) {
if (token[8] == '=') {
cc->no_cache_header = 1;
}
else if (!token[8]) {
cc->no_cache = 1;
}
- break;
}
- else if (!strcasecmp(token, "no-store")) {
+ else if (!ap_cstr_casecmp(token, "no-store")) {
cc->no_store = 1;
}
- else if (!strcasecmp(token, "no-transform")) {
+ else if (!ap_cstr_casecmp(token, "no-transform")) {
cc->no_transform = 1;
}
break;
}
case 'm':
case 'M': {
- /* handle most common quickest cases... */
- if (!strcmp(token, "max-age=0")) {
- cc->max_age = 1;
- cc->max_age_value = 0;
- }
- else if (!strcmp(token, "must-revalidate")) {
- cc->must_revalidate = 1;
- }
- /* ...then try slowest cases */
- else if (!strncasecmp(token, "max-age", 7)) {
+ if (!ap_cstr_casecmpn(token, "max-age", 7)) {
if (token[7] == '='
&& !apr_strtoff(&offt, token + 8, &endp, 10)
&& endp > token + 8 && !*endp) {
cc->max_age = 1;
cc->max_age_value = offt;
}
- break;
}
- else if (!strncasecmp(token, "max-stale", 9)) {
+ else if (!ap_cstr_casecmp(token, "must-revalidate")) {
+ cc->must_revalidate = 1;
+ }
+ else if (!ap_cstr_casecmpn(token, "max-stale", 9)) {
if (token[9] == '='
&& !apr_strtoff(&offt, token + 10, &endp, 10)
&& endp > token + 10 && !*endp) {
@@ -1059,63 +1056,51 @@ int ap_cache_control(request_rec *r, cac
cc->max_stale = 1;
cc->max_stale_value = -1;
}
- break;
}
- else if (!strncasecmp(token, "min-fresh", 9)) {
+ else if (!ap_cstr_casecmpn(token, "min-fresh", 9)) {
if (token[9] == '='
&& !apr_strtoff(&offt, token + 10, &endp, 10)
&& endp > token + 10 && !*endp) {
cc->min_fresh = 1;
cc->min_fresh_value = offt;
}
- break;
- }
- else if (!strcasecmp(token, "must-revalidate")) {
- cc->must_revalidate = 1;
}
break;
}
case 'o':
case 'O': {
- if (!strcasecmp(token, "only-if-cached")) {
+ if (!ap_cstr_casecmp(token, "only-if-cached")) {
cc->only_if_cached = 1;
}
break;
}
case 'p':
case 'P': {
- /* handle most common quickest cases... */
- if (!strcmp(token, "private")) {
- cc->private = 1;
- }
- /* ...then try slowest cases */
- else if (!strcasecmp(token, "public")) {
+ if (!ap_cstr_casecmp(token, "public")) {
cc->public = 1;
}
- else if (!strncasecmp(token, "private", 7)) {
+ else if (!ap_cstr_casecmpn(token, "private", 7)) {
if (token[7] == '=') {
cc->private_header = 1;
}
else if (!token[7]) {
cc->private = 1;
}
- break;
}
- else if (!strcasecmp(token, "proxy-revalidate")) {
+ else if (!ap_cstr_casecmp(token, "proxy-revalidate")) {
cc->proxy_revalidate = 1;
}
break;
}
case 's':
case 'S': {
- if (!strncasecmp(token, "s-maxage", 8)) {
+ if (!ap_cstr_casecmpn(token, "s-maxage", 8)) {
if (token[8] == '='
&& !apr_strtoff(&offt, token + 9, &endp, 10)
&& endp > token + 9 && !*endp) {
cc->s_maxage = 1;
cc->s_maxage_value = offt;
}
- break;
}
break;
}
@@ -1145,8 +1130,7 @@ static int cache_control_remove(request_
switch (token[0]) {
case 'n':
case 'N': {
- if (!strncmp(token, "no-cache", 8)
- || !strncasecmp(token, "no-cache", 8)) {
+ if (!ap_cstr_casecmpn(token, "no-cache", 8)) {
if (token[8] == '=') {
const char *header = cache_strqtok(token + 9,
CACHE_SEPARATOR "\"", &slast);
@@ -1163,8 +1147,7 @@ static int cache_control_remove(request_
}
case 'p':
case 'P': {
- if (!strncmp(token, "private", 7)
- || !strncasecmp(token, "private", 7)) {
+ if (!ap_cstr_casecmpn(token, "private", 7)) {
if (token[7] == '=') {
const char *header = cache_strqtok(token + 8,
CACHE_SEPARATOR "\"", &slast);
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.h?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.h (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/cache_util.h Tue Jan 31 09:52:02 2017
@@ -300,7 +300,7 @@ apr_status_t cache_remove_lock(cache_ser
cache_request_rec *cache, request_rec *r, apr_bucket_brigade *bb);
cache_provider_list *cache_get_providers(request_rec *r,
- cache_server_conf *conf, apr_uri_t uri);
+ cache_server_conf *conf);
/**
* Get a value from a table, where the table may contain multiple
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=1781045&r1=1781044&r2=1781045&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 Tue Jan 31 09:52:02 2017
@@ -103,7 +103,7 @@ static int cache_quick_handler(request_r
/*
* Which cache module (if any) should handle this request?
*/
- if (!(providers = cache_get_providers(r, conf, r->parsed_uri))) {
+ if (!(providers = cache_get_providers(r, conf))) {
return DECLINED;
}
@@ -413,7 +413,7 @@ static int cache_handler(request_rec *r)
/*
* Which cache module (if any) should handle this request?
*/
- if (!(providers = cache_get_providers(r, conf, r->parsed_uri))) {
+ if (!(providers = cache_get_providers(r, conf))) {
return DECLINED;
}
@@ -973,12 +973,20 @@ static apr_status_t cache_save_filter(ap
/* Have we received a 304 response without any headers at all? Fall back to
* the original headers in the original cached request.
*/
- if (r->status == HTTP_NOT_MODIFIED && cache->stale_handle && !cc_out
- && !pragma) {
- cc_out = cache_table_getm(r->pool, cache->stale_handle->resp_hdrs,
- "Cache-Control");
- pragma = cache_table_getm(r->pool, cache->stale_handle->resp_hdrs,
- "Pragma");
+ if (r->status == HTTP_NOT_MODIFIED && cache->stale_handle) {
+ if (!cc_out && !pragma) {
+ cc_out = cache_table_getm(r->pool, cache->stale_handle->resp_hdrs,
+ "Cache-Control");
+ pragma = cache_table_getm(r->pool, cache->stale_handle->resp_hdrs,
+ "Pragma");
+ }
+
+ /* 304 does not contain Content-Type and mod_mime regenerates the
+ * Content-Type based on the r->filename. This would lead to original
+ * Content-Type to be lost (overwriten by whatever mod_mime generates).
+ * We preserves the original Content-Type here. */
+ ap_set_content_type(r, apr_table_get(
+ cache->stale_handle->resp_hdrs, "Content-Type"));
}
/* Parse the cache control header */
@@ -1017,6 +1025,8 @@ static apr_status_t cache_save_filter(ap
* include the following: an Expires header (section 14.21); a
* "max-age", "s-maxage", "must-revalidate", "proxy-revalidate",
* "public" or "private" cache-control directive (section 14.9).
+ *
+ * FIXME: Wrong if cc_out has just an extension we don't know about
*/
}
else {
@@ -1031,9 +1041,12 @@ static apr_status_t cache_save_filter(ap
/* if a broken Expires header is present, don't cache it */
reason = apr_pstrcat(p, "Broken expires header: ", exps, NULL);
}
- else if (!dconf->store_expired && exp != APR_DATE_BAD
+ else if (!control.s_maxage && !control.max_age
+ && !dconf->store_expired && exp != APR_DATE_BAD
&& exp < r->request_time) {
- /* if a Expires header is in the past, don't cache it */
+ /* if a Expires header is in the past, don't cache it
+ * Unless CC: s-maxage or max-age is present
+ */
reason = "Expires header already expired; not cacheable";
}
else if (!dconf->store_expired && (control.must_revalidate
@@ -1177,8 +1190,8 @@ static apr_status_t cache_save_filter(ap
ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(02473)
"cache: %s responded with an uncacheable 304, "
- "retrying the request. Reason: %s",
- r->unparsed_uri, reason);
+ "retrying the request %s. Reason: %s",
+ cache->key, r->unparsed_uri, reason);
/* we've got a cache conditional miss! tell anyone who cares */
cache_run_cache_status(cache->handle, r, r->headers_out, AP_CACHE_MISS,
@@ -1212,8 +1225,8 @@ static apr_status_t cache_save_filter(ap
if (reason) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00768)
- "cache: %s not cached. Reason: %s", r->unparsed_uri,
- reason);
+ "cache: %s not cached for request %s. Reason: %s",
+ cache->key, r->unparsed_uri, reason);
/* we've got a cache miss! tell anyone who cares */
cache_run_cache_status(cache->handle, r, r->headers_out, AP_CACHE_MISS,
@@ -1331,7 +1344,8 @@ static apr_status_t cache_save_filter(ap
}
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00769)
- "cache: Caching url: %s", r->unparsed_uri);
+ "cache: Caching url %s for request %s",
+ cache->key, r->unparsed_uri);
/* We are actually caching this response. So it does not
* make sense to remove this entity any more.
@@ -1387,7 +1401,26 @@ static apr_status_t cache_save_filter(ap
"replacing with now");
}
+
+ /* CC has priority over Expires. */
+ if (control.s_maxage || control.max_age) {
+ apr_int64_t x;
+
+ x = control.s_maxage ? control.s_maxage_value : control.max_age_value;
+ x = x * MSEC_ONE_SEC;
+
+ if (x < dconf->minex) {
+ x = dconf->minex;
+ }
+ if (x > dconf->maxex) {
+ x = dconf->maxex;
+ }
+ exp = date + x;
+ }
+
/* if no expiry date then
+ * if Cache-Control: s-maxage
+ * expiry date = date + smaxage
* if Cache-Control: max-age
* expiry date = date + max-age
* else if lastmod
@@ -1395,28 +1428,9 @@ static apr_status_t cache_save_filter(ap
* else
* expire date = date + defaultexpire
*/
- if (exp == APR_DATE_BAD) {
-
- if (control.max_age) {
- apr_int64_t x;
- errno = 0;
- x = control.max_age_value;
- if (errno) {
- x = dconf->defex;
- }
- else {
- x = x * MSEC_ONE_SEC;
- }
- if (x < dconf->minex) {
- x = dconf->minex;
- }
- if (x > dconf->maxex) {
- x = dconf->maxex;
- }
- exp = date + x;
- }
- else if ((lastmod != APR_DATE_BAD) && (lastmod < date)) {
+ if (exp == APR_DATE_BAD) {
+ if ((lastmod != APR_DATE_BAD) && (lastmod < date)) {
/* if lastmod == date then you get 0*conf->factor which results in
* an expiration time of now. This causes some problems with
* freshness calculations, so we choose the else path...
@@ -1558,6 +1572,9 @@ static apr_status_t cache_save_filter(ap
/* let someone else attempt to cache */
cache_remove_lock(conf, cache, r, NULL);
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r, APLOGNO(02971)
+ "cache: serving %s (revalidated)", r->uri);
+
return ap_pass_brigade(f->next, bb);
}
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache_disk.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache_disk.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache_disk.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_cache_disk.c Tue Jan 31 09:52:02 2017
@@ -786,7 +786,7 @@ static apr_status_t read_table(cache_han
/* ### What about APR_EOF? */
rv = apr_file_gets(w, MAX_STRING_LEN - 1, file);
if (rv != APR_SUCCESS) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00717)
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(00717)
"Premature end of cache headers.");
return rv;
}
@@ -865,6 +865,7 @@ static apr_status_t read_table(cache_han
static apr_status_t recall_headers(cache_handle_t *h, request_rec *r)
{
disk_cache_object_t *dobj = (disk_cache_object_t *) h->cache_obj->vobj;
+ apr_status_t rv;
/* This case should not happen... */
if (!dobj->hdrs.fd) {
@@ -877,8 +878,18 @@ static apr_status_t recall_headers(cache
h->resp_hdrs = apr_table_make(r->pool, 20);
/* Call routine to read the header lines/status line */
- read_table(h, r, h->resp_hdrs, dobj->hdrs.fd);
- read_table(h, r, h->req_hdrs, dobj->hdrs.fd);
+ rv = read_table(h, r, h->resp_hdrs, dobj->hdrs.fd);
+ if (rv != APR_SUCCESS) {
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02987)
+ "Error reading response headers from %s for %s",
+ dobj->hdrs.file, dobj->name);
+ }
+ rv = read_table(h, r, h->req_hdrs, dobj->hdrs.fd);
+ if (rv != APR_SUCCESS) {
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02988)
+ "Error reading request headers from %s for %s",
+ dobj->hdrs.file, dobj->name);
+ }
apr_file_close(dobj->hdrs.fd);
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_file_cache.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_file_cache.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_file_cache.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_file_cache.c Tue Jan 31 09:52:02 2017
@@ -312,10 +312,10 @@ static int file_cache_handler(request_re
int errstatus;
int rc = OK;
- /* XXX: not sure if this is right yet
- * see comment in http_core.c:default_handler
+ /* Bail out if r->handler isn't the default value, and doesn't look like a Content-Type
+ * XXX: Even though we made the user explicitly list each path to cache?
*/
- if (ap_strcmp_match(r->handler, "*/*")) {
+ if (ap_strcmp_match(r->handler, "*/*") && !AP_IS_DEFAULT_HANDLER_NAME(r->handler)) {
return DECLINED;
}
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.c Tue Jan 31 09:52:02 2017
@@ -17,6 +17,7 @@
#include "httpd.h"
#include "http_config.h"
+#include "http_protocol.h"
#include "apr.h"
#include "apu_version.h"
@@ -33,6 +34,8 @@
#include "ap_mpm.h"
#include "http_log.h"
#include "apr_memcache.h"
+#include "apr_strings.h"
+#include "mod_status.h"
/* The underlying apr_memcache system is thread safe.. */
#define MC_KEY_LEN 254
@@ -214,8 +217,14 @@ static apr_status_t socache_mc_store(ap_
return APR_EINVAL;
}
- /* In APR-util - unclear what 'timeout' is, as it was not implemented */
- rv = apr_memcache_set(ctx->mc, buf, (char*)ucaData, nData, 0, 0);
+ /* memcache needs time in seconds till expiry; fail if this is not
+ * positive *before* casting to unsigned (apr_uint32_t). */
+ expiry -= apr_time_now();
+ if (apr_time_sec(expiry) <= 0) {
+ return APR_EINVAL;
+ }
+ rv = apr_memcache_set(ctx->mc, buf, (char*)ucaData, nData,
+ apr_time_sec(expiry), 0);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, rv, s, APLOGNO(00790)
@@ -287,7 +296,58 @@ static apr_status_t socache_mc_remove(ap
static void socache_mc_status(ap_socache_instance_t *ctx, request_rec *r, int flags)
{
- /* TODO: Make a mod_status handler. meh. */
+ apr_memcache_t *rc = ctx->mc;
+ int i;
+
+ for (i = 0; i < rc->ntotal; i++) {
+ apr_memcache_server_t *ms;
+ apr_memcache_stats_t *stats;
+ apr_status_t rv;
+ char *br = (!(flags & AP_STATUS_SHORT) ? "<br />" : "");
+
+ ms = rc->live_servers[i];
+
+ ap_rprintf(r, "Memcached server: %s:%d [%s]%s\n", ms->host, (int)ms->port,
+ (ms->status == APR_MC_SERVER_LIVE) ? "Up" : "Down",
+ br);
+ rv = apr_memcache_stats(ms, r->pool, &stats);
+ if (rv != APR_SUCCESS)
+ continue;
+ if (!(flags & AP_STATUS_SHORT)) {
+ ap_rprintf(r, "<b>Version:</b> <i>%s</i> [%u bits], PID: <i>%u</i>, Uptime: <i>%u hrs</i> <br />\n",
+ stats->version , stats->pointer_size, stats->pid, stats->uptime/3600);
+ ap_rprintf(r, "<b>Clients::</b> Structures: <i>%u</i>, Total: <i>%u</i>, Current: <i>%u</i> <br />\n",
+ stats->connection_structures, stats->total_connections, stats->curr_connections);
+ ap_rprintf(r, "<b>Storage::</b> Total Items: <i>%u</i>, Current Items: <i>%u</i>, Bytes: <i>%" APR_UINT64_T_FMT "</i> <br />\n",
+ stats->total_items, stats->curr_items, stats->bytes);
+ ap_rprintf(r, "<b>CPU::</b> System: <i>%u</i>, User: <i>%u</i> <br />\n",
+ (unsigned)stats->rusage_system, (unsigned)stats->rusage_user );
+ ap_rprintf(r, "<b>Cache::</b> Gets: <i>%u</i>, Sets: <i>%u</i>, Hits: <i>%u</i>, Misses: <i>%u</i> <br />\n",
+ stats->cmd_get, stats->cmd_set, stats->get_hits, stats->get_misses);
+ ap_rprintf(r, "<b>Net::</b> Input bytes: <i>%" APR_UINT64_T_FMT "</i>, Output bytes: <i>%" APR_UINT64_T_FMT "</i> <br />\n",
+ stats->bytes_read, stats->bytes_written);
+ ap_rprintf(r, "<b>Misc::</b> Evictions: <i>%" APR_UINT64_T_FMT "</i>, MaxMem: <i>%u</i>, Threads: <i>%u</i> <br />\n",
+ stats->evictions, stats->limit_maxbytes, stats->threads);
+ ap_rputs("<hr><br />\n", r);
+ }
+ else {
+ ap_rprintf(r, "Version: %s [%u bits], PID: %u, Uptime: %u hrs %s\n",
+ stats->version , stats->pointer_size, stats->pid, stats->uptime/3600, br);
+ ap_rprintf(r, "Clients:: Structures: %d, Total: %d, Current: %u %s\n",
+ stats->connection_structures, stats->total_connections, stats->curr_connections, br);
+ ap_rprintf(r, "Storage:: Total Items: %u, Current Items: %u, Bytes: %" APR_UINT64_T_FMT " %s\n",
+ stats->total_items, stats->curr_items, stats->bytes, br);
+ ap_rprintf(r, "CPU:: System: %u, User: %u %s\n",
+ (unsigned)stats->rusage_system, (unsigned)stats->rusage_user , br);
+ ap_rprintf(r, "Cache:: Gets: %u, Sets: %u, Hits: %u, Misses: %u %s\n",
+ stats->cmd_get, stats->cmd_set, stats->get_hits, stats->get_misses, br);
+ ap_rprintf(r, "Net:: Input bytes: %" APR_UINT64_T_FMT ", Output bytes: %" APR_UINT64_T_FMT " %s\n",
+ stats->bytes_read, stats->bytes_written, br);
+ ap_rprintf(r, "Misc:: Evictions: %" APR_UINT64_T_FMT ", MaxMem: %u, Threads: %u %s\n",
+ stats->evictions, stats->limit_maxbytes, stats->threads, br);
+ }
+ }
+
}
static apr_status_t socache_mc_iterate(ap_socache_instance_t *instance,
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.dsp
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.dsp?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.dsp (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.dsp Tue Jan 31 09:52:02 2017
@@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "mod_socache_memcache_EXPORTS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_socache_memcache_src" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_socache_memcache_src" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -75,7 +75,7 @@ PostBuild_Cmds=if exist $(TargetPath).ma
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_socache_memcache_src" /FD /c
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_socache_memcache_src" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.mak
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.mak?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.mak (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/cache/mod_socache_memcache.mak Tue Jan 31 09:52:02 2017
@@ -62,7 +62,7 @@ CLEAN :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_memcache_src" /FD /c
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_memcache_src" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
@@ -166,7 +166,7 @@ CLEAN :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_memcache_src" /FD /EHsc /c
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../srclib/apr-util/include" /I "../../srclib/apr/include" /I "../../include" /I "../generators" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_socache_memcache_src" /FD /EHsc /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
Modified: httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_ext_filter.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_ext_filter.c?rev=1781045&r1=1781044&r2=1781045&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_ext_filter.c (original)
+++ httpd/httpd/branches/2.4.x-openssl-1.1.0-compat/modules/filters/mod_ext_filter.c Tue Jan 31 09:52:02 2017
@@ -757,6 +757,13 @@ static int ef_unified_filter(ap_filter_t
break;
}
+ if (AP_BUCKET_IS_ERROR(b)) {
+ apr_bucket *cpy;
+ apr_bucket_copy(b, &cpy);
+ APR_BRIGADE_INSERT_TAIL(bb_tmp, cpy);
+ break;
+ }
+
rv = apr_bucket_read(b, &data, &len, APR_BLOCK_READ);
if (rv != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01463) "apr_bucket_read()");