<html>
<head>
  <link rel="stylesheet" type="text/css" href="dox.css" />
  <title>libapreq2-2.16: include/apreq_parser.h Source File</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="headertitle">
<div class="title">apreq_parser.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="apreq__parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#ade5e15a40b9e1ec626ee56c494c7cdbb">    1</a></span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">**  Licensed to the Apache Software Foundation (ASF) under one or more</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">** contributor license agreements.  See the NOTICE file distributed with</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">** this work for additional information regarding copyright ownership.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">** The ASF licenses this file to You under the Apache License, Version 2.0</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">** (the &quot;License&quot;); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">** the License.  You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">**</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">**      http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">**</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">**  Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">**  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">**  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">**  See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">**  limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#ifndef APREQ_PARSERS_H</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define APREQ_PARSERS_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">/* These structs are defined below */</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="apreq__param_8h.html">apreq_param.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapreq__parser__t.html">apreq_parser_t</a> <a class="code" href="structapreq__parser__t.html">apreq_parser_t</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#af39d2adfdd09c2fe0c8c6a3c1ea1437e">   47</a></span>&#160;<span class="preprocessor">#define APREQ_PARSER_ARGS  apreq_parser_t *parser,     \</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">                           apr_table_t *t,             \</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">                           apr_bucket_brigade *bb</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a61c8b1c319752bde3cc35e98247707bf">   52</a></span>&#160;<span class="preprocessor">#define APREQ_HOOK_ARGS    apreq_hook_t *hook,         \</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">                           apreq_param_t *param,       \</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">                           apr_bucket_brigade *bb</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">   59</a></span>&#160;<span class="keyword">typedef</span> apr_status_t (*<a class="code" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a>)(<a class="code" href="apreq__parser_8h.html#af39d2adfdd09c2fe0c8c6a3c1ea1437e">APREQ_PARSER_ARGS</a>);</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0">   64</a></span>&#160;<span class="keyword">typedef</span> apr_status_t (*<a class="code" href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0">apreq_hook_function_t</a>)(<a class="code" href="apreq__parser_8h.html#a61c8b1c319752bde3cc35e98247707bf">APREQ_HOOK_ARGS</a>);</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">   69</a></span>&#160;<span class="preprocessor">#define APREQ_DECLARE_PARSER(f) APREQ_DECLARE_NONSTD(apr_status_t) \</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">                                (f) (APREQ_PARSER_ARGS)</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">   75</a></span>&#160;<span class="preprocessor">#define APREQ_DECLARE_HOOK(f)   APREQ_DECLARE_NONSTD(apr_status_t) \</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">                                (f) (APREQ_HOOK_ARGS)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html">   83</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> {</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html#a9e61fe14dbacf28528f69de468fb1fc0">   84</a></span>&#160;    <a class="code" href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0">apreq_hook_function_t</a> <a class="code" href="structapreq__hook__t.html#a9e61fe14dbacf28528f69de468fb1fc0">hook</a>; </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html#a09efec3f75c52dbeaeedde059c953f7f">   85</a></span>&#160;    <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a>         *<a class="code" href="structapreq__hook__t.html#a09efec3f75c52dbeaeedde059c953f7f">next</a>; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html#a2316f4a8fb1cf0a9d5a46866b3229db1">   86</a></span>&#160;    apr_pool_t           *<a class="code" href="structapreq__hook__t.html#a2316f4a8fb1cf0a9d5a46866b3229db1">pool</a>; </div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html#a52aeaf774a4d37758b6a3de625913ac5">   87</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="structapreq__hook__t.html#a52aeaf774a4d37758b6a3de625913ac5">ctx</a>; </div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;};</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html">   93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structapreq__parser__t.html">apreq_parser_t</a> {</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#adc117877c27713515c7617b560efb9a9">   95</a></span>&#160;    <a class="code" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a> <a class="code" href="structapreq__parser__t.html#adc117877c27713515c7617b560efb9a9">parser</a>;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#a3acc7764c18c52c33bb64e3ee3375670">   97</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>             *<a class="code" href="structapreq__parser__t.html#a3acc7764c18c52c33bb64e3ee3375670">content_type</a>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#a8148c125f670a73aedb9b228612b5901">   99</a></span>&#160;    apr_pool_t             *<a class="code" href="structapreq__parser__t.html#a8148c125f670a73aedb9b228612b5901">pool</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#ae2d1910ffc51047ff2759843d1babbc8">  101</a></span>&#160;    apr_bucket_alloc_t     *<a class="code" href="structapreq__parser__t.html#ae2d1910ffc51047ff2759843d1babbc8">bucket_alloc</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#a203d6cfc8d36892a995a535bfe644e32">  103</a></span>&#160;    apr_size_t              <a class="code" href="structapreq__parser__t.html#a203d6cfc8d36892a995a535bfe644e32">brigade_limit</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#a928f16aae17f84fadf06a52a51a6385c">  105</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>             *<a class="code" href="structapreq__parser__t.html#a928f16aae17f84fadf06a52a51a6385c">temp_dir</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#add1d982c326705e8da838041a645de33">  107</a></span>&#160;    <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a>           *<a class="code" href="structapreq__parser__t.html#add1d982c326705e8da838041a645de33">hook</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html#ab73f196059129e0ca7926526ebba0a78">  109</a></span>&#160;    <span class="keywordtype">void</span>                   *<a class="code" href="structapreq__parser__t.html#ab73f196059129e0ca7926526ebba0a78">ctx</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;};</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a3c00aa3a31daba2c06110d5fc8edf1fe">  124</a></span>&#160;apr_status_t <a class="code" href="apreq__parser_8h.html#a3c00aa3a31daba2c06110d5fc8edf1fe">apreq_parser_run</a>(<span class="keyword">struct</span> <a class="code" href="structapreq__parser__t.html">apreq_parser_t</a> *psr, apr_table_t *t,</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                              apr_bucket_brigade *bb)</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">return</span> psr-&gt;<a class="code" href="structapreq__parser__t.html#adc117877c27713515c7617b560efb9a9">parser</a>(psr, t, bb);</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a14d03a414fc4a0663af55fbb1f532bab">  138</a></span>&#160;apr_status_t <a class="code" href="apreq__parser_8h.html#a14d03a414fc4a0663af55fbb1f532bab">apreq_hook_run</a>(<span class="keyword">struct</span> <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> *h, <a class="code" href="structapreq__param__t.html">apreq_param_t</a> *param,</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                            apr_bucket_brigade *bb)</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;{</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">return</span> h-&gt;<a class="code" href="structapreq__hook__t.html#a9e61fe14dbacf28528f69de468fb1fc0">hook</a>(h, param, bb);</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;}</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a6fd1ffe554941172fce54217c35f9db3">  150</a></span>&#160;<a class="code" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">APREQ_DECLARE_PARSER</a>(apreq_parse_headers);</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#aec4b20f646ea57ad84d6a3391c548838">  155</a></span>&#160;<a class="code" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">APREQ_DECLARE_PARSER</a>(apreq_parse_urlencoded);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a3bb6d9580fcbaf11cef33072ed3b14cb">  163</a></span>&#160;<a class="code" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">APREQ_DECLARE_PARSER</a>(apreq_parse_multipart);</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a2833122bb6995f056a96df80a9f5a45f">  173</a></span>&#160;<a class="code" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">APREQ_DECLARE_PARSER</a>(apreq_parse_generic);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#adda61d873abf1c0ed1857bda405baa49">  182</a></span>&#160;<a class="code" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">APREQ_DECLARE_HOOK</a>(apreq_hook_apr_xml_parser);</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a562191171c5df0a83360435d0fe1a667">  197</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(<a class="code" href="structapreq__parser__t.html">apreq_parser_t</a> *) <a class="code" href="apreq__parser_8h.html#a562191171c5df0a83360435d0fe1a667">apreq_parser_make</a>(apr_pool_t *pool,</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                                                  apr_bucket_alloc_t *ba,</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *content_type,</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                                                  <a class="code" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a> pfn,</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                                                  apr_size_t brigade_limit,</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *temp_dir,</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;                                                  <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> *hook,</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                                                  <span class="keywordtype">void</span> *ctx);</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a3cf15457eea6991b36f47f6139ab163c">  215</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(<a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> *) <a class="code" href="apreq__parser_8h.html#a3cf15457eea6991b36f47f6139ab163c">apreq_hook_make</a>(apr_pool_t *pool,</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                                              <a class="code" href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0">apreq_hook_function_t</a> hook,</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                                              <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> *next,</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                                              <span class="keywordtype">void</span> *ctx);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a97972c08b20917465b745c8b8eec95ed">  227</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__parser_8h.html#a97972c08b20917465b745c8b8eec95ed">apreq_parser_add_hook</a>(<a class="code" href="structapreq__parser__t.html">apreq_parser_t</a> *p,</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                                                  <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a> *h);</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a73013ecad087f14075d319a4a983dd82">  237</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(<a class="code" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a>)<a class="code" href="apreq__parser_8h.html#a73013ecad087f14075d319a4a983dd82">apreq_parser</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *enctype);</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a595f05be3d241a5b339fd6ef948bfbc8">  252</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__parser_8h.html#a595f05be3d241a5b339fd6ef948bfbc8">apreq_register_parser</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *enctype,</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                                                  <a class="code" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a> pfn);</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a162c74d59738663d7cb2109ee0b87c0a">  261</a></span>&#160;<a class="code" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">APREQ_DECLARE_HOOK</a>(apreq_hook_disable_uploads);</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#ad169b0ac7b7b1a66d3df3ae66c96a16c">  267</a></span>&#160;<a class="code" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">APREQ_DECLARE_HOOK</a>(apreq_hook_discard_brigade);</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="structapreq__hook__find__param__ctx__t.html">  272</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapreq__hook__find__param__ctx__t.html">apreq_hook_find_param_ctx_t</a> {</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>    *name;</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <a class="code" href="structapreq__param__t.html">apreq_param_t</a> *param;</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <a class="code" href="structapreq__hook__t.html">apreq_hook_t</a>  *prev;</div>
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#ab9e03fd28359c5a82771a25d806c2165">  276</a></span>&#160;} <a class="code" href="apreq__parser_8h.html#ab9e03fd28359c5a82771a25d806c2165">apreq_hook_find_param_ctx_t</a>;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a5deeed0646b3d61cafe4eb5b6e40b16c">  293</a></span>&#160;<a class="code" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">APREQ_DECLARE_HOOK</a>(apreq_hook_find_param);</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;}</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* APREQ_PARSERS_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructapreq__param__t_html"><div class="ttname"><a href="structapreq__param__t.html">apreq_param_t</a></div><div class="ttdef"><b>Definition:</b> apreq_param.h:37</div></div>
<div class="ttc" id="aapreq_8h_html_a02bf89714a74397155a11b9ccb942b0d"><div class="ttname"><a href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a></div><div class="ttdeci">#define APREQ_DECLARE(d)</div><div class="ttdef"><b>Definition:</b> apreq.h:50</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a14d03a414fc4a0663af55fbb1f532bab"><div class="ttname"><a href="apreq__parser_8h.html#a14d03a414fc4a0663af55fbb1f532bab">apreq_hook_run</a></div><div class="ttdeci">static APR_INLINE apr_status_t apreq_hook_run(struct apreq_hook_t *h, apreq_param_t *param, apr_bucket_brigade *bb)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:138</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a73013ecad087f14075d319a4a983dd82"><div class="ttname"><a href="apreq__parser_8h.html#a73013ecad087f14075d319a4a983dd82">apreq_parser</a></div><div class="ttdeci">apreq_parser_function_t apreq_parser(const char *enctype)</div></div>
<div class="ttc" id="astructapreq__hook__t_html_a09efec3f75c52dbeaeedde059c953f7f"><div class="ttname"><a href="structapreq__hook__t.html#a09efec3f75c52dbeaeedde059c953f7f">apreq_hook_t::next</a></div><div class="ttdeci">apreq_hook_t * next</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:85</div></div>
<div class="ttc" id="astructapreq__parser__t_html_add1d982c326705e8da838041a645de33"><div class="ttname"><a href="structapreq__parser__t.html#add1d982c326705e8da838041a645de33">apreq_parser_t::hook</a></div><div class="ttdeci">apreq_hook_t * hook</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:107</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a61c8b1c319752bde3cc35e98247707bf"><div class="ttname"><a href="apreq__parser_8h.html#a61c8b1c319752bde3cc35e98247707bf">APREQ_HOOK_ARGS</a></div><div class="ttdeci">#define APREQ_HOOK_ARGS</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:52</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a562191171c5df0a83360435d0fe1a667"><div class="ttname"><a href="apreq__parser_8h.html#a562191171c5df0a83360435d0fe1a667">apreq_parser_make</a></div><div class="ttdeci">apreq_parser_t * apreq_parser_make(apr_pool_t *pool, apr_bucket_alloc_t *ba, const char *content_type, apreq_parser_function_t pfn, apr_size_t brigade_limit, const char *temp_dir, apreq_hook_t *hook, void *ctx)</div></div>
<div class="ttc" id="astructapreq__hook__t_html_a2316f4a8fb1cf0a9d5a46866b3229db1"><div class="ttname"><a href="structapreq__hook__t.html#a2316f4a8fb1cf0a9d5a46866b3229db1">apreq_hook_t::pool</a></div><div class="ttdeci">apr_pool_t * pool</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:86</div></div>
<div class="ttc" id="astructapreq__parser__t_html_a928f16aae17f84fadf06a52a51a6385c"><div class="ttname"><a href="structapreq__parser__t.html#a928f16aae17f84fadf06a52a51a6385c">apreq_parser_t::temp_dir</a></div><div class="ttdeci">const char * temp_dir</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:105</div></div>
<div class="ttc" id="astructapreq__hook__t_html"><div class="ttname"><a href="structapreq__hook__t.html">apreq_hook_t</a></div><div class="ttdef"><b>Definition:</b> apreq_parser.h:83</div></div>
<div class="ttc" id="astructapreq__hook__t_html_a9e61fe14dbacf28528f69de468fb1fc0"><div class="ttname"><a href="structapreq__hook__t.html#a9e61fe14dbacf28528f69de468fb1fc0">apreq_hook_t::hook</a></div><div class="ttdeci">apreq_hook_function_t hook</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:84</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a97972c08b20917465b745c8b8eec95ed"><div class="ttname"><a href="apreq__parser_8h.html#a97972c08b20917465b745c8b8eec95ed">apreq_parser_add_hook</a></div><div class="ttdeci">apr_status_t apreq_parser_add_hook(apreq_parser_t *p, apreq_hook_t *h)</div></div>
<div class="ttc" id="astructapreq__parser__t_html"><div class="ttname"><a href="structapreq__parser__t.html">apreq_parser_t</a></div><div class="ttdef"><b>Definition:</b> apreq_parser.h:93</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a3c00aa3a31daba2c06110d5fc8edf1fe"><div class="ttname"><a href="apreq__parser_8h.html#a3c00aa3a31daba2c06110d5fc8edf1fe">apreq_parser_run</a></div><div class="ttdeci">static APR_INLINE apr_status_t apreq_parser_run(struct apreq_parser_t *psr, apr_table_t *t, apr_bucket_brigade *bb)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:124</div></div>
<div class="ttc" id="aapreq__param_8h_html"><div class="ttname"><a href="apreq__param_8h.html">apreq_param.h</a></div><div class="ttdoc">Request parsing and parameter API.</div></div>
<div class="ttc" id="astructapreq__parser__t_html_a8148c125f670a73aedb9b228612b5901"><div class="ttname"><a href="structapreq__parser__t.html#a8148c125f670a73aedb9b228612b5901">apreq_parser_t::pool</a></div><div class="ttdeci">apr_pool_t * pool</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:99</div></div>
<div class="ttc" id="astructapreq__hook__find__param__ctx__t_html"><div class="ttname"><a href="structapreq__hook__find__param__ctx__t.html">apreq_hook_find_param_ctx_t</a></div><div class="ttdef"><b>Definition:</b> apreq_parser.h:272</div></div>
<div class="ttc" id="astructapreq__parser__t_html_a3acc7764c18c52c33bb64e3ee3375670"><div class="ttname"><a href="structapreq__parser__t.html#a3acc7764c18c52c33bb64e3ee3375670">apreq_parser_t::content_type</a></div><div class="ttdeci">const char * content_type</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:97</div></div>
<div class="ttc" id="aapreq__parser_8h_html_affb8f3ab5b29a4e09f3aa3bde8630118"><div class="ttname"><a href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118">apreq_parser_function_t</a></div><div class="ttdeci">apr_status_t(* apreq_parser_function_t)(APREQ_PARSER_ARGS)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:59</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a6ff78d9001f60363061d0608b52afbe0"><div class="ttname"><a href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0">apreq_hook_function_t</a></div><div class="ttdeci">apr_status_t(* apreq_hook_function_t)(APREQ_HOOK_ARGS)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:64</div></div>
<div class="ttc" id="aapreq__parser_8h_html_abaa196498d8cf959e07b4c84d5264f7f"><div class="ttname"><a href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f">APREQ_DECLARE_HOOK</a></div><div class="ttdeci">#define APREQ_DECLARE_HOOK(f)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:75</div></div>
<div class="ttc" id="aapreq__parser_8h_html_af39d2adfdd09c2fe0c8c6a3c1ea1437e"><div class="ttname"><a href="apreq__parser_8h.html#af39d2adfdd09c2fe0c8c6a3c1ea1437e">APREQ_PARSER_ARGS</a></div><div class="ttdeci">#define APREQ_PARSER_ARGS</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:47</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a855c07ea7fc9e240c8620d29eea4a019"><div class="ttname"><a href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019">APREQ_DECLARE_PARSER</a></div><div class="ttdeci">#define APREQ_DECLARE_PARSER(f)</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:69</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a3cf15457eea6991b36f47f6139ab163c"><div class="ttname"><a href="apreq__parser_8h.html#a3cf15457eea6991b36f47f6139ab163c">apreq_hook_make</a></div><div class="ttdeci">apreq_hook_t * apreq_hook_make(apr_pool_t *pool, apreq_hook_function_t hook, apreq_hook_t *next, void *ctx)</div></div>
<div class="ttc" id="astructapreq__parser__t_html_ae2d1910ffc51047ff2759843d1babbc8"><div class="ttname"><a href="structapreq__parser__t.html#ae2d1910ffc51047ff2759843d1babbc8">apreq_parser_t::bucket_alloc</a></div><div class="ttdeci">apr_bucket_alloc_t * bucket_alloc</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:101</div></div>
<div class="ttc" id="astructapreq__parser__t_html_a203d6cfc8d36892a995a535bfe644e32"><div class="ttname"><a href="structapreq__parser__t.html#a203d6cfc8d36892a995a535bfe644e32">apreq_parser_t::brigade_limit</a></div><div class="ttdeci">apr_size_t brigade_limit</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:103</div></div>
<div class="ttc" id="astructapreq__hook__t_html_a52aeaf774a4d37758b6a3de625913ac5"><div class="ttname"><a href="structapreq__hook__t.html#a52aeaf774a4d37758b6a3de625913ac5">apreq_hook_t::ctx</a></div><div class="ttdeci">void * ctx</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:87</div></div>
<div class="ttc" id="aapreq__parser_8h_html_a595f05be3d241a5b339fd6ef948bfbc8"><div class="ttname"><a href="apreq__parser_8h.html#a595f05be3d241a5b339fd6ef948bfbc8">apreq_register_parser</a></div><div class="ttdeci">apr_status_t apreq_register_parser(const char *enctype, apreq_parser_function_t pfn)</div></div>
<div class="ttc" id="astructapreq__parser__t_html_ab73f196059129e0ca7926526ebba0a78"><div class="ttname"><a href="structapreq__parser__t.html#ab73f196059129e0ca7926526ebba0a78">apreq_parser_t::ctx</a></div><div class="ttdeci">void * ctx</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:109</div></div>
<div class="ttc" id="astructapreq__parser__t_html_adc117877c27713515c7617b560efb9a9"><div class="ttname"><a href="structapreq__parser__t.html#adc117877c27713515c7617b560efb9a9">apreq_parser_t::parser</a></div><div class="ttdeci">apreq_parser_function_t parser</div><div class="ttdef"><b>Definition:</b> apreq_parser.h:95</div></div>
<div class="ttc" id="aapreq__parser_8h_html_ab9e03fd28359c5a82771a25d806c2165"><div class="ttname"><a href="apreq__parser_8h.html#ab9e03fd28359c5a82771a25d806c2165">apreq_hook_find_param_ctx_t</a></div><div class="ttdeci">struct apreq_hook_find_param_ctx_t apreq_hook_find_param_ctx_t</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.8.20 on Wed Mar 10 2021</span>
</p>
</div>
</body>
</html>