<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> > <a href="http://httpd.apache.org">HTTP Server Project</a> >
<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&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> <span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <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> <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> <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> <span class="comment">** (the "License"); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">**</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <span class="comment">**</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <span class="comment">** distributed under the License is distributed on an "AS IS" BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <span class="comment">** limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">*/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef APREQ_PARSERS_H</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define APREQ_PARSERS_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">/* These structs are defined below */</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="apreq__param_8h.html">apreq_param.h</a>"</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <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>  </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <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>  </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <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>  </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#af39d2adfdd09c2fe0c8c6a3c1ea1437e"> 47</a></span> <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> <span class="preprocessor"> apr_table_t *t, \</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> apr_bucket_brigade *bb</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a61c8b1c319752bde3cc35e98247707bf"> 52</a></span> <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> <span class="preprocessor"> apreq_param_t *param, \</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"> apr_bucket_brigade *bb</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#affb8f3ab5b29a4e09f3aa3bde8630118"> 59</a></span> <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>  </div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a6ff78d9001f60363061d0608b52afbe0"> 64</a></span> <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>  </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a855c07ea7fc9e240c8620d29eea4a019"> 69</a></span> <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> <span class="preprocessor"> (f) (APREQ_PARSER_ARGS)</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#abaa196498d8cf959e07b4c84d5264f7f"> 75</a></span> <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> <span class="preprocessor"> (f) (APREQ_HOOK_ARGS)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structapreq__hook__t.html"> 83</a></span> <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>  <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>  <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>  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>  <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> };</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structapreq__parser__t.html"> 93</a></span> <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>  <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>  <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>  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>  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>  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>  <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>  <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>  <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> };</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <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> 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>  apr_bucket_brigade *bb)</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> psr-><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> }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <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> 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>  apr_bucket_brigade *bb)</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> h-><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> }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a6fd1ffe554941172fce54217c35f9db3"> 150</a></span> <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>  </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#aec4b20f646ea57ad84d6a3391c548838"> 155</a></span> <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>  </div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a3bb6d9580fcbaf11cef33072ed3b14cb"> 163</a></span> <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>  </div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a2833122bb6995f056a96df80a9f5a45f"> 173</a></span> <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>  </div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#adda61d873abf1c0ed1857bda405baa49"> 182</a></span> <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>  </div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a562191171c5df0a83360435d0fe1a667"> 197</a></span> <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>  apr_bucket_alloc_t *ba,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <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>  <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>  apr_size_t brigade_limit,</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <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>  <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>  <span class="keywordtype">void</span> *ctx);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a3cf15457eea6991b36f47f6139ab163c"> 215</a></span> <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>  <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>  <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>  <span class="keywordtype">void</span> *ctx);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a97972c08b20917465b745c8b8eec95ed"> 227</a></span> <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>  <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>  </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a73013ecad087f14075d319a4a983dd82"> 237</a></span> <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>  </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a595f05be3d241a5b339fd6ef948bfbc8"> 252</a></span> <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>  <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>  </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a162c74d59738663d7cb2109ee0b87c0a"> 261</a></span> <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>  </div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#ad169b0ac7b7b1a66d3df3ae66c96a16c"> 267</a></span> <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>  </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> <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>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <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>  <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> } <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>  </div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="apreq__parser_8h.html#a5deeed0646b3d61cafe4eb5b6e40b16c"> 293</a></span> <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>  </div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <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 © 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>