You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bu...@apache.org on 2012/05/06 16:18:10 UTC

svn commit: r816029 [12/23] - in /websites/staging/httpd/trunk/content: ./ apreq/ apreq/docs/ apreq/docs/libapreq2/ contributors/ css/ dev/ dev/images/ dev/whiteboard/ docs-project/ docs/ images/ info/ info/css-security/ library/ mod_fcgid/ mod_ftp/ mo...

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__cookie.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__cookie.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__cookie.html Sun May  6 14:18:02 2012
@@ -0,0 +1,651 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Apache2::Cookie</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Apache2::Cookie<br>
+<small>
+[<a class="el" href="group__apreq__xs.html">Perl</a>]</small>
+</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+
+
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+	<li><a href="#apache2__cookie__jar">Apache2::Cookie::Jar</a></li>
+	<ul>
+
+		<li><a href="#new">new</a></li>
+		<li><a href="#cookies">cookies</a></li>
+		<li><a href="#status">status</a></li>
+	</ul>
+
+	<li><a href="#apache2__cookie">Apache2::Cookie</a></li>
+	<ul>
+
+		<li><a href="#new">new</a></li>
+		<li><a href="#freeze">freeze</a></li>
+		<li><a href="#thaw">thaw</a></li>
+		<li><a href="#as_string">as_string</a></li>
+		<li><a href="#name">name</a></li>
+		<li><a href="#value">value</a></li>
+		<li><a href="#raw_value">raw_value</a></li>
+		<li><a href="#bake">bake</a></li>
+		<li><a href="#bake2">bake2</a></li>
+		<li><a href="#domain">domain</a></li>
+		<li><a href="#path">path</a></li>
+		<li><a href="#version">version</a></li>
+		<li><a href="#expires">expires</a></li>
+		<li><a href="#secure">secure</a></li>
+		<li><a href="#httponly">httponly</a></li>
+		<li><a href="#httponly">httponly</a></li>
+		<li><a href="#comment">comment</a></li>
+		<li><a href="#commenturl">commentURL</a></li>
+		<li><a href="#fetch">fetch</a></li>
+	</ul>
+
+	<li><a href="#porting_from_1_x">PORTING from 1.X</a></li>
+	<li><a href="#see_also">SEE ALSO</a></li>
+	<li><a href="#copyright">COPYRIGHT</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+
+<p>
+
+</p>
+
+<h1><a name="name">NAME</a></h1>
+
+<p>Apache2::Cookie, Apache2::Cookie::Jar - HTTP Cookies Class</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+
+<pre>
+    use Apache2::Cookie;</pre>
+
+<pre>
+    $j = Apache2::Cookie::Jar-&gt;new($r);
+    $c_in = $j-&gt;cookies(&quot;foo&quot;);         # get cookie from request headers</pre>
+
+<pre>
+    $c_out = Apache2::Cookie-&gt;new($r,
+                                  -name  =&gt; &quot;mycookie&quot;,
+                                  -value =&gt; $c_in-&gt;name );</pre>
+
+<pre>
+    $c_out-&gt;path(&quot;/bar&quot;);               # set path to &quot;/bar&quot;
+    $c_out-&gt;bake;                       # send cookie in response headers</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="description">DESCRIPTION</a></h1>
+
+<p>The Apache2::Cookie module is based on the original 1.X versions, which mimic
+the CGI::Cookie API.  The current version of this module includes several packages
+and methods which are patterned after Apache2::Request, yet remain largely
+backwards-compatible with the original 1.X API (see the <a href="#porting_from_1_x">PORTING from 1.X</a> section
+below for known issues).</p>
+
+<p>This manpage documents the Apache2::Cookie and Apache2::Cookie::Jar packages.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="apache2__cookie__jar">Apache2::Cookie::Jar</a></h1>
+
+<p>This class collects Apache2::Cookie objects into a lookup table.  It plays
+the same role for accessing the incoming cookies as Apache2::Request does for
+accessing the incoming params and file uploads.</p>
+
+<p>
+
+</p>
+
+<h2><a name="new">new</a></h2>
+
+<pre>
+    Apache2::Cookie::Jar-&gt;new($env)</pre>
+
+<p>Class method that retrieves the parsed cookie jar from the current
+environment.</p>
+
+<p>
+
+</p>
+
+<h2><a name="cookies">cookies</a></h2>
+
+<pre>
+    $jar-&gt;cookies()
+    $jar-&gt;cookies($key)</pre>
+
+<p>Retrieve cookies named $key with from the jar object.  In scalar
+context the first such cookie is returned, and in list context the
+full list of such cookies are returned.</p>
+
+<p>If the $key argument is omitted, <code>scalar $jar-&gt;cookies()</code> will
+return an APR::Request::Cookie::Table object containing all the cookies in
+the jar.  Modifications to the this object will affect the jar's
+internal <em>cookies</em> table in <code>apreq_jar_t</code>, so their impact will
+be noticed by all libapreq2 applications during this request.</p>
+
+<p>In list context <code>$jar-&gt;cookies()</code> returns the list of names
+for all the cookies in the jar.  The order corresponds to the
+order in which the cookies appeared in the incoming &quot;Cookie&quot; header.</p>
+
+<p>This method will throw an <code>APR::Request::Error</code> object into $@ if
+the returned value(s) could be unreliable.  In particular, note that
+<code>scalar $jar-&gt;cookies(&quot;foo&quot;)</code> will not croak if it can locate
+the a &quot;foo&quot; cookie within the jar's parsed cookie table, even if the
+cookie parser has failed (the cookies are parsed in the same order
+as they appeared in the &quot;Cookie&quot; header). In all other circumstances
+<code>cookies</code> will croak if the parser failed to successfully parse the
+&quot;Cookie&quot; header.</p>
+
+<pre>
+    $c = Apache2::Cookie-&gt;new($r, name =&gt; &quot;foo&quot;, value =&gt; 3);
+    $j-&gt;cookies-&gt;add($c);</pre>
+
+<pre>
+    $cookie = $j-&gt;cookies(&quot;foo&quot;);  # first foo cookie
+    @cookies = $j-&gt;cookies(&quot;foo&quot;); # all foo cookies
+    @names = $j-&gt;cookies();        # all cookie names</pre>
+
+<p>
+
+</p>
+
+<h2><a name="status">status</a></h2>
+
+<pre>
+    $jar-&gt;status()</pre>
+
+<p>Get the <em>APR</em> status code of the cookie parser:
+APR_SUCCESS on success, error otherwise.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="apache2__cookie">Apache2::Cookie</a></h1>
+
+<p>
+
+</p>
+
+<h2><a name="new">new</a></h2>
+
+<pre>
+    Apache2::Cookie-&gt;new($env, %args)</pre>
+
+<p>Just like CGI::Cookie::new, but requires an additional environment argument:</p>
+
+<pre>
+    $cookie = Apache2::Cookie-&gt;new($r,
+                             -name    =&gt;  'foo',
+                             -value   =&gt;  'bar',
+                             -expires =&gt;  '+3M',
+                             -domain  =&gt;  '.capricorn.com',
+                             -path    =&gt;  '/cgi-bin/database',
+                             -secure  =&gt;  1
+                            );</pre>
+
+<p>The <code>-value</code> argument may be either an arrayref, a hashref, or
+a string.  <code>Apache2::Cookie::freeze</code> encodes this argument into the
+cookie's raw value.</p>
+
+<p>
+
+</p>
+
+<h2><a name="freeze">freeze</a></h2>
+
+<pre>
+    Apache2::Cookie-&gt;freeze($value)</pre>
+
+<p>Helper function (for <a href="#new"><code>new</code></a>) that serializes a new cookie's value in a
+manner compatible with CGI::Cookie (and Apache2::Cookie 1.X).  This class
+method accepts an arrayref, hashref, or normal perl string in $value.</p>
+
+<pre>
+    $value = Apache2::Cookie-&gt;freeze([&quot;2+2&quot;, &quot;=4&quot;]);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="thaw">thaw</a></h2>
+
+<pre>
+    Apache2::Cookie-&gt;thaw($value)
+    $cookie-&gt;thaw()</pre>
+
+<p>This is the helper method (for <code>value</code>) responsible for decoding the
+raw value of a cookie.  An optional argument $value may be used in
+place of the cookie's raw value.  This method can also decode cookie
+values created using CGI::Cookie or Apache2::Cookie 1.X.</p>
+
+<pre>
+    print $cookie-&gt;thaw;                    # prints &quot;bar&quot;
+    @values = Apache2::Cookie-&gt;thaw($value); # ( &quot;2+2&quot;, &quot;=4&quot; )</pre>
+
+<p>
+
+</p>
+
+<h2><a name="as_string">as_string</a></h2>
+
+<pre>
+    $cookie-&gt;as_string()</pre>
+
+<p>Format the cookie object as a string.  The quote-operator for Apache2::Cookie
+is overloaded to run this method whenever a cookie appears in quotes.</p>
+
+<pre>
+    ok &quot;$cookie&quot; eq $cookie-&gt;as_string;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="name">name</a></h2>
+
+<pre>
+    $cookie-&gt;name()</pre>
+
+<p>Get the name of the cookie.</p>
+
+<p>
+
+</p>
+
+<h2><a name="value">value</a></h2>
+
+<pre>
+    $cookie-&gt;value()</pre>
+
+<p>Get the (unswizzled) value of the cookie:</p>
+
+<pre>
+    my $value = $cookie-&gt;value;
+    my @values = $cookie-&gt;value;</pre>
+
+<p>Note: if the cookie's value was created using a  <code>freeze</code> method,
+one way to reconstitute the object is by subclassing
+Apache2::Cookie with a package that provides the associated <code>thaw</code> sub:</p>
+
+<pre>
+    {
+        package My::COOKIE;
+        @ISA = 'Apache2::Cookie';
+        sub thaw { my $val = shift-&gt;raw_value; $val =~ tr/a-z/A-Z/; $val }
+    }</pre>
+
+<pre>
+    bless $cookie, &quot;My::COOKIE&quot;;</pre>
+
+<pre>
+    ok $cookie-&gt;value eq &quot;BAR&quot;;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="raw_value">raw_value</a></h2>
+
+<pre>
+    $cookie-&gt;raw_value()</pre>
+
+<p>Gets the raw (opaque) value string as it appears in the incoming
+&quot;Cookie&quot; header.</p>
+
+<pre>
+    ok $cookie-&gt;raw_value eq &quot;bar&quot;;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="bake">bake</a></h2>
+
+<pre>
+    $cookie-&gt;bake($r)</pre>
+
+<p>Adds a <em>Set-Cookie</em> header to the outgoing headers table.</p>
+
+<p>
+
+</p>
+
+<h2><a name="bake2">bake2</a></h2>
+
+<pre>
+    $cookie-&gt;bake2($r)</pre>
+
+<p>Adds a <em>Set-Cookie2</em> header to the outgoing headers table.</p>
+
+<p>
+
+</p>
+
+<h2><a name="domain">domain</a></h2>
+
+<pre>
+    $cookie-&gt;domain()
+    $cookie-&gt;domain($set)</pre>
+
+<p>Get or set the domain for the cookie:</p>
+
+<pre>
+    $domain = $cookie-&gt;domain;
+    $cookie-&gt;domain(&quot;.cp.net&quot;);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="path">path</a></h2>
+
+<pre>
+    $cookie-&gt;path()
+    $cookie-&gt;path($set)</pre>
+
+<p>Get or set the path for the cookie:</p>
+
+<pre>
+    $path = $cookie-&gt;path;
+    $cookie-&gt;path(&quot;/&quot;);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="version">version</a></h2>
+
+<pre>
+    $cookie-&gt;version()
+    $cookie-&gt;version($set)</pre>
+
+<p>Get or set the cookie version for this cookie.
+Netscape spec cookies have version = 0;
+RFC-compliant cookies have version = 1.</p>
+
+<pre>
+    ok $cookie-&gt;version == 0;
+    $cookie-&gt;version(1);
+    ok $cookie-&gt;version == 1;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="expires">expires</a></h2>
+
+<pre>
+    $cookie-&gt;expires()
+    $cookie-&gt;expires($set)</pre>
+
+<p>Get or set the future expire time for the cookie.  When
+assigning, the new value ($set) should match /^\+?(\d+)([YMDhms]?)$/
+$2 qualifies the number in $1 as representing &quot;Y&quot;ears, &quot;M&quot;onths,
+&quot;D&quot;ays, &quot;h&quot;ours, &quot;m&quot;inutes, or &quot;s&quot;econds (if the qualifier is
+omitted, the number is interpreted as representing seconds).
+As a special case, $set = &quot;now&quot; is equivalent to $set = &quot;0&quot;.</p>
+
+<pre>
+    my $expires = $cookie-&gt;expires;
+    $cookie-&gt;expires(&quot;+3h&quot;); # cookie is set to expire in 3 hours</pre>
+
+<p>
+
+</p>
+
+<h2><a name="secure">secure</a></h2>
+
+<pre>
+    $cookie-&gt;secure()
+    $cookie-&gt;secure($set)</pre>
+
+<p>Get or set the secure flag for the cookie:</p>
+
+<pre>
+    $cookie-&gt;secure(1);
+    $is_secure = $cookie-&gt;secure;
+    $cookie-&gt;secure(0);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="httponly">httponly</a></h2>
+
+<pre>
+    $cookie-&gt;httponly()
+    $cookie-&gt;httponly($set)</pre>
+
+<p>Get or set the HttpOnly flag for the cookie:</p>
+
+<pre>
+    $cookie-&gt;httponly(1);
+    $is_HttpOnly = $cookie-&gt;httponly;
+    $cookie-&gt;httponly(0);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="httponly">httponly</a></h2>
+
+<pre>
+    $cookie-&gt;httponly()
+    $cookie-&gt;httponly($set)</pre>
+
+<p>Get or set the HttpOnly flag for the cookie:</p>
+
+<pre>
+    $cookie-&gt;httponly(1);
+    $is_HttpOnly = $cookie-&gt;httponly;
+    $cookie-&gt;httponly(0);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="comment">comment</a></h2>
+
+<pre>
+    $cookie-&gt;comment()
+    $cookie-&gt;comment($set)</pre>
+
+<p>Get or set the comment field of an RFC (Version &gt; 0) cookie.</p>
+
+<pre>
+    $cookie-&gt;comment(&quot;Never eat yellow snow&quot;);
+    print $cookie-&gt;comment;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="commenturl">commentURL</a></h2>
+
+<pre>
+    $cookie-&gt;commentURL()
+    $cookie-&gt;commentURL($set)</pre>
+
+<p>Get or set the commentURL field of an RFC (Version &gt; 0) cookie.</p>
+
+<pre>
+    $cookie-&gt;commentURL(&quot;<a href="http://localhost/cookie.policy&quot">http://localhost/cookie.policy&quot</a>;);
+    print $cookie-&gt;commentURL;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="fetch">fetch</a></h2>
+
+<pre>
+    Apache2::Cookie-&gt;fetch($r)</pre>
+
+<p>Fetch and parse the incoming <em>Cookie</em> header:</p>
+
+<pre>
+    my $cookies = Apache2::Cookie-&gt;fetch($r); # APR::Request::Cookie::Table ref</pre>
+
+<pre>
+    It should be noted, that with perl 5.8+ Iterator magic, table is able
+    to handle multiple cookies of the same name.</pre>
+
+<pre>
+    my %cookies = Apache2::Cookie-&gt;fetch($r);</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="porting_from_1_x">PORTING from 1.X</a></h1>
+
+<p>Changes to the 1.X API:</p>
+
+<ul>
+
+<li>
+<strong>
+<a name="as" class="item"><code>Apache2::Cookie::fetch</code> now expects an <code>$r</code> object as (second)
+        argument, although this isn't necessary in mod_perl 2 if
+        <code>Apache2::RequestUtil</code> is loaded and 'PerlOptions +GlobalRequest'
+        is in effect.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="apache2_cookie_parse_is_gone" class="item"><code>Apache2::Cookie::parse</code> is gone.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="apache2_cookie_new_no_longer_encodes_the_supplied_cookie_name" class="item"><code>Apache2::Cookie::new</code> no longer encodes the supplied cookie name.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="new" class="item"><code>Apache2::Cookie::new()</code> returns undef if -value is not specified
+        or -value =&gt; undef.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="name" class="item"><code>name()</code> and <code>value()</code> no longer accept a &quot;set&quot; argument. In other words,
+        neither a cookie's name, nor its value, may be modified.  A new cookie
+        should be made instead.</a>
+</strong>
+
+
+
+</ul>
+
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="see_also">SEE ALSO</a></h1>
+
+<p><a href="group__apreq__xs__request.html">the Apache2::Request manpage</a>, <a href="group__apreq__xs__apr__request__cookie.html">the APR::Request::Cookie manpage</a>,
+<a href="group__apreq__xs__apr__request__error.html">the APR::Request::Error manpage</a>, CGI::Cookie(3)</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="copyright">COPYRIGHT</a></h1>
+
+<pre>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the &quot;License&quot;); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at</pre>
+
+<pre>
+      <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></pre>
+
+<pre>
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.</pre>
+
+
+ </div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__request.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__request.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__request.html Sun May  6 14:18:02 2012
@@ -0,0 +1,629 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Apache2::Request</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Apache2::Request<br>
+<small>
+[<a class="el" href="group__apreq__xs.html">Perl</a>]</small>
+</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+
+
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+	<li><a href="#apache2__request">Apache2::Request</a></li>
+	<ul>
+
+		<li><a href="#new">new</a></li>
+		<li><a href="#instance">instance</a></li>
+		<li><a href="#param">param</a></li>
+		<li><a href="#parms__params">parms, params</a></li>
+		<li><a href="#body">body</a></li>
+		<li><a href="#upload">upload</a></li>
+		<li><a href="#args_status">args_status</a></li>
+		<li><a href="#body_status">body_status</a></li>
+		<li><a href="#param_status">param_status</a></li>
+		<li><a href="#parse">parse</a></li>
+	</ul>
+
+	<li><a href="#subclassing_apache2__request">SUBCLASSING Apache2::Request</a></li>
+	<li><a href="#porting_from_1_x">PORTING from 1.X</a></li>
+	<li><a href="#see_also">SEE ALSO</a></li>
+	<li><a href="#copyright">COPYRIGHT</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+
+<p>
+
+</p>
+
+<h1><a name="name">NAME</a></h1>
+
+<p>Apache2::Request - Methods for dealing with client request data</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+
+<pre>
+    use Apache2::Request;
+    $req = Apache2::Request-&gt;new($r);
+    @foo = $req-&gt;param(&quot;foo&quot;);
+    $bar = $req-&gt;args(&quot;bar&quot;);</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="description">DESCRIPTION</a></h1>
+
+<p>The Apache2::Request module provides methods for parsing GET and POST parameters
+encoded with either <em>application/x-www-form-urlencoded</em> or <em>multipart/form-data</em>.
+Although Apache2::Request provides a few new APIs for accessing the parsed data,
+it remains largely backwards-compatible with the original 1.X API.  See the
+<a href="#porting_from_1_x">PORTING from 1.X</a> section below for a list of known issues.</p>
+
+<p>This manpage documents the Apache2::Request package.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="apache2__request">Apache2::Request</a></h1>
+
+<p>The interface is designed to mimic the CGI.pm routines for parsing
+query parameters. The main differences are</p>
+
+<ul>
+
+<li>
+<strong>
+<a name="as" class="item"><code>Apache2::Request::new</code> takes an environment-specific
+        object <code>$r</code> as (second) argument.  Newer versions of CGI.pm also accept
+        this syntax within modperl.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="the_query_parameters_are_stored_in_apr_table_derived_objects_and_are_therefore_retrieved_from_the_table_by_using_case_insensitive_keys" class="item">The query parameters are stored in APR::Table derived objects, and
+        are therefore retrieved from the table by using case-insensitive keys.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="the_query_string_is_always_parsed_immediately_even_for_post_requests" class="item">The query string is always parsed immediately, even for POST requests.</a>
+</strong>
+
+
+
+</ul>
+
+
+<p>
+
+</p>
+
+<h2><a name="new">new</a></h2>
+
+<pre>
+    Apache2::Request-&gt;new($r, %args)</pre>
+
+<p>Creates a new Apache2::Request object.</p>
+
+<pre>
+    my $req = Apache2::Request-&gt;new($r, POST_MAX =&gt; &quot;1M&quot;);</pre>
+
+<p>With mod_perl2, the environment object $r must be an Apache2::RequestRec
+object.  In that case, all methods from Apache2::RequestRec are inherited.
+In the (default) CGI environment, $r must be an APR::Pool object.</p>
+
+<p>The following args are optional:</p>
+
+<ul>
+
+<li>
+<strong>
+<a name="post_max_max_body" class="item"><code>POST_MAX</code>, <code>MAX_BODY</code></a>
+</strong>
+
+
+
+<p>Limit the size of POST data (in bytes).</p>
+
+</li>
+
+<li>
+<strong>
+<a name="disable_uploads" class="item"><code>DISABLE_UPLOADS</code></a>
+</strong>
+
+
+
+<p>Disable file uploads.</p>
+
+</li>
+
+<li>
+<strong>
+<a name="temp_dir" class="item"><code>TEMP_DIR</code></a>
+</strong>
+
+
+
+<p>Sets the directory where upload files are spooled.  On a *nix-like
+that supports <em>link(2)</em>, the TEMP_DIR should be located on the same
+file system as the final destination file:</p>
+
+<pre>
+ use Apache2::Upload;
+ my $req = Apache2::Request-&gt;new($r, TEMP_DIR =&gt; &quot;/home/httpd/tmp&quot;);
+ my $upload = $req-&gt;upload('file');
+ $upload-&gt;link(&quot;/home/user/myfile&quot;);</pre>
+
+<p>For more details on <code>link</code>, see <a href="group__apreq__xs__upload.html">the Apache2::Upload manpage</a>.</p>
+
+</li>
+
+<li>
+<strong>
+<a name="hook_data" class="item"><code>HOOK_DATA</code></a>
+</strong>
+
+
+
+<p>Extra configuration info passed as the fourth argument
+to an upload hook.  See the description for the next item,
+<a href="#upload_hook"><code>UPLOAD_HOOK</code></a>.</p>
+
+</li>
+
+<li>
+<strong>
+<a name="upload_hook" class="item"><code>UPLOAD_HOOK</code></a>
+</strong>
+
+
+
+<p>Sets up a callback to run whenever file upload data is read. This
+can be used to provide an upload progress meter during file uploads.
+Apache will automatically continue writing the original data to
+$upload-&gt;fh after the hook exits.</p>
+
+<pre>
+  my $transparent_hook = sub {
+    my ($upload, $data, $data_len, $hook_data) = @_;
+    warn &quot;$hook_data: got $data_len bytes for &quot; . $upload-&gt;name;
+  };</pre>
+
+<pre>
+  my $req = Apache2::Request-&gt;new($r,
+                                  HOOK_DATA =&gt; &quot;Note&quot;,
+                                  UPLOAD_HOOK =&gt; $transparent_hook,
+                                 );</pre>
+
+</li>
+
+</ul>
+
+
+<p>
+
+</p>
+
+<h2><a name="instance">instance</a></h2>
+
+<pre>
+    Apache2::Request-&gt;instance($r)</pre>
+
+<p>The default (and only) behavior of <em>Apache2::Request</em> is to intelligently
+cache <strong>POST</strong> data for the duration of the request.  Thus there is no longer
+the need for a separate <a href="#instance"><code>instance()</code></a> method as existed in <em>Apache2::Request</em>
+for Apache 1.3 - all <strong>POST</strong> data is always available from each and every
+<em>Apache2::Request</em> object created during the request's lifetime.</p>
+
+<p>However an <a href="#instance"><code>instance()</code></a> method is aliased to <code>new()</code> in this release
+to ease the pain of porting from 1.X to 2.X.</p>
+
+<p>
+
+</p>
+
+<h2><a name="param">param</a></h2>
+
+<pre>
+    $req-&gt;param()
+    $req-&gt;param($name)</pre>
+
+<p>Get the request parameters (using case-insensitive keys) by
+mimicing the OO interface of <code>CGI::param</code>.</p>
+
+<pre>
+    # similar to CGI.pm</pre>
+
+<pre>
+    my $foo_value   = $req-&gt;param('foo');
+    my @foo_values  = $req-&gt;param('foo');
+    my @param_names = $req-&gt;param;</pre>
+
+<pre>
+    # the following differ slightly from CGI.pm</pre>
+
+<pre>
+    # returns ref to APR::Request::Param::Table object representing
+    # all (args + body) params
+    my $table = $req-&gt;param;
+    @table_keys = keys %$table;</pre>
+
+<p>In list context, or when invoked with no arguments as
+<code>$req-&gt;param()</code>, <code>param</code> induces libapreq2 to read
+and parse all remaining data in the request body.
+However, <code>scalar $req-&gt;param(&quot;foo&quot;)</code> is lazy: libapreq2
+will only read and parse more data if</p>
+
+<pre>
+    1) no &quot;foo&quot; param appears in the query string arguments, AND
+    2) no &quot;foo&quot; param appears in the previously parsed POST data.</pre>
+
+<p>In this circumstance libapreq2 will read and parse additional
+blocks of the incoming request body until either</p>
+
+<pre>
+    1) it has found the the &quot;foo&quot; param, or
+    2) parsing is completed.</pre>
+
+<p>Observe that <code>scalar $req-&gt;param(&quot;foo&quot;)</code> will not raise
+an exception if it can locate &quot;foo&quot; in the existing body or
+args tables, even if the query-string parser or the body parser
+has failed.  In all other circumstances <code>param</code> will throw an
+Apache2::Request::Error object into $@ should either parser fail.</p>
+
+<pre>
+    $req-&gt;args_status(1); # set error state for query-string parser
+    ok $req-&gt;param_status == 1;</pre>
+
+<pre>
+    $foo = $req-&gt;param(&quot;foo&quot;);
+    ok $foo == 1;
+    eval { @foo = $req-&gt;param(&quot;foo&quot;) };
+    ok $@-&gt;isa(&quot;Apache2::Request::Error&quot;);
+    undef $@;
+    eval { my $not_found = $req-&gt;param(&quot;non-existent-param&quot;) };
+    ok $@-&gt;isa(&quot;Apache2::Request::Error&quot;);</pre>
+
+<pre>
+    $req-&gt;args_status(0); # reset query-string parser state to &quot;success&quot;</pre>
+
+<p>Note: modifications to the <code>scalar $req-&gt;param()</code> table only
+affect the returned table object (the underlying C apr_table_t is
+<em>generated</em> from the parse data by apreq_params()).  Modifications
+do not affect the actual request data, and will not be seen by other
+libapreq2 applications.</p>
+
+<p>
+
+</p>
+
+<h2><a name="parms__params">parms, params</a></h2>
+
+<p>The functionality of these functions is assumed by <code>param</code>,
+so they are no longer necessary.  Aliases to <code>param</code> are
+provided in this release for backwards compatibility,
+however they are deprecated and may be removed from a future
+release.</p>
+
+<p>
+
+</p>
+
+<h2><a name="body">body</a></h2>
+
+<pre>
+    $req-&gt;body()
+    $req-&gt;body($name)</pre>
+
+<p>Returns an <em>APR::Request::Param::Table</em> object containing the POST data
+parameters of the <em>Apache2::Request</em> object.</p>
+
+<pre>
+    my $body = $req-&gt;body;</pre>
+
+<p>An optional name parameter can be passed to return the POST data
+parameter associated with the given name:</p>
+
+<pre>
+    my $foo_body = $req-&gt;body(&quot;foo&quot;);</pre>
+
+<p>More generally, <code>body()</code> follows the same pattern as <code>param()</code>
+with respect to its return values and argument list.  The main difference
+is that modifications to the <code>scalar $req-&gt;body()</code> table affect
+the underlying apr_table_t attribute in apreq_request_t, so their impact
+will be noticed by all libapreq2 applications during this request.</p>
+
+<p>
+
+</p>
+
+<h2><a name="upload">upload</a></h2>
+
+<pre>
+    $req-&gt;upload()
+    $req-&gt;upload($name)</pre>
+
+<p>Requires <code>Apache2::Upload</code>.  With no arguments, this method
+returns an <em>APR::Request::Param::Table</em> object in scalar context,
+or the names of all <em>Apache2::Upload</em> objects in list context.</p>
+
+<p>An optional name parameter can be passed to return the <em>Apache2::Upload</em>
+object associated with the given name:</p>
+
+<pre>
+    my $upload = $req-&gt;upload($name);</pre>
+
+<p>More generally, <code>upload()</code> follows the same pattern as <code>param()</code>
+with respect to its return values and argument list.  The main difference
+is that its returned values are Apache2::Upload object refs, not
+simple scalars.</p>
+
+<p>Note: modifications to the <code>scalar $req-&gt;upload()</code> table only
+affect the returned table object (the underlying C apr_table_t is
+<em>generated</em> by apreq_uploads()).  They do not affect the actual request
+data, and will not be seen by other libapreq2 applications.</p>
+
+<p>
+
+</p>
+
+<h2><a name="args_status">args_status</a></h2>
+
+<pre>
+    $req-&gt;args_status()</pre>
+
+<p>Get the <em>APR</em> status code of the query-string parser.
+APR_SUCCESS on success, error otherwise.</p>
+
+<p>
+
+</p>
+
+<h2><a name="body_status">body_status</a></h2>
+
+<pre>
+    $req-&gt;body_status()</pre>
+
+<p>Get the current <em>APR</em> status code of the parsed POST data.
+APR_SUCCESS when parser has completed, APR_INCOMPLETE if parser
+has more data to parse, APR_EINIT if no post data has been parsed,
+error otherwise.</p>
+
+<p>
+
+</p>
+
+<h2><a name="param_status">param_status</a></h2>
+
+<pre>
+    $req-&gt;param_status()</pre>
+
+<p>In scalar context, this returns <code>args_status</code> if there was
+an error during the query-string parse, otherwise this returns
+<code>body_status</code>, ie</p>
+
+<pre>
+    $req-&gt;args_status || $req-&gt;body_status</pre>
+
+<p>In list context <code>param_status</code> returns the list
+<code>(args_status, body_status)</code>.</p>
+
+<p>
+
+</p>
+
+<h2><a name="parse">parse</a></h2>
+
+<pre>
+    $req-&gt;parse()</pre>
+
+<p>Forces the request to be parsed immediately.  In void context,
+this will throw an APR::Request::Error should the either the
+query-string or body parser fail. In all other contexts it will
+return the two parsers' combined <em>APR</em> status code</p>
+
+<pre>
+    $req-&gt;body_status || $req-&gt;args_status</pre>
+
+<p>However <code>parse</code> should be avoided in most normal situations.  For example,
+in a mod_perl content handler it is more efficient to write</p>
+
+<pre>
+    sub handler {
+        my $r = shift;
+        my $req = Apache2::Request-&gt;new($r);
+        $r-&gt;discard_request_body;   # efficiently parses the request body
+        my $parser_status = $req-&gt;body_status;</pre>
+
+<pre>
+        #...
+    }</pre>
+
+<p>Calling <code>$r-&gt;discard_request_body</code> outside the content handler
+is generally a mistake, so use <code>$req-&gt;parse</code> there, but
+<strong>only as a last resort</strong>.  The Apache2::Request API is <strong>designed</strong>
+around a lazy-parsing scheme, so calling <code>parse</code> should not
+affect the behavior of any other methods.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="subclassing_apache2__request">SUBCLASSING Apache2::Request</a></h1>
+
+<p>If the instances of your subclass are hash references then you can actually
+inherit from Apache2::Request as long as the Apache2::Request object is stored in
+an attribute called &quot;r&quot; or &quot;_r&quot;. (The Apache2::Request class effectively does the
+delegation for you automagically, as long as it knows where to find the
+Apache2::Request object to delegate to.)  For example:</p>
+
+<pre>
+        package MySubClass;
+        use Apache2::Request;
+        our @ISA = qw(Apache2::Request);
+        sub new {
+                my($class, @args) = @_;
+                return bless { r =&gt; Apache2::Request-&gt;new(@args) }, $class;
+        }</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="porting_from_1_x">PORTING from 1.X</a></h1>
+
+<p>This is the complete list of changes to existing methods
+from Apache2::Request 1.X.  These issues need to be
+addressed when porting 1.X apps to the new 2.X API.</p>
+
+<ul>
+
+<li>
+<strong>
+<a name="apache2_upload_is_now_a_separate_module_applications_requiring_the_upload_api_must_use_apache2_upload_in_2_x_this_is_easily_addressed_by_preloading_the_modules_during_server_startup" class="item">Apache2::Upload is now a separate module.  Applications
+        requiring the upload API must <code>use Apache2::Upload</code> in 2.X.
+        This is easily addressed by preloading the modules during
+        server startup.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="add" class="item">You can no longer add (or set or delete) parameters in the
+        <code>scalar $req-&gt;param</code>, <code>scalar $req-&gt;args</code> or
+        <code>scalar $req-&gt;body</code> tables.  Nor can you add (or set or delete)
+        cookies in the <code>scalar $req-&gt;jar</code> table.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="instance" class="item"><code>instance()</code> is now identical to <code>new()</code>, and is now deprecated.  It
+        may be removed from a future 2.X release.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="parms" class="item"><code>param</code> includes the functionality of <code>parms()</code> and <code>params()</code>, so
+        they are now deprecated and may be removed from a future 2.X release.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="param_called_in_a_list_context_no_longer_returns_a_unique_list_of_paramaters_the_returned_list_contains_multiple_instances_of_the_parameter_name_for_multivalued_fields" class="item"><code>param</code> called in a list context no longer returns a unique list of
+        paramaters.  The returned list contains multiple instances of the 
+        parameter name for multivalued fields.</a>
+</strong>
+
+
+
+</ul>
+
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="see_also">SEE ALSO</a></h1>
+
+<p><a href="group__apreq__xs__apr__request__param.html">the APR::Request::Param manpage</a>, <a href="group__apreq__xs__apr__request__error.html">the APR::Request::Error manpage</a>, <a href="group__apreq__xs__upload.html">the Apache2::Upload manpage</a>,
+<a href="group__apreq__xs__cookie.html">the Apache2::Cookie manpage</a>, APR::Table(3).</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="copyright">COPYRIGHT</a></h1>
+
+<pre>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the &quot;License&quot;); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at</pre>
+
+<pre>
+      <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></pre>
+
+<pre>
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.</pre>
+
+
+ </div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__upload.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__upload.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__apreq__xs__upload.html Sun May  6 14:18:02 2012
@@ -0,0 +1,466 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Apache2::Upload</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Apache2::Upload<br>
+<small>
+[<a class="el" href="group__apreq__xs.html">Perl</a>]</small>
+</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+
+
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+	<li><a href="#apache2__upload">Apache2::Upload</a></li>
+	<ul>
+
+		<li><a href="#name">name</a></li>
+		<li><a href="#filename">filename</a></li>
+		<li><a href="#fh">fh</a></li>
+		<li><a href="#io">io</a></li>
+		<li><a href="#bb">bb</a></li>
+		<li><a href="#size">size</a></li>
+		<li><a href="#info">info</a></li>
+		<li><a href="#type">type</a></li>
+		<li><a href="#link">link</a></li>
+		<li><a href="#slurp">slurp</a></li>
+		<li><a href="#tempname">tempname</a></li>
+	</ul>
+
+	<li><a href="#apr__request__brigade">APR::Request::Brigade</a></li>
+	<ul>
+
+		<li><a href="#tiehandle">TIEHANDLE</a></li>
+		<li><a href="#read">READ</a></li>
+		<li><a href="#readline">READLINE</a></li>
+	</ul>
+
+	<li><a href="#porting_from_1_x">PORTING from 1.X</a></li>
+	<li><a href="#see_also">SEE ALSO</a></li>
+	<li><a href="#copyright">COPYRIGHT</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+
+<p>
+
+</p>
+
+<h1><a name="name">NAME</a></h1>
+
+<p>Apache2::Upload - Methods for dealing with file uploads.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+
+<pre>
+    use Apache2::Upload;</pre>
+
+<pre>
+    $req = Apache2::Request-&gt;new($r);
+    $upload = $req-&gt;upload(&quot;foo&quot;);
+    $size = $upload-&gt;size;</pre>
+
+<pre>
+    # three methods to get at the upload's contents ... slurp, fh, io</pre>
+
+<pre>
+    $upload-&gt;slurp($slurp_data);</pre>
+
+<pre>
+    read $upload-&gt;fh, $fh_data, $size;
+    ok $slurp_data eq $fh_data;</pre>
+
+<pre>
+    my $io = $upload-&gt;io;
+    print while &lt;$io&gt;;</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="description">DESCRIPTION</a></h1>
+
+<p>Apache2::Upload is a new module based on the original package included
+in Apache2::Request 1.X.  Users requiring the upload API must now
+<code>use Apache2::Upload</code>, which adds the <code>upload</code> method to Apache2::Request.
+Apache2::Upload is largely backwards-compatible with the original 1.X API.
+See the <a href="#porting_from_1_x">PORTING from 1.X</a> section below for a list of known issues.</p>
+
+<p>This manpage documents the Apache2::Upload package.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="apache2__upload">Apache2::Upload</a></h1>
+
+<p>
+
+</p>
+
+<h2><a name="name">name</a></h2>
+
+<pre>
+    $upload-&gt;name()</pre>
+
+<p>The name of the HTML form element which generated the upload.</p>
+
+<p>
+
+</p>
+
+<h2><a name="filename">filename</a></h2>
+
+<pre>
+    $upload-&gt;filename()</pre>
+
+<p>The (client-side) filename as submitted in the HTML form.  Note:
+some agents will submit the file's full pathname, while others
+may submit just the basename.</p>
+
+<p>
+
+</p>
+
+<h2><a name="fh">fh</a></h2>
+
+<pre>
+    $upload-&gt;fh()</pre>
+
+<p>Creates filehandle reference to the upload's spooled tempfile,
+which contains the full contents of the upload.</p>
+
+<p>
+
+</p>
+
+<h2><a name="io">io</a></h2>
+
+<pre>
+    $upload-&gt;io()</pre>
+
+<p>Creates a tied IO handle.  This method is a more efficient version
+of <code>fh</code>, but with <code>io</code> the handle ref returned is not seekable.
+It is tied to an APR::Request::Brigade object, so you may use the
+brigade API on the tied object if you want to manipulate the IO stream
+(beyond simply reading from it).</p>
+
+<p>The returned reference is actually an object which has <code>read</code> and
+<code>readline</code> methods available.  However these methods are just
+syntactic sugar for the underlying <code>READ</code> and <code>READLINE</code> methods from
+APR::Request::Brigade.</p>
+
+<pre>
+    $io = $upload-&gt;io;
+    print while $io-&gt;read($_); # equivalent to: tied(*$io)-&gt;READ($_)</pre>
+
+<p>See <a href="#read">READ</a> and <a href="#readline">READLINE</a> below for additional notes
+on their usage.</p>
+
+<p>
+
+</p>
+
+<h2><a name="bb">bb</a></h2>
+
+<pre>
+    $upload-&gt;bb()
+    $upload-&gt;bb($set)</pre>
+
+<p>Get/set the APR::Brigade which represents the upload's contents.</p>
+
+<p>
+
+</p>
+
+<h2><a name="size">size</a></h2>
+
+<pre>
+    $upload-&gt;size()</pre>
+
+<p>Returns the size of the upload in bytes.</p>
+
+<p>
+
+</p>
+
+<h2><a name="info">info</a></h2>
+
+<pre>
+    $upload-&gt;info()
+    $upload-&gt;info($set)</pre>
+
+<p>Get/set the additional header information table for the
+uploaded file.
+Returns a hash reference tied to the <em>APR::Table</em> class.
+An optional <code>$table</code> argument can be passed to reassign
+the upload's internal (apr_table_t) info table to the one
+<code>$table</code> represents.</p>
+
+<pre>
+    my $info = $upload-&gt;info;
+    while (my($hdr_name, $hdr_value) = each %$info) {
+        # ...
+    }</pre>
+
+<pre>
+    # fetch upload's Content-Type header
+    my $type = $upload-&gt;info-&gt;{&quot;Content-type&quot;};</pre>
+
+<p>
+
+</p>
+
+<h2><a name="type">type</a></h2>
+
+<pre>
+    $upload-&gt;type()</pre>
+
+<p>Returns the MIME type of the given <em>Apache2::Upload</em> object.</p>
+
+<pre>
+    my $type = $upload-&gt;type;</pre>
+
+<pre>
+    #same as
+    my $content_type = $upload-&gt;info-&gt;{&quot;Content-Type&quot;};
+    $content_type =~ s/;.*$//ms;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="link">link</a></h2>
+
+<pre>
+    $upload-&gt;link()</pre>
+
+<p>To avoid recopying the upload's internal tempfile brigade on a
+*nix-like system, <em>link</em> will create a hard link to it:</p>
+
+<pre>
+  my $upload = $req-&gt;upload('foo');
+  $upload-&gt;link(&quot;/path/to/newfile&quot;) or
+      die sprintf &quot;link from '%s' failed: $!&quot;, $upload-&gt;tempname;</pre>
+
+<p>Typically the new name must lie on the same device and partition
+as the brigade's tempfile.  If this or any other reason prevents
+the OS from linking the files, <code>link()</code> will instead
+copy the temporary file to the specified location.</p>
+
+<p>
+
+</p>
+
+<h2><a name="slurp">slurp</a></h2>
+
+<pre>
+    $upload-&gt;slurp($contents)</pre>
+
+<p>Reads the full contents of a file upload into the scalar argument.
+The return value is the length of the file.</p>
+
+<pre>
+    my $size = $upload-&gt;slurp($contents);</pre>
+
+<p>
+
+</p>
+
+<h2><a name="tempname">tempname</a></h2>
+
+<pre>
+    $upload-&gt;tempname()</pre>
+
+<p>Provides the name of the spool file.</p>
+
+<pre>
+    my $tempname = $upload-&gt;tempname;</pre>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="apr__request__brigade">APR::Request::Brigade</a></h1>
+
+<p>This class is derived from APR::Brigade, providing additional
+methods for TIEHANDLE, READ and READLINE.  To be memory efficient,
+these methods delete buckets from the brigade as soon as their
+data is actually read, so you cannot <code>seek</code> on handles tied to
+this class.  Such handles have semantics similar to that of a
+read-only socket.</p>
+
+<p>
+
+</p>
+
+<h2><a name="tiehandle">TIEHANDLE</a></h2>
+
+<pre>
+    APR::Request::Brigade-&gt;TIEHANDLE($bb)</pre>
+
+<p>Creates a copy of the bucket brigade represented by $bb, and
+blesses that copy into the APR::Request::Brigade class.  This
+provides syntactic sugar for using perl's builtin <code>read</code>, <code>readline</code>,
+and <code>&lt;&gt;</code> operations on handles tied to this package:</p>
+
+<pre>
+    use Symbol;
+    $fh = gensym;
+    tie *$fh, &quot;APR::Request:Brigade&quot;, $bb;
+    print while &lt;$fh&gt;;</pre>
+
+<p>
+
+</p>
+
+<h2><a name="read">READ</a></h2>
+
+<pre>
+    $bb-&gt;READ($contents)
+    $bb-&gt;READ($contents, $length)
+    $bb-&gt;READ($contents, $length, $offset)</pre>
+
+<p>Reads data from the brigade $bb into $contents.  When omitted
+$length defaults to <code>-1</code>, which reads the first bucket into $contents.
+A positive $length will read in $length bytes, or the remainder of the
+brigade, whichever is greater. $offset represents the index in $context
+to read the new data.</p>
+
+<p>
+
+</p>
+
+<h2><a name="readline">READLINE</a></h2>
+
+<pre>
+    $bb-&gt;READLINE()</pre>
+
+<p>Returns the first line of data from the bride. Lines are terminated by
+linefeeds (the '\012' character), but we may eventually use <code>$/</code> instead.</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="porting_from_1_x">PORTING from 1.X</a></h1>
+
+<ul>
+
+<li>
+<strong>
+<a name="next" class="item"><code>$upload-&gt;next()</code> is no longer available;  please use the
+<code>APR::Request::Param::Table</code> API when iterating over upload entries.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="info" class="item"><code>info($header_name)</code> is replaced by <code>info($set)</code>.</a>
+</strong>
+
+
+
+<li>
+<strong>
+<a name="type" class="item"><code>type()</code> returns only the MIME-type portion of the Content-Type header.</a>
+</strong>
+
+
+
+</ul>
+
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="see_also">SEE ALSO</a></h1>
+
+<p><a href="group__apreq__xs__apr__request.html">the APR::Request::Param::Table manpage</a>, <a href="group__apreq__xs__apr__request__error.html">the APR::Request::Error manpage</a>, <a href="group__apreq__xs__request.html">the Apache2::Request manpage</a>,
+APR::Table(3)</p>
+
+<p>
+
+</p>
+<hr />
+
+<h1><a name="copyright">COPYRIGHT</a></h1>
+
+<pre>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the &quot;License&quot;); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at</pre>
+
+<pre>
+      <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></pre>
+
+<pre>
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.</pre>
+
+
+ </div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__libapreq2.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__libapreq2.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__libapreq2.html Sun May  6 14:18:02 2012
@@ -0,0 +1,93 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Apache Request Library</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Apache Request Library</h1>libapreq2 Version 2.8.0  
+<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq_8h.html">apreq.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main header file...<p>
+Define the generic APREQ_ macros and common data structures. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__cookie_8h.html">apreq_cookie.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cookies and Jars.<p>
+<a class="el" href="apreq__cookie_8h.html" title="Cookies and Jars.apreq_cookie.h describes a common server-side API for request (incoming)...">apreq_cookie.h</a> describes a common server-side API for request (incoming) and response (outgoing) cookies. It aims towards compliance with the standard cookie specifications listed below. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__error_8h.html">apreq_error.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error status codes.<p>
+Define the APREQ_ error codes. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__module_8h.html">apreq_module.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Module API. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html">apreq_param.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request parsing and parameter API. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__parser_8h.html">apreq_parser.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request body parser API. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html">apreq_util.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility functions for apreq. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__version_8h.html">apreq_version.h</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Versioning API for libapreq<p>
+There are several different mechanisms for accessing the version. There is a string form, and a set of numbers; in addition, there are constants which can be compiled into your application, and you can query the library being used for its actual version. <br></td></tr>
+
+<p>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+libapreq2 Version 2.8.0 
+<p>
+libapreq2 is a shared library based on the <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> Portable Runtime libraries libapr and libaprutil. <dl class="see" compact><dt><b>See also:</b></dt><dd><a href="http://apr.apache.org/">http://apr.apache.org/</a></dd></dl>
+<h2><a class="anchor" name="apreq2_config">
+Configuring libapreq2 Applications</a></h2>
+This package includes <code>apreq2-config</code>, a configuration script for building applications with libapreq2. Run <code>apreq2-config --help</code> to display its options. XXX add examples here XXX </div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__mod__apreq2.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__mod__apreq2.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/group__mod__apreq2.html Sun May  6 14:18:02 2012
@@ -0,0 +1,149 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Apache 2.X Filter Module</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Apache 2.X Filter Module<br>
+<small>
+[<a class="el" href="group__apreq__module.html">Modules</a>]</small>
+</h1>mod_apreq2 - DSO that ties libapreq2 to <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> HTTPD 2.X.  
+<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mod__apreq2.html#g4b67634b709506e4912f86ebda448504">APREQ_FILTER_NAME</a>&nbsp;&nbsp;&nbsp;&quot;apreq2&quot;</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mod__apreq2.html#gab4a3c4b04f2aee2e17b648da09463b0">APREQ_APACHE2_MMN</a>&nbsp;&nbsp;&nbsp;20090110</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structapreq__handle__t.html">apreq_handle_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mod__apreq2.html#g68f508b2e1d9909328d7b1277ce4aa80">apreq_handle_apache2</a> (request_rec *r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g082ed084cdc19fb048e87c9c1b4989dc"></a><!-- doxytag: member="mod_apreq2::APR_DECLARE_OPTIONAL_FN" ref="g082ed084cdc19fb048e87c9c1b4989dc" args="(apreq_handle_t *, apreq_handle_apache2,(request_rec *r))" -->
+&nbsp;</td><td class="memItemRight" valign="bottom"><b>APR_DECLARE_OPTIONAL_FN</b> (<a class="el" href="structapreq__handle__t.html">apreq_handle_t</a> *, apreq_handle_apache2,(request_rec *r))</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+mod_apreq2 - DSO that ties libapreq2 to <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> HTTPD 2.X. 
+<p>
+mod_apreq2 provides the "APREQ2" input filter for using libapreq2 (and allow its parsed data structures to be shared) within the <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> 2.X webserver. Using it, libapreq2 works properly in every phase of the HTTP request, from translation handlers to output filters, and even for subrequests / internal redirects.<p>
+<hr>
+<p>
+<h2>Activating mod_apreq2 in <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> 2.X</h2>
+<p>
+The installation process triggered by <code>% make install</code> <em>will not modify your webserver's config file</em>. Hence, be sure you activate it on startup by adding a LoadModule directive to your webserver config; e.g.<p>
+<div class="fragment"><pre class="fragment">     LoadModule apreq_module    modules/mod_apreq2.so
+</pre></div><p>
+The mod_apreq2 filter is named "apreq2", and may be used in Apache's input filter directives, e.g. <div class="fragment"><pre class="fragment">     AddInputFilter apreq2         # or
+     SetInputFilter apreq2
+</pre></div><p>
+However, this is not required because libapreq2 will add the filter (only) if it's necessary. You just need to ensure that your module invokes <a class="el" href="group__mod__apreq2.html#g68f508b2e1d9909328d7b1277ce4aa80">apreq_handle_apache2()</a> <em>before the content handler ultimately reads from the input filter chain</em>. It is important to realize that no matter how the input filters are initially arranged, the APREQ2 filter will attempt to reposition itself to be the last input filter to read the data.<p>
+If you want to use other input filters to transform the incoming HTTP request data, is important to register those filters with <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> as having type AP_FTYPE_CONTENT_SET or AP_FTYPE_RESOURCE. Due to the limitations of Apache's current input filter design, types higher than AP_FTYPE_CONTENT_SET may not work properly whenever the apreq filter is active.<p>
+This is especially true when a content handler uses libapreq2 to parse some of the post data before doing an internal redirect. Any input filter subsequently added to the redirected request will bypass the original apreq filter (and therefore lose access to some of the original post data), unless its type is less than the type of the apreq filter (currently AP_FTYPE_PROTOCOL-1).<p>
+<h2>Server Configuration Directives</h2>
+<p>
+<table class="qref" border="1" cellspacing="3" cellpadding="3">
+<caption align="bottom">Per-directory commands for mod_apreq2</caption>
+<tr>
+<th>Directive </th><th>Context </th><th>Default</th><th>Description  </th></tr>
+<tr class="odd">
+<td>APREQ2_ReadLimit </td><td>directory </td><td><a class="el" href="apreq_8h.html#744fa55285c4a3868a9154f473d58ac4">APREQ_DEFAULT_READ_LIMIT</a>  </td><td>Maximum number of bytes mod_apreq2 will send off to libapreq2 for parsing. mod_apreq2 will log this event and subsequently remove itself from the filter chain.   </td></tr>
+<tr>
+<td>APREQ2_BrigadeLimit </td><td>directory </td><td><a class="el" href="apreq_8h.html#f54c8645b8266fa7c9b2e261c608744f">APREQ_DEFAULT_BRIGADE_LIMIT</a> </td><td>Maximum number of bytes mod_apreq2 will let accumulate within the heap-buckets in a brigade. Excess data will be spooled to an appended file bucket.   </td></tr>
+<tr class="odd">
+<td>APREQ2_TempDir </td><td>directory </td><td>NULL </td><td>Sets the location of the temporary directory apreq will use to spool overflow brigade data (based on the APREQ2_BrigadeLimit setting). If left unset, libapreq2 will select a platform-specific location via <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/1.3/" href="http://apr.apache.org/docs/apr/1.3/group__apr__file__io.html#g5cc19828a668c362be0ad7a12b805cc0">apr_temp_dir_get()</a>.   </td></tr>
+</table>
+<p>
+<h2>Implementation Details</h2>
+<p>
+<pre>
+   XXX apreq as a normal input filter
+   XXX apreq as a "virtual" content handler.
+   XXX apreq as a transparent "tee".
+   XXX apreq parser registration in post_config
+ </pre> <hr><h2>Define Documentation</h2>
+<a class="anchor" name="gab4a3c4b04f2aee2e17b648da09463b0"></a><!-- doxytag: member="apreq_module_apache2.h::APREQ_APACHE2_MMN" ref="gab4a3c4b04f2aee2e17b648da09463b0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define APREQ_APACHE2_MMN&nbsp;&nbsp;&nbsp;20090110          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The Apache2 Module Magic Number for use in the <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> 2.x module structures This gets bumped if changes in th4e API will break third party applications using this apache2 module <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="apreq__module_8h.html#7d6d0550f527e18c8cfab702e65daf3b">APREQ_MODULE</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g4b67634b709506e4912f86ebda448504"></a><!-- doxytag: member="apreq_module_apache2.h::APREQ_FILTER_NAME" ref="g4b67634b709506e4912f86ebda448504" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define APREQ_FILTER_NAME&nbsp;&nbsp;&nbsp;&quot;apreq2&quot;          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The mod_apreq2 filter is named "apreq2", and may be used in Apache's input filter directives, e.g. <div class="fragment"><pre class="fragment">     AddInputFilter apreq2         # or
+     SetInputFilter apreq2
+</pre></div> See above 
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="g68f508b2e1d9909328d7b1277ce4aa80"></a><!-- doxytag: member="apreq_module_apache2.h::apreq_handle_apache2" ref="g68f508b2e1d9909328d7b1277ce4aa80" args="(request_rec *r)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structapreq__handle__t.html">apreq_handle_t</a>* apreq_handle_apache2           </td>
+          <td>(</td>
+          <td class="paramtype">request_rec *&nbsp;</td>
+          <td class="paramname"> <em>r</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Create an apreq handle which communicates with an <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/1.3/" href="http://apr.apache.org/docs/apr-util/1.3/namespace_apache.html">Apache</a> 2.X request_rec. 
+</div>
+</div><p>
+</div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/hierarchy.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/hierarchy.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/hierarchy.html Sun May  6 14:18:02 2012
@@ -0,0 +1,48 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.08: libapreq2: Hierarchical Index</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.4.6 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li id="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+    <li><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+    <li><a href="examples.html"><span>Examples</span></a></li>
+  </ul></div>
+<div class="tabs">
+  <ul>
+    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+    <li id="current"><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+  </ul></div>
+<h1>libapreq2 Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="structapreq__cookie__t.html">apreq_cookie_t</a>
+<li><a class="el" href="structapreq__handle__t.html">apreq_handle_t</a>
+<li><a class="el" href="structapreq__hook__t.html">apreq_hook_t</a>
+<li><a class="el" href="structapreq__module__t.html">apreq_module_t</a>
+<li><a class="el" href="structapreq__param__t.html">apreq_param_t</a>
+<li><a class="el" href="structapreq__parser__t.html">apreq_parser_t</a>
+<li><a class="el" href="structapreq__value__t.html">apreq_value_t</a>
+</ul>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.4.6 on 8 Aug 2006</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/index.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/index.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/index.html Sun May  6 14:18:02 2012
@@ -0,0 +1,155 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Main Page</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>libapreq2 Documentation</h1>
+<p>
+<h3 align="center">2.13 </h3>Project Website: <a href="http://httpd.apache.org/apreq/">http://httpd.apache.org/apreq/</a><p>
+<div class="fragment"><pre class="fragment">
+                    Apache HTTP Server Request Library
+
+  What is it?
+  -----------
+  httpd-apreq is subproject of the Apache HTTP Server Project 
+  whose committers develop and maintain the libapreq C library
+  and its language bindings for Perl (contributions for additional 
+  language bindings are most welcome).
+
+  libapreq is a safe, standards-compliant, high-performance library 
+  used for parsing HTTP cookies, query-strings and POST data.  The 
+  original version (libapreq-1.X) was designed by Lincoln Stein and Doug 
+  MacEachern.  The perl APIs Apache::Request and Apache::Cookie are the
+  lightweight mod_perl analogs of the CGI and CGI::Cookie perl modules.
+
+  Version 2 of libapreq is an improved codebase designed around APR
+  and Apache-2's input filter API.  The C codebase is separated into
+  two independent components:
+
+      1) libapreq2, a shared library which is based on 
+         libapr and libaprutil.
+
+      2) A collection of modules:
+
+          - mod_apreq2, a filter module for the Apache 2.X webserver,
+          - a CGI module included in libapreq2 itself,
+          - a custom module for general applications.
+
+  Version 2 also includes the perl APIs for libapreq2- Apache2::Request,
+  Apache2::Upload and Apache2::Cookie.  The corresponding XS modules 
+  are generated by ExtUtils::XSBuilder, which is based on the new build
+  system created specifically for mod_perl2.
+
+
+  The Latest Version
+  ------------------
+
+  Details of the latest version can be found on the libapreq
+  project page at 
+
+                http://httpd.apache.org/apreq
+
+
+  Documentation
+  -------------
+
+  The documentation is in the docs/ directory.  It is
+  based on Doxygen, and can be regenerated by typing
+
+        % make docs
+
+  in the main directory.
+
+
+  Installation
+  ------------
+
+  For full details please consult the INSTALL file.  Briefly,
+  to install just the C API (libapreq2 + environment modules)
+  on a Unix-like system:
+
+            % ./configure --with-apache2-apxs=/path/to/apache2/bin/apxs
+            % make
+            % make test
+            % make install
+
+   To build and install the perl API as well, either add
+   the "--enable-perl-glue" configure option, or let Makefile.PL
+   enable it for you:
+
+            % perl Makefile.PL --with-apache2-apxs=/path/to/apache2/bin/apxs
+            % make
+            % make test 
+            % make install
+
+  Licensing
+  ---------
+
+  Please see the file called LICENSE.
+
+
+  Contacts
+  --------
+
+     o Project homepage:
+
+        http://httpd.apache.org/apreq/
+
+     o Mailing Lists:
+
+        user lists:
+               C/C++ API - modules-dev@httpd.apache.org
+                Perl API - modperl@perl.apache.org
+                 Tcl API - XXX
+                Java API - XXX
+              Python API - XXX
+
+        developer list (bugs, patches, code contributions, etc.):
+                apreq-dev@httpd.apache.org
+
+
+  Acknowledgments
+  ----------------
+
+  We wish to acknowledge the following copyrighted works that
+  make up portions of the Apache software:
+
+  libapreq2 relies heavily on the use of the GNU auto-tools 
+  to provide a build environment.  The tests are based on 
+  the Apache::Test, Test::Harness and Test::Inline.
+
+  Doxygen generates the documentation for libapreq2. The perl glue
+  and pods are generated by ExtUtils::XSBuilder.
+</pre></div> </div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/modules.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/modules.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/modules.html Sun May  6 14:18:02 2012
@@ -0,0 +1,60 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Module Index</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Modules</h1>Here is a list of all modules:<ul>
+<li><a class="el" href="group__libapreq2.html">Apache Request Library</a>
+<li><a class="el" href="group__apreq__module.html">Modules</a>
+<ul>
+<li><a class="el" href="group__mod__apreq2.html">Apache 2.X Filter Module</a>
+</ul>
+<li><a class="el" href="group__apreq__lang.html">Language Bindings</a>
+<ul>
+<li><a class="el" href="group__apreq__xs.html">Perl</a>
+<ul>
+<li><a class="el" href="group__apreq__xs__request.html">Apache2::Request</a>
+<li><a class="el" href="group__apreq__xs__upload.html">Apache2::Upload</a>
+<li><a class="el" href="group__apreq__xs__cookie.html">Apache2::Cookie</a>
+<li><a class="el" href="group__apreq__xs__apr__request.html">APR::Request</a>
+<li><a class="el" href="group__apreq__xs__apr__request__cookie.html">APR::Request::Cookie</a>
+<li><a class="el" href="group__apreq__xs__apr__request__param.html">APR::Request::Param</a>
+<li><a class="el" href="group__apreq__xs__apr__request__error.html">APR::Request::Error</a>
+<li><a class="el" href="group__apreq__xs__apr__request__cgi.html">APR::Request::CGI</a>
+<li><a class="el" href="group__apreq__xs__apr__request__apache2.html">APR::Request::Apache2</a>
+</ul>
+</ul>
+</ul>
+</div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/pages.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/pages.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/pages.html Sun May  6 14:18:02 2012
@@ -0,0 +1,54 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: Page Index</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
+<li><a class="el" href="apreq_changes.html">CHANGES</a>
+
+<li><a class="el" href="apreq_status.html">STATUS</a>
+
+<li><a class="el" href="apreq_license.html">LICENSE</a>
+
+<li><a class="el" href="apreq_notice.html">NOTICE</a>
+
+<li><a class="el" href="apreq_install.html">INSTALL</a>
+
+<li><a class="el" href="apreq_faq.html">FAQ</a>
+
+<li><a class="el" href="todo.html">Todo List</a>
+
+</ul>
+</div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>

Added: websites/staging/httpd/trunk/content/apreq/docs/libapreq2/structapreq__cookie__t.html
==============================================================================
--- websites/staging/httpd/trunk/content/apreq/docs/libapreq2/structapreq__cookie__t.html (added)
+++ websites/staging/httpd/trunk/content/apreq/docs/libapreq2/structapreq__cookie__t.html Sun May  6 14:18:02 2012
@@ -0,0 +1,193 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css" href="dox.css" />
+  <title>libapreq2-2.13: libapreq2: apreq_cookie_t Struct Reference</title> 
+</head>
+<body>
+<div id="page-header">
+<p class="menu">
+   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
+<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
+<p class="apache">Apache HTTP Server Request Library</p>
+<img alt="" src="feather.gif" /></div>
+<!-- Generated by Doxygen 1.5.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>apreq_cookie_t Struct Reference</h1><!-- doxytag: class="apreq_cookie_t" -->Cookie type, supporting both Netscape and RFC cookie specifications.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="apreq__cookie_8h-source.html">apreq_cookie.h</a>&gt;</code>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#75e2ad6da3068f50aca9b989e7e1729c">path</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#8097326f4b8711db7d3f085f283ac5a6">domain</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#45dafe4c4b5a751a40bb4123ed691837">port</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#f911681788862a8b0910074ef886bed2">comment</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#1fa5dfca7e94ebeb6f31d87d926f7626">commentURL</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/1.3/" href="http://apr.apache.org/docs/apr/1.3/group__apr__time.html#gdb4bde16055748190eae190c55aa02bb">apr_time_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#e4f9a1bec2731a70e14b43342abe1077">max_age</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#7d83540c84756a3d4ad3c8503d24de6a">flags</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structapreq__value__t.html">apreq_value_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__cookie__t.html#4a4741916f814017f20b64061755cf76">v</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Cookie type, supporting both Netscape and RFC cookie specifications. <hr><h2>Field Documentation</h2>
+<a class="anchor" name="75e2ad6da3068f50aca9b989e7e1729c"></a><!-- doxytag: member="apreq_cookie_t::path" ref="75e2ad6da3068f50aca9b989e7e1729c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structapreq__cookie__t.html#75e2ad6da3068f50aca9b989e7e1729c">apreq_cookie_t::path</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Restricts url path 
+</div>
+</div><p>
+<a class="anchor" name="8097326f4b8711db7d3f085f283ac5a6"></a><!-- doxytag: member="apreq_cookie_t::domain" ref="8097326f4b8711db7d3f085f283ac5a6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structapreq__cookie__t.html#8097326f4b8711db7d3f085f283ac5a6">apreq_cookie_t::domain</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Restricts server domain 
+</div>
+</div><p>
+<a class="anchor" name="45dafe4c4b5a751a40bb4123ed691837"></a><!-- doxytag: member="apreq_cookie_t::port" ref="45dafe4c4b5a751a40bb4123ed691837" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structapreq__cookie__t.html#45dafe4c4b5a751a40bb4123ed691837">apreq_cookie_t::port</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Restricts server port 
+</div>
+</div><p>
+<a class="anchor" name="f911681788862a8b0910074ef886bed2"></a><!-- doxytag: member="apreq_cookie_t::comment" ref="f911681788862a8b0910074ef886bed2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structapreq__cookie__t.html#f911681788862a8b0910074ef886bed2">apreq_cookie_t::comment</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+RFC cookies may send a comment 
+</div>
+</div><p>
+<a class="anchor" name="1fa5dfca7e94ebeb6f31d87d926f7626"></a><!-- doxytag: member="apreq_cookie_t::commentURL" ref="1fa5dfca7e94ebeb6f31d87d926f7626" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="structapreq__cookie__t.html#1fa5dfca7e94ebeb6f31d87d926f7626">apreq_cookie_t::commentURL</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+RFC cookies may place an URL here 
+</div>
+</div><p>
+<a class="anchor" name="e4f9a1bec2731a70e14b43342abe1077"></a><!-- doxytag: member="apreq_cookie_t::max_age" ref="e4f9a1bec2731a70e14b43342abe1077" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/1.3/" href="http://apr.apache.org/docs/apr/1.3/group__apr__time.html#gdb4bde16055748190eae190c55aa02bb">apr_time_t</a> <a class="el" href="structapreq__cookie__t.html#e4f9a1bec2731a70e14b43342abe1077">apreq_cookie_t::max_age</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+total duration of cookie: -1 == session 
+</div>
+</div><p>
+<a class="anchor" name="7d83540c84756a3d4ad3c8503d24de6a"></a><!-- doxytag: member="apreq_cookie_t::flags" ref="7d83540c84756a3d4ad3c8503d24de6a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned <a class="el" href="structapreq__cookie__t.html#7d83540c84756a3d4ad3c8503d24de6a">apreq_cookie_t::flags</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+charsets, taint marks, app-specific bits 
+</div>
+</div><p>
+<a class="anchor" name="4a4741916f814017f20b64061755cf76"></a><!-- doxytag: member="apreq_cookie_t::v" ref="4a4741916f814017f20b64061755cf76" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structapreq__value__t.html">apreq_value_t</a> <a class="el" href="structapreq__cookie__t.html#4a4741916f814017f20b64061755cf76">apreq_cookie_t::v</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+"raw" cookie value 
+</div>
+</div><p>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>include/<a class="el" href="apreq__cookie_8h-source.html">apreq_cookie.h</a></ul>
+</div>
+<div id="footer">
+<p class="apache">
+Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
+See <a href="apreq_license.html">LICENSE</a>.</p>
+<p class="menu">
+<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
+version 1.5.6 on 3 Dec 2010</span>
+</p>
+</div>
+</body>
+</html>