blob: 1a257ba7462e94e27471d38fcd49ccd81fe5fe6b [file] [log] [blame]
<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libapreq2-2.17: FAQ</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="customdoxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr style="height: 56px;">
<!--
<td id="projectlogo"><img alt="Logo" src="feather.png"/></td>
-->
<!--
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libapreq2
< !--BEGIN PROJECT_NUMBER-- >&#160;<span id="projectnumber">2.17</span>< !--END PROJECT_NUMBER-- >
</div>
< !--BEGIN PROJECT_BRIEF-- ><div id="projectbrief"></div>< !--END PROJECT_BRIEF-- >
</td>
-->
<td>
<div id="page-header">
<p class="menu">
<a href="https://www.apache.org/">Apache Software Foundation</a> &gt;
<a href="https://httpd.apache.org">HTTP Server Project</a> &gt;
<a href="https://httpd.apache.org/apreq/">Request Library Subproject</a>
</p>
<p class="apache">Apache HTTP Server Request Library - 2.17</p>
<img alt="" src="feather.png" />
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">FAQ </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">
<ul id="index">
<li><a href="#Issues-during-installation">Issues during installation.</a></li>
<li><a href="#Using-libapreq2-with-Apache2-and-mod_perl2">Using libapreq2 with Apache2 and mod_perl2.</a>
<ul>
<li><a href="#I-keep-getting-undefined-symbol-errors-whenever-I-use-Apache2::Request-or-APR::Request::Apache2">I keep getting &quot;undefined symbol&quot; errors whenever I use Apache2::Request or APR::Request::Apache2.</a></li>
<li><a href="#When-I-use-Apache2::Request-in-my-output-filter-it-seems-to-lose-the-incoming-POST-variables">When I use Apache2::Request in my output filter, it seems to lose the incoming POST variables.</a></li>
<li><a href="#When-I-try-to-upload-a-file-why-do-I-get-this-error-error-Cant-locate-...-Apache2-Request-upload.al-in-INC">When I try to upload a file, why do I get this error &quot;[error] Can&#39;t locate .../Apache2/Request/upload.al in @INC&quot;?</a></li>
</ul>
</li>
<li><a href="#Using-libapreq2-outside-of-Apache">Using libapreq2 outside of Apache.</a></li>
<li><a href="#Contributing-to-apreq-development">Contributing to apreq development.</a>
<ul>
<li><a href="#How-is-the-subversion-repository-managed">How is the subversion repository managed?</a></li>
</ul>
</li>
</ul>
<h1 id="Issues-during-installation">Issues during installation.</h1>
<p>[...]</p>
<h1 id="Using-libapreq2-with-Apache2-and-mod_perl2">Using libapreq2 with Apache2 and mod_perl2.</h1>
<h2 id="I-keep-getting-undefined-symbol-errors-whenever-I-use-Apache2::Request-or-APR::Request::Apache2">I keep getting &quot;undefined symbol&quot; errors whenever I use Apache2::Request or APR::Request::Apache2.</h2>
<p>You need to load mod_apreq2.so at server startup, which grabs all the required symbols at server startup. Be sure your server config contains a line like</p>
<pre><code>LoadModule apreq_module modules/mod_apreq2.so</code></pre>
<h2 id="When-I-use-Apache2::Request-in-my-output-filter-it-seems-to-lose-the-incoming-POST-variables">When I use Apache2::Request in my output filter, it seems to lose the incoming POST variables.</h2>
<p>The problem is likely that the mod_apreq2 filter has not been added to the input filter chain in time to read the POST data.</p>
<p>There are two solutions to this problem:</p>
<pre><code>1) Write a filter init handler for you filter that instantiates an
Apache2::Request object.
https://perl.apache.org/docs/2.0/api/Apache2/Filter.html#C_FilterInitHandler_
2) Use .htaccess or your server config to ensure the apreq input filter
is active for this request with &quot;AddInputFilter APREQ&quot; or somesuch.</code></pre>
<p>We recommend using (1), and falling back to (2) until you get (1) working.</p>
<h2 id="When-I-try-to-upload-a-file-why-do-I-get-this-error-error-Cant-locate-...-Apache2-Request-upload.al-in-INC">When I try to upload a file, why do I get this error &quot;[error] Can&#39;t locate .../Apache2/Request/upload.al in @INC&quot;?</h2>
<p><i>Apache2::Upload</i> is now a separate module in apreq2, so you need to <code>use Apache2::Upload</code> to load the <code>Apache2::Request::upload</code> function.</p>
<p>This also applies to &quot;Can&#39;t locate auto/APR/Request/Param/slurp.al in @INC&quot;. This is because <i>Apache2::Upload</i> is implement by wrapping the <i>APR::Request::*</i> packages.</p>
<h1 id="Using-libapreq2-outside-of-Apache">Using libapreq2 outside of Apache.</h1>
<p>[...]</p>
<h1 id="Contributing-to-apreq-development">Contributing to apreq development.</h1>
<h2 id="How-is-the-subversion-repository-managed">How is the subversion repository managed?</h2>
<p>apreq&#39;s repository is broken into three subdirectories:</p>
<pre><code>/trunk - the current codebase for active development.
/tags - release snapshots.
/branches - where older releases and experimental development lines live.</code></pre>
<p>apreq follows a Commit-then-Review policy for its entire repository, but being a shared library places certain restrictions on the admissible changes for stable trees. Basically the header files cannot be modified; only new functions and structures may be added to them. Any time that happens, the minor-version needs to be bumped, and the patch-level gets reset to zero. Changes that only modify the library&#39;s implementation (.c) files require a bump to the patch-level. On stable trees, this version tracking should happen on each commit, to make auditing easy for other developers without resorting to a draconian Review-then-Commit policy.</p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<hr class="footer"/>
<table class="footer">
<td>
<address class="footer_left"><small>
Copyright &copy; 2003-2022 <a href="https://www.apache.org">The Apache Software Foundation</a>.<br/>
See <a href="apreq_license.html">LICENSE</a>.
</small></address>
</td>
<td>
<address class="footer"><small>
Generated on Sat Sep 3 2022 17:23:06 for libapreq2 by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</td>
</table>
</body>
</html>