<html>
<head>
  <link rel="stylesheet" type="text/css" href="dox.css" />
  <title>libapreq2-2.16: include/apreq_param.h File 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.8.20 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">apreq_param.h File Reference<div class="ingroups"><a class="el" href="group__libapreq2.html">Apache Request Library</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Request parsing and parameter API.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="apreq_8h_source.html">apreq.h</a>&quot;</code><br />
<code>#include &quot;apr_buckets.h&quot;</code><br />
</div>
<p><a href="apreq__param_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapreq__param__t.html">apreq_param_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad7b3956f0310dec4b970ad7135aeabd7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structapreq__param__t.html">apreq_param_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#ad7b3956f0310dec4b970ad7135aeabd7">apreq_param_t</a></td></tr>
<tr class="separator:ad7b3956f0310dec4b970ad7135aeabd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af407c2ab726bc8bc34a1b1924a4f327a"><td class="memItemLeft" align="right" valign="top">static APR_INLINE unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#af407c2ab726bc8bc34a1b1924a4f327a">apreq_param_is_tainted</a> (const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *p)</td></tr>
<tr class="separator:af407c2ab726bc8bc34a1b1924a4f327a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a967919466da31283c6d668c58fe5223c"><td class="memItemLeft" align="right" valign="top">static APR_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a967919466da31283c6d668c58fe5223c">apreq_param_tainted_on</a> (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> *p)</td></tr>
<tr class="separator:a967919466da31283c6d668c58fe5223c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae76641d443483db5274624f948e1c347"><td class="memItemLeft" align="right" valign="top">static APR_INLINE void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#ae76641d443483db5274624f948e1c347">apreq_param_tainted_off</a> (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> *p)</td></tr>
<tr class="separator:ae76641d443483db5274624f948e1c347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe765ec55aebc8409ddd6d3db44ff917"><td class="memItemLeft" align="right" valign="top">static APR_INLINE <a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#abe765ec55aebc8409ddd6d3db44ff917">apreq_param_charset_set</a> (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> *p, <a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a> c)</td></tr>
<tr class="separator:abe765ec55aebc8409ddd6d3db44ff917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe2a7a47df83a5667fe2834bfc03f15a"><td class="memItemLeft" align="right" valign="top">static APR_INLINE <a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#abe2a7a47df83a5667fe2834bfc03f15a">apreq_param_charset_get</a> (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> *p)</td></tr>
<tr class="separator:abe2a7a47df83a5667fe2834bfc03f15a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a121453693ef7c6af821ae723b6dbe34b"><td class="memItemLeft" align="right" valign="top">static APR_INLINE <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a121453693ef7c6af821ae723b6dbe34b">apreq_value_to_param</a> (const char *val)</td></tr>
<tr class="separator:a121453693ef7c6af821ae723b6dbe34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25c915d3d0fd1694d2c538f108646560"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a25c915d3d0fd1694d2c538f108646560">apreq_param_make</a> (apr_pool_t *p, const char *name, const apr_size_t nlen, const char *val, const apr_size_t vlen)</td></tr>
<tr class="separator:a25c915d3d0fd1694d2c538f108646560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeea075c59169992492f6f5c40b9b8a70"><td class="memItemLeft" align="right" valign="top">apr_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#aeea075c59169992492f6f5c40b9b8a70">apreq_param_decode</a> (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> **param, apr_pool_t *pool, const char *word, apr_size_t nlen, apr_size_t vlen)</td></tr>
<tr class="separator:aeea075c59169992492f6f5c40b9b8a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b8b032f9d2ae8e0a6e95b6dd95b5aa9"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a4b8b032f9d2ae8e0a6e95b6dd95b5aa9">apreq_param_encode</a> (apr_pool_t *pool, const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *param)</td></tr>
<tr class="separator:a4b8b032f9d2ae8e0a6e95b6dd95b5aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0aa638519951d85d1faf7bf6ba986226"><td class="memItemLeft" align="right" valign="top">apr_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a0aa638519951d85d1faf7bf6ba986226">apreq_parse_query_string</a> (apr_pool_t *pool, apr_table_t *t, const char *qs)</td></tr>
<tr class="separator:a0aa638519951d85d1faf7bf6ba986226"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c7e698fd45f3f3e07db60fcba15e52"><td class="memItemLeft" align="right" valign="top">apr_array_header_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a76c7e698fd45f3f3e07db60fcba15e52">apreq_params_as_array</a> (apr_pool_t *p, const apr_table_t *t, const char *key)</td></tr>
<tr class="separator:a76c7e698fd45f3f3e07db60fcba15e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1db12120bb2307f5e33186f094b0d6"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a0f1db12120bb2307f5e33186f094b0d6">apreq_params_as_string</a> (apr_pool_t *p, const apr_table_t *t, const char *key, <a class="el" href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a> mode)</td></tr>
<tr class="separator:a0f1db12120bb2307f5e33186f094b0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae449c4a1890767d1e9a50c78ea42769c"><td class="memItemLeft" align="right" valign="top">const apr_table_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#ae449c4a1890767d1e9a50c78ea42769c">apreq_uploads</a> (const apr_table_t *body, apr_pool_t *pool)</td></tr>
<tr class="separator:ae449c4a1890767d1e9a50c78ea42769c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1be07e7c4c8a687203ccc0d38ec3aedd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__param_8h.html#a1be07e7c4c8a687203ccc0d38ec3aedd">apreq_upload</a> (const apr_table_t *body, const char *name)</td></tr>
<tr class="separator:a1be07e7c4c8a687203ccc0d38ec3aedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Request parsing and parameter API. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="ad7b3956f0310dec4b970ad7135aeabd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7b3956f0310dec4b970ad7135aeabd7">&#9670;&nbsp;</a></span>apreq_param_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structapreq__param__t.html">apreq_param_t</a> <a class="el" href="structapreq__param__t.html">apreq_param_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Common data structure for params and file uploads </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="abe2a7a47df83a5667fe2834bfc03f15a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe2a7a47df83a5667fe2834bfc03f15a">&#9670;&nbsp;</a></span>apreq_param_charset_get()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE <a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a> apreq_param_charset_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets the character encoding for this parameter. </p>

</div>
</div>
<a id="abe765ec55aebc8409ddd6d3db44ff917"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe765ec55aebc8409ddd6d3db44ff917">&#9670;&nbsp;</a></span>apreq_param_charset_set()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE <a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a> apreq_param_charset_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the character encoding for this parameter. </p>

</div>
</div>
<a id="aeea075c59169992492f6f5c40b9b8a70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeea075c59169992492f6f5c40b9b8a70">&#9670;&nbsp;</a></span>apreq_param_decode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apreq_param_decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> **&#160;</td>
          <td class="paramname"><em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>word</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t&#160;</td>
          <td class="paramname"><em>nlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t&#160;</td>
          <td class="paramname"><em>vlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Url-decodes a name=value pair into a param.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">param</td><td>points to the decoded parameter on success </td></tr>
    <tr><td class="paramname">pool</td><td>Pool from which the param is allocated. </td></tr>
    <tr><td class="paramname">word</td><td>Start of the name=value pair. </td></tr>
    <tr><td class="paramname">nlen</td><td>Length of urlencoded name. </td></tr>
    <tr><td class="paramname">vlen</td><td>Length of urlencoded value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS on success. </dd>
<dd>
<a class="el" href="apreq__error_8h.html#a73a69e21acc2cf849310a421ab43d2ba">APREQ_ERROR_BADSEQ</a> or <a class="el" href="apreq__error_8h.html#a04b6a01738a1ee7fd1ecc79d256e721f">APREQ_ERROR_BADCHAR</a> on malformed input.</dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Unless vlen == 0, this function assumes there is exactly one character ('=') which separates the pair. </dd></dl>

</div>
</div>
<a id="a4b8b032f9d2ae8e0a6e95b6dd95b5aa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b8b032f9d2ae8e0a6e95b6dd95b5aa9">&#9670;&nbsp;</a></span>apreq_param_encode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* apreq_param_encode </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Url-encodes the param into a name-value pair. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pool</td><td>Pool which allocates the returned string. </td></tr>
    <tr><td class="paramname">param</td><td>Param to encode. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>name-value pair representing the param. </dd></dl>

</div>
</div>
<a id="af407c2ab726bc8bc34a1b1924a4f327a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af407c2ab726bc8bc34a1b1924a4f327a">&#9670;&nbsp;</a></span>apreq_param_is_tainted()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE unsigned apreq_param_is_tainted </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>1 if the taint flag is set, 0 otherwise. </dd></dl>

</div>
</div>
<a id="a25c915d3d0fd1694d2c538f108646560"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25c915d3d0fd1694d2c538f108646560">&#9670;&nbsp;</a></span>apreq_param_make()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_param_make </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const apr_size_t&#160;</td>
          <td class="paramname"><em>nlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const apr_size_t&#160;</td>
          <td class="paramname"><em>vlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>creates a param from name/value information </p>

</div>
</div>
<a id="ae76641d443483db5274624f948e1c347"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae76641d443483db5274624f948e1c347">&#9670;&nbsp;</a></span>apreq_param_tainted_off()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE void apreq_param_tainted_off </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Turns off the taint flag. </p>

</div>
</div>
<a id="a967919466da31283c6d668c58fe5223c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a967919466da31283c6d668c58fe5223c">&#9670;&nbsp;</a></span>apreq_param_tainted_on()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE void apreq_param_tainted_on </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structapreq__param__t.html">apreq_param_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the tainted flag. </p>

</div>
</div>
<a id="a76c7e698fd45f3f3e07db60fcba15e52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76c7e698fd45f3f3e07db60fcba15e52">&#9670;&nbsp;</a></span>apreq_params_as_array()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_array_header_t* apreq_params_as_array </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const apr_table_t *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns an array of parameters (<a class="el" href="structapreq__param__t.html">apreq_param_t</a> *) matching the given key. The key is case-insensitive. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Allocates the returned array. </td></tr>
    <tr><td class="paramname">t</td><td>the parameter table returned by <a class="el" href="apreq__module_8h.html#ade74830e449fa5bb24694ffc3b8374ca">apreq_args()</a>, <a class="el" href="apreq__module_8h.html#ae928689622d094025a8efb8c6c17d680">apreq_body()</a> or <a class="el" href="apreq__module_8h.html#a0dff48fd4e83399a07853abe9d67c251">apreq_params()</a> </td></tr>
    <tr><td class="paramname">key</td><td>Null-terminated search key, case insensitive. key==NULL fetches all parameters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an array of apreq_param_t* (pointers) </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Also parses the request if necessary. </dd></dl>

</div>
</div>
<a id="a0f1db12120bb2307f5e33186f094b0d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f1db12120bb2307f5e33186f094b0d6">&#9670;&nbsp;</a></span>apreq_params_as_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apreq_params_as_string </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const apr_table_t *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns a ", " -joined string containing all parameters for the requested key, an empty string if none are found. The key is case-insensitive.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Allocates the return string. </td></tr>
    <tr><td class="paramname">t</td><td>the parameter table returned by <a class="el" href="apreq__module_8h.html#ade74830e449fa5bb24694ffc3b8374ca">apreq_args()</a>, <a class="el" href="apreq__module_8h.html#ae928689622d094025a8efb8c6c17d680">apreq_body()</a> or <a class="el" href="apreq__module_8h.html#a0dff48fd4e83399a07853abe9d67c251">apreq_params()</a> </td></tr>
    <tr><td class="paramname">key</td><td>Null-terminated parameter name, case insensitive. key==NULL fetches all values. </td></tr>
    <tr><td class="paramname">mode</td><td>Join type- see <a class="el" href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930">apreq_join()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the joined string or NULL on error </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Also parses the request if necessary. </dd></dl>

</div>
</div>
<a id="a0aa638519951d85d1faf7bf6ba986226"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0aa638519951d85d1faf7bf6ba986226">&#9670;&nbsp;</a></span>apreq_parse_query_string()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apreq_parse_query_string </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_table_t *&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>qs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Parse a url-encoded string into a param table. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pool</td><td>pool used to allocate the param data. </td></tr>
    <tr><td class="paramname">t</td><td>table to which the params are added. </td></tr>
    <tr><td class="paramname">qs</td><td>Query string to url-decode. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if successful, error otherwise. </dd></dl>
<dl class="section remark"><dt>Remarks</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>

</div>
</div>
<a id="a1be07e7c4c8a687203ccc0d38ec3aedd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1be07e7c4c8a687203ccc0d38ec3aedd">&#9670;&nbsp;</a></span>apreq_upload()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_upload </td>
          <td>(</td>
          <td class="paramtype">const apr_table_t *&#160;</td>
          <td class="paramname"><em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the first param in req-&gt;body which has both param-&gt;v.name matching key (case insensitive) and param-&gt;upload != NULL. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">body</td><td>parameter table returned by <a class="el" href="apreq__module_8h.html#ae928689622d094025a8efb8c6c17d680">apreq_body()</a> or <a class="el" href="apreq__module_8h.html#a0dff48fd4e83399a07853abe9d67c251">apreq_params()</a> </td></tr>
    <tr><td class="paramname">name</td><td>Parameter name. key == NULL returns first upload. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Corresponding upload, NULL if none found. </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Will parse the request as necessary. </dd></dl>

</div>
</div>
<a id="ae449c4a1890767d1e9a50c78ea42769c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae449c4a1890767d1e9a50c78ea42769c">&#9670;&nbsp;</a></span>apreq_uploads()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const apr_table_t* apreq_uploads </td>
          <td>(</td>
          <td class="paramtype">const apr_table_t *&#160;</td>
          <td class="paramname"><em>body</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&#160;</td>
          <td class="paramname"><em>pool</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns a table of all params in req-&gt;body with non-NULL upload brigades. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">body</td><td>parameter table returned by <a class="el" href="apreq__module_8h.html#ae928689622d094025a8efb8c6c17d680">apreq_body()</a> or <a class="el" href="apreq__module_8h.html#a0dff48fd4e83399a07853abe9d67c251">apreq_params()</a> </td></tr>
    <tr><td class="paramname">pool</td><td>Pool which allocates the table struct. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upload table. </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Will parse the request if necessary. </dd></dl>

</div>
</div>
<a id="a121453693ef7c6af821ae723b6dbe34b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a121453693ef7c6af821ae723b6dbe34b">&#9670;&nbsp;</a></span>apreq_value_to_param()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static APR_INLINE <a class="el" href="structapreq__param__t.html">apreq_param_t</a>* apreq_value_to_param </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Upgrades args and body table values to <a class="el" href="structapreq__param__t.html">apreq_param_t</a> structs. </p>

</div>
</div>
</div><!-- contents -->
<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.8.20 on Wed Mar 10 2021</span>
</p>
</div>
</body>
</html>