The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Request params</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>Request params<br>
<small>
[<a class="el" href="group__LIBRARY.html">libapreq2</a>]</small>
</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structapreq__param__t.html">apreq_param_t</a></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structapreq__request__t.html">apreq_request_t</a></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a13">apreq_value_to_param</a>(ptr)&nbsp;&nbsp;&nbsp;apreq_attr_to_type(<a class="el" href="structapreq__param__t.html">apreq_param_t</a>, v, ptr)</td></tr>
<tr><td nowrap align=right valign=top><a name="a14" doxytag="params::apreq_param_name"></a>
#define&nbsp;</td><td valign=bottom><b>apreq_param_name</b>(p)&nbsp;&nbsp;&nbsp;((p)-&gt;v.name)</td></tr>
<tr><td nowrap align=right valign=top><a name="a15" doxytag="params::apreq_param_value"></a>
#define&nbsp;</td><td valign=bottom><b>apreq_param_value</b>(p)&nbsp;&nbsp;&nbsp;((p)-&gt;v.data)</td></tr>
<tr><td nowrap align=right valign=top><a name="a16" doxytag="params::apreq_param_info"></a>
#define&nbsp;</td><td valign=bottom><b>apreq_param_info</b>(p)&nbsp;&nbsp;&nbsp;((p)-&gt;info)</td></tr>
<tr><td nowrap align=right valign=top><a name="a17" doxytag="params::apreq_param_status"></a>
#define&nbsp;</td><td valign=bottom><b>apreq_param_status</b>(p)&nbsp;&nbsp;&nbsp;((p)-&gt;v.status)</td></tr>
<tr><td nowrap align=right valign=top><a name="a18" doxytag="params::apreq_param_brigade"></a>
#define&nbsp;</td><td valign=bottom><b>apreq_param_brigade</b>(p)&nbsp;&nbsp;&nbsp;((p)-&gt;bb ? apreq_copy_brigade((p)-&gt;bb) : NULL)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a19">apreq_params_as_string</a>(req, key, pool, mode)&nbsp;&nbsp;&nbsp;apreq_join(pool, ", ", apreq_params(req,pool,key), mode)</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef apreq_param_t&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a0">apreq_param_t</a></td></tr>
<tr><td nowrap align=right valign=top>typedef apreq_request_t&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a1">apreq_request_t</a></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a2">apreq_make_param</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *p, const char *name, const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> nlen, const char *val, const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> vlen)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a3">apreq_request</a> (void *env, const char *qs)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a4">apreq_param</a> (const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req, const char *name)</td></tr>
<tr><td nowrap align=right valign=top><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a5">apreq_params</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *pool, const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a6">apreq_decode_param</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *pool, const char *word, const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> nlen, const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> vlen)</td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a7">apreq_encode_param</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *pool, const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *param)</td></tr>
<tr><td nowrap align=right valign=top><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__errno_8h.html#a0">apr_status_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a8">apreq_parse_query_string</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *pool, <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a> *t, const char *qs)</td></tr>
<tr><td nowrap align=right valign=top><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__errno_8h.html#a0">apr_status_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a9">apreq_parse_request</a> (<a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req, <a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/" href="http://apr.apache.org/docs/apr-util/structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb)</td></tr>
<tr><td nowrap align=right valign=top><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a10">apreq_uploads</a> (<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *pool, const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__params.html#a11">apreq_upload</a> (const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req, const char *key)</td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="params::apreq_request_config"></a>
<a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__errno_8h.html#a0">apr_status_t</a>&nbsp;</td><td valign=bottom><b>apreq_request_config</b> (<a class="el" href="structapreq__request__t.html">apreq_request_t</a> *req, const char *attr, <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> alen, const char *val, <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a> vlen)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a name="a19" doxytag="apreq_params.h::apreq_params_as_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define apreq_params_as_string</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">req, <tr>
<td></td>
<td></td>
<td class="md" nowrap>key, <tr>
<td></td>
<td></td>
<td class="md" nowrap>pool, <tr>
<td></td>
<td></td>
<td class="md" nowrap>mode&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap>&nbsp;&nbsp;&nbsp;apreq_join(pool, ", ", apreq_params(req,pool,key), mode)
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns a ", " -separated string containing all parameters for the requested key, NULL if none found. The key is case-insensitive. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>req</em>&nbsp;</td><td>The current <a class="el" href="structapreq__request__t.html">apreq_request_t</a> object. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>Nul-terminated search key. Returns the first table value if NULL. </td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Also parses the request as necessary. </dd></dl>
</td>
</tr>
</table>
<a name="a13" doxytag="apreq_params.h::apreq_value_to_param"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> #define apreq_value_to_param</td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">ptr&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap>&nbsp;&nbsp;&nbsp;apreq_attr_to_type(<a class="el" href="structapreq__param__t.html">apreq_param_t</a>, v, ptr)
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
accessor macros </td>
</tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a name="a0" doxytag="apreq_params.h::apreq_param_t"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef struct apreq_param_t apreq_param_t
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Common data structure for params and file uploads </td>
</tr>
</table>
<a name="a1" doxytag="apreq_params.h::apreq_request_t"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> typedef struct apreq_request_t apreq_request_t
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Structure which manages the request data. </td>
</tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a6" doxytag="apreq_params.c::apreq_decode_param"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_decode_param </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>pool</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>word</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>nlen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>vlen</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Url-decodes a name=value pair into a param. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>pool</em>&nbsp;</td><td>Pool from which the param is allocated. </td></tr>
<tr><td valign=top><em>word</em>&nbsp;</td><td>Start of the name=value pair. </td></tr>
<tr><td valign=top><em>nlen</em>&nbsp;</td><td>Length of urlencoded name. </td></tr>
<tr><td valign=top><em>vlen</em>&nbsp;</td><td>Length of urlencoded value. </td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Unless vlen == 0, this function assumes there is exactly one character ('=') which separates the pair. </dd></dl>
</td>
</tr>
</table>
<a name="a7" doxytag="apreq_params.c::apreq_encode_param"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> char* apreq_encode_param </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>pool</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>param</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Url-encodes the param into a name-value pair. </td>
</tr>
</table>
<a name="a2" doxytag="apreq_params.c::apreq_make_param"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_make_param </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>p</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>nlen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>val</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr_8h.html#a7">apr_size_t</a>&nbsp;</td>
<td class="mdname" nowrap> <em>vlen</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
creates a param from name/value information </td>
</tr>
</table>
<a name="a4" doxytag="apreq_params.c::apreq_param"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_param </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>req</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>name</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the first parameter value for the requested key, NULL if none found. The key is case-insensitive. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>req</em>&nbsp;</td><td>The current <a class="el" href="structapreq__request__t.html">apreq_request_t</a> object. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>Nul-terminated search key. Returns the first table value if NULL. </td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Also parses the request as necessary. </dd></dl>
</td>
</tr>
</table>
<a name="a5" doxytag="apreq_params.c::apreq_params"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a>* apreq_params </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>p</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>req</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns all parameters for the requested key, NULL if none found. The key is case-insensitive. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>req</em>&nbsp;</td><td>The current <a class="el" href="structapreq__request__t.html">apreq_request_t</a> object. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>Nul-terminated search key. Returns the first table value if NULL. </td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Also parses the request as necessary. </dd></dl>
</td>
</tr>
</table>
<a name="a8" doxytag="apreq_params.c::apreq_parse_query_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__errno_8h.html#a0">apr_status_t</a> apreq_parse_query_string </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>pool</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>t</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>qs</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Parse a url-encoded string into a param table. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>pool</em>&nbsp;</td><td>pool used to allocate the param data. </td></tr>
<tr><td valign=top><em>table</em>&nbsp;</td><td>table to which the params are added. </td></tr>
<tr><td valign=top><em>qs</em>&nbsp;</td><td>Query string to url-decode. </td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>This function uses [&amp;;] as the set of tokens to delineate words, and will treat a word w/o '=' as a name-value pair with value-length = 0. </dd></dl>
</td>
</tr>
</table>
<a name="a9" doxytag="apreq_params.c::apreq_parse_request"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__errno_8h.html#a0">apr_status_t</a> apreq_parse_request </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>req</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="elRef" doxygen="apu.tag:http://apr.apache.org/docs/apr-util/" href="http://apr.apache.org/docs/apr-util/structapr__bucket__brigade.html">apr_bucket_brigade</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>bb</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Parse a brigade as incoming POST data. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>req</em>&nbsp;</td><td>Current request. </td></tr>
<tr><td valign=top><em>bb</em>&nbsp;</td><td>Brigade to parse. See remarks below. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>APR_INCOMPLETE if the parse is incomplete, APR_SUCCESS if the parser is finished (saw eos), unrecoverable error value otherwise.</dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Polymorphic buckets (file, pipe, socket, etc.) will generate new buckets during parsing, which may cause problems with the configuration checks. To be on the safe side, the caller should avoid placing such buckets in the passed brigade. </dd></dl>
</td>
</tr>
</table>
<a name="a3" doxytag="apreq_params.c::apreq_request"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="structapreq__request__t.html">apreq_request_t</a>* apreq_request </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">void *&nbsp;</td>
<td class="mdname" nowrap> <em>env</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>qs</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
default parser configuration<p>
&lt; limit on POST data size<p>
&lt; limit on brigade size<p>
&lt; maximum number of form fields<p>
&lt; maximum amount of prefetch data </td>
</tr>
</table>
<a name="a11" doxytag="apreq_params.c::apreq_upload"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_upload </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>req</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap> <em>key</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the first param in req-&gt;body which has both param-&gt;v.name matching key and param-&gt;bb != NULL. </td>
</tr>
</table>
<a name="a10" doxytag="apreq_params.c::apreq_uploads"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__tables_8h.html#a0">apr_table_t</a>* apreq_uploads </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="elRef" doxygen="apr.tag:http://apr.apache.org/docs/apr/" href="http://apr.apache.org/docs/apr/apr__pools_8h.html#a0">apr_pool_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>pool</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const <a class="el" href="structapreq__request__t.html">apreq_request_t</a> *&nbsp;</td>
<td class="mdname" nowrap> <em>req</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns a table of all params in req-&gt;body with non-NULL bucket brigades. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign=top><em>pool</em>&nbsp;</td><td>Pool which allocates the table struct. </td></tr>
<tr><td valign=top><em>req</em>&nbsp;</td><td>Current request. </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<hr><address style="align: right;"><small>Generated on Mon Nov 10 20:12:46 2003 for libapreq2 by
<img src="doxygen.png" alt="doxygen" align="middle" border=0
width=110 height=53></a>1.3 </small></address>
</body>
</html>