<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.6"/> <title>HTP: htp_multipart_private.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">HTP  <span id="projectnumber">0.5</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.6 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_5edaa2d740570af18be6e40ef0aff597.html">htp</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">htp_multipart_private.h</div> </div> </div><!--header--> <div class="contents"> <a href="htp__multipart__private_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/***************************************************************************</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2009-2010 Open Information Security Foundation</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (c) 2010-2013 Qualys, Inc.</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * All rights reserved.</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * modification, are permitted provided that the following conditions are</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * met:</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * - Redistributions of source code must retain the above copyright</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"></span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * - Redistributions in binary form must reproduce the above copyright</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * documentation and/or other materials provided with the distribution.</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> <span class="comment"> * - Neither the name of the Qualys, Inc. nor the names of its</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * contributors may be used to endorse or promote products derived from</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * this software without specific prior written permission.</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> *</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> ***************************************************************************/</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#ifndef _HTP_MULTIPART_PRIVATE_H</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="preprocessor">#define _HTP_MULTIPART_PRIVATE_H</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="htp__multipart_8h.html">htp_multipart.h</a>"</span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a5eb2e151a2a3cd8fa1319851dc6613ea"> 48</a></span> <span class="preprocessor">#define CD_PARAM_OTHER 0</span></div> <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a43e620adc61859e224de6812cdaf60e8"> 49</a></span> <span class="preprocessor"></span><span class="preprocessor">#define CD_PARAM_NAME 1</span></div> <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#adcabb7cddd456fd88b5be4d14a2fa0cb"> 50</a></span> <span class="preprocessor"></span><span class="preprocessor">#define CD_PARAM_FILENAME 2</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#ab211003862704ac434161fb7d31c9b96"> 52</a></span> <span class="preprocessor">#define DEFAULT_FILE_EXTRACT_LIMIT 16</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5a"> 54</a></span> <span class="keyword">enum</span> <a class="code" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5a">htp_part_mode_t</a> {</div> <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa9546d8ac24ff9e243d5c6dd2ac11b403"> 56</a></span>  <a class="code" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa9546d8ac24ff9e243d5c6dd2ac11b403">MODE_LINE</a> = 0,</div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div> <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa18ab79361b04c300e109656acf6107d3"> 59</a></span>  <a class="code" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa18ab79361b04c300e109656acf6107d3">MODE_DATA</a> = 1</div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3"> 62</a></span> <span class="keyword">enum</span> <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3">htp_multipart_state_t</a> {</div> <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98d2a2153b4ae0445fa0b114d65b94d9"> 64</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98d2a2153b4ae0445fa0b114d65b94d9">STATE_INIT</a> = 0,</div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a3d3ea9fb2db0c6039f1065b6ee452fe9"> 67</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a3d3ea9fb2db0c6039f1065b6ee452fe9">STATE_DATA</a> = 1,</div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3ac5008cea5142bcf2475a66623c5e19a3"> 70</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3ac5008cea5142bcf2475a66623c5e19a3">STATE_BOUNDARY</a> = 2,</div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div> <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3aea0a0bef8d0acba388a82c0a7decb1d0"> 73</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3aea0a0bef8d0acba388a82c0a7decb1d0">STATE_BOUNDARY_IS_LAST1</a> = 3,</div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> <div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a2832f27e37862f9e36d1a7c172ca0507"> 76</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a2832f27e37862f9e36d1a7c172ca0507">STATE_BOUNDARY_IS_LAST2</a> = 4,</div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98415264effca8764534d3da6b898b8f"> 79</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98415264effca8764534d3da6b898b8f">STATE_BOUNDARY_EAT_LWS</a> = 5,</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a78b651290438710447053885fa6dd80d"> 82</a></span>  <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a78b651290438710447053885fa6dd80d">STATE_BOUNDARY_EAT_LWS_CR</a> = 6</div> <div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div> <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html"> 85</a></span> <span class="keyword">struct </span><a class="code" href="structhtp__mpartp__t.html">htp_mpartp_t</a> {</div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a1280461a09929f729c0b5e031dc32cf1"> 86</a></span>  <a class="code" href="structhtp__multipart__t.html">htp_multipart_t</a> <a class="code" href="structhtp__mpartp__t.html#a1280461a09929f729c0b5e031dc32cf1">multipart</a>;</div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#aebcb74f1ef2edc68aea5ab75292a68cb"> 88</a></span>  <a class="code" href="structhtp__cfg__t.html">htp_cfg_t</a> *<a class="code" href="structhtp__mpartp__t.html#aebcb74f1ef2edc68aea5ab75292a68cb">cfg</a>;</div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#afc7e51f47a82bcb8ffa0781c40f5fa94"> 90</a></span>  <span class="keywordtype">int</span> <a class="code" href="structhtp__mpartp__t.html#afc7e51f47a82bcb8ffa0781c40f5fa94">extract_files</a>;</div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div> <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#ad46b0f9389e164b88cf5940311b8607a"> 92</a></span>  <span class="keywordtype">int</span> <a class="code" href="structhtp__mpartp__t.html#ad46b0f9389e164b88cf5940311b8607a">extract_limit</a>;</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div> <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a4d654d176e4016b2a51d80901880f594"> 94</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structhtp__mpartp__t.html#a4d654d176e4016b2a51d80901880f594">extract_dir</a>;</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div> <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a5addc201a361b8bd928795c62e4f7019"> 96</a></span>  <span class="keywordtype">int</span> <a class="code" href="structhtp__mpartp__t.html#a5addc201a361b8bd928795c62e4f7019">file_count</a>;</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// Parsing callbacks</span></div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div> <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a9c7f201a205000e663d83f6142ccc485"> 100</a></span>  int (*<a class="code" href="structhtp__mpartp__t.html#a9c7f201a205000e663d83f6142ccc485">handle_data</a>)(<a class="code" href="structhtp__mpartp__t.html">htp_mpartp_t</a> *mpartp, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data,</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> line_end);</div> <div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a077a9e8584cdebecf0d6d7bbbe8c90d3"> 102</a></span>  int (*<a class="code" href="structhtp__mpartp__t.html#a077a9e8584cdebecf0d6d7bbbe8c90d3">handle_boundary</a>)(<a class="code" href="structhtp__mpartp__t.html">htp_mpartp_t</a> *mpartp);</div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// Internal parsing fields; move into a private structure</span></div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a748d47d47fc5efa6dbd0c5531ee4dada"> 109</a></span>  <span class="keyword">enum</span> <a class="code" href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3">htp_multipart_state_t</a> <a class="code" href="structhtp__mpartp__t.html#a748d47d47fc5efa6dbd0c5531ee4dada">parser_state</a>;</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a0b0fc08efc45aa608b0fad63763f525a"> 115</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structhtp__mpartp__t.html#a0b0fc08efc45aa608b0fad63763f525a">boundary_match_pos</a>;</div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div> <div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a6c565934083e7c12d1034b540192ede1"> 120</a></span>  <a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *<a class="code" href="structhtp__mpartp__t.html#a6c565934083e7c12d1034b540192ede1">current_part</a>;</div> <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> <div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#aef5013ee0d5b012aa95ed62453d1dcc0"> 135</a></span>  <span class="keyword">enum</span> <a class="code" href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5a">htp_part_mode_t</a> <a class="code" href="structhtp__mpartp__t.html#aef5013ee0d5b012aa95ed62453d1dcc0">current_part_mode</a>;</div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div> <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#aad3c4f1ece7479554b7fa55c840ba823"> 143</a></span>  <a class="code" href="structbstr__builder__t.html">bstr_builder_t</a> *<a class="code" href="structhtp__mpartp__t.html#aad3c4f1ece7479554b7fa55c840ba823">boundary_pieces</a>;</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div> <div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a4e6a7a45f36871ec9b44b9dc09dfa36b"> 145</a></span>  <a class="code" href="structbstr__builder__t.html">bstr_builder_t</a> *<a class="code" href="structhtp__mpartp__t.html#a4e6a7a45f36871ec9b44b9dc09dfa36b">part_header_pieces</a>;</div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div> <div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a7b83618f368ff1e190a847d1296a6ecc"> 147</a></span>  <a class="code" href="structbstr__t.html">bstr</a> *<a class="code" href="structhtp__mpartp__t.html#a7b83618f368ff1e190a847d1296a6ecc">pending_header_line</a>;</div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a4984a55fc49dd68483e674e72b6c9ece"> 154</a></span>  <a class="code" href="structbstr__builder__t.html">bstr_builder_t</a> *<a class="code" href="structhtp__mpartp__t.html#a4984a55fc49dd68483e674e72b6c9ece">part_data_pieces</a>;</div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div> <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a14a4a9222e8511a872380dfa75dd4a46"> 160</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structhtp__mpartp__t.html#a14a4a9222e8511a872380dfa75dd4a46">boundary_candidate_pos</a>;</div> <div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div> <div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a56da3e0c079a4a75a94251f716a9c6ee"> 171</a></span>  <span class="keywordtype">int</span> <a class="code" href="structhtp__mpartp__t.html#a56da3e0c079a4a75a94251f716a9c6ee">cr_aside</a>;</div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div> <div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structhtp__mpartp__t.html#a06bb613acf5b4b3dbaa0ae5c15a15336"> 178</a></span>  <span class="keywordtype">int</span> <a class="code" href="structhtp__mpartp__t.html#a06bb613acf5b4b3dbaa0ae5c15a15336">gave_up_data</a>;</div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> };</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div> <div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#a72b162a6bdf6226c5181a15ddf28ee41">htp_mpartp_run_request_file_data_hook</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#a6acf2acff1d8828fba0df30a9397108c">htp_mpart_part_process_headers</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part);</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div> <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#ade5c03a799c0f5af2319900fe78a98e0">htp_mpartp_parse_header</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">size_t</span> len);</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#a368c461de4ad8f9d864f5c29968e6f4a">htp_mpart_part_handle_data</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> is_line);</div> <div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">int</span> <a class="code" href="htp__multipart__private_8h.html#a7a8f439ef7958a0ec99e172c008ea4bb">htp_mpartp_is_boundary_character</a>(<span class="keywordtype">int</span> c);</div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div> <div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *<a class="code" href="htp__multipart__private_8h.html#a852a6833ffbaf5dfd8577aaba8cdcef6">htp_mpart_part_create</a>(<a class="code" href="structhtp__mpartp__t.html">htp_mpartp_t</a> *parser);</div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#adf2e99c5087b2ec07b11bf4df9e2073f">htp_mpart_part_finalize_data</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part);</div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">void</span> <a class="code" href="htp__multipart__private_8h.html#afc3a6b77b984cb093dbcd6370c42b887">htp_mpart_part_destroy</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part, <span class="keywordtype">int</span> gave_up_data);</div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <a class="code" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> <a class="code" href="htp__multipart__private_8h.html#ac51272765ee1a5c1b70980a0b96d4ece">htp_mpart_part_parse_c_d</a>(<a class="code" href="structhtp__multipart__part__t.html">htp_multipart_part_t</a> *part);</div> <div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#endif </span><span class="comment">/* _HTP_MULTIPART_PRIVATE_H */</span><span class="preprocessor"></span></div> <div class="ttc" id="structhtp__cfg__t_html"><div class="ttname"><a href="structhtp__cfg__t.html">htp_cfg_t</a></div><div class="ttdef"><b>Definition:</b> htp_config_private.h:122</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a748d47d47fc5efa6dbd0c5531ee4dada"><div class="ttname"><a href="structhtp__mpartp__t.html#a748d47d47fc5efa6dbd0c5531ee4dada">htp_mpartp_t::parser_state</a></div><div class="ttdeci">enum htp_multipart_state_t parser_state</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:109</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a6c565934083e7c12d1034b540192ede1"><div class="ttname"><a href="structhtp__mpartp__t.html#a6c565934083e7c12d1034b540192ede1">htp_mpartp_t::current_part</a></div><div class="ttdeci">htp_multipart_part_t * current_part</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:120</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a852a6833ffbaf5dfd8577aaba8cdcef6"><div class="ttname"><a href="htp__multipart__private_8h.html#a852a6833ffbaf5dfd8577aaba8cdcef6">htp_mpart_part_create</a></div><div class="ttdeci">htp_multipart_part_t * htp_mpart_part_create(htp_mpartp_t *parser)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:437</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3a98415264effca8764534d3da6b898b8f"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98415264effca8764534d3da6b898b8f">STATE_BOUNDARY_EAT_LWS</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:79</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a1280461a09929f729c0b5e031dc32cf1"><div class="ttname"><a href="structhtp__mpartp__t.html#a1280461a09929f729c0b5e031dc32cf1">htp_mpartp_t::multipart</a></div><div class="ttdeci">htp_multipart_t multipart</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:86</div></div> <div class="ttc" id="htp__multipart__private_8h_html_ab028c14c6696b021fa4d0897ab1d0c5aa9546d8ac24ff9e243d5c6dd2ac11b403"><div class="ttname"><a href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa9546d8ac24ff9e243d5c6dd2ac11b403">MODE_LINE</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:56</div></div> <div class="ttc" id="htp__multipart__private_8h_html_afc3a6b77b984cb093dbcd6370c42b887"><div class="ttname"><a href="htp__multipart__private_8h.html#afc3a6b77b984cb093dbcd6370c42b887">htp_mpart_part_destroy</a></div><div class="ttdeci">void htp_mpart_part_destroy(htp_multipart_part_t *part, int gave_up_data)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:460</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3ac5008cea5142bcf2475a66623c5e19a3"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3ac5008cea5142bcf2475a66623c5e19a3">STATE_BOUNDARY</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:70</div></div> <div class="ttc" id="htp__multipart__private_8h_html_adf2e99c5087b2ec07b11bf4df9e2073f"><div class="ttname"><a href="htp__multipart__private_8h.html#adf2e99c5087b2ec07b11bf4df9e2073f">htp_mpart_part_finalize_data</a></div><div class="ttdeci">htp_status_t htp_mpart_part_finalize_data(htp_multipart_part_t *part)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:503</div></div> <div class="ttc" id="structhtp__multipart__part__t_html"><div class="ttname"><a href="structhtp__multipart__part__t.html">htp_multipart_part_t</a></div><div class="ttdef"><b>Definition:</b> htp_multipart.h:248</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3">htp_multipart_state_t</a></div><div class="ttdeci">htp_multipart_state_t</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:62</div></div> <div class="ttc" id="structhtp__multipart__t_html"><div class="ttname"><a href="structhtp__multipart__t.html">htp_multipart_t</a></div><div class="ttdef"><b>Definition:</b> htp_multipart.h:228</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a4984a55fc49dd68483e674e72b6c9ece"><div class="ttname"><a href="structhtp__mpartp__t.html#a4984a55fc49dd68483e674e72b6c9ece">htp_mpartp_t::part_data_pieces</a></div><div class="ttdeci">bstr_builder_t * part_data_pieces</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:154</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3a2832f27e37862f9e36d1a7c172ca0507"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a2832f27e37862f9e36d1a7c172ca0507">STATE_BOUNDARY_IS_LAST2</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:76</div></div> <div class="ttc" id="htp__multipart__private_8h_html_ab028c14c6696b021fa4d0897ab1d0c5aa18ab79361b04c300e109656acf6107d3"><div class="ttname"><a href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5aa18ab79361b04c300e109656acf6107d3">MODE_DATA</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:59</div></div> <div class="ttc" id="structbstr__t_html"><div class="ttname"><a href="structbstr__t.html">bstr_t</a></div><div class="ttdef"><b>Definition:</b> bstr.h:57</div></div> <div class="ttc" id="htp__multipart__private_8h_html_ac51272765ee1a5c1b70980a0b96d4ece"><div class="ttname"><a href="htp__multipart__private_8h.html#ac51272765ee1a5c1b70980a0b96d4ece">htp_mpart_part_parse_c_d</a></div><div class="ttdeci">htp_status_t htp_mpart_part_parse_c_d(htp_multipart_part_t *part)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:99</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3a3d3ea9fb2db0c6039f1065b6ee452fe9"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a3d3ea9fb2db0c6039f1065b6ee452fe9">STATE_DATA</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:67</div></div> <div class="ttc" id="structhtp__mpartp__t_html_aebcb74f1ef2edc68aea5ab75292a68cb"><div class="ttname"><a href="structhtp__mpartp__t.html#aebcb74f1ef2edc68aea5ab75292a68cb">htp_mpartp_t::cfg</a></div><div class="ttdeci">htp_cfg_t * cfg</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:88</div></div> <div class="ttc" id="htp__core_8h_html_ab8a71422665c0773654b9b4d96f01e31"><div class="ttname"><a href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a></div><div class="ttdeci">int htp_status_t</div><div class="ttdef"><b>Definition:</b> htp_core.h:46</div></div> <div class="ttc" id="htp__multipart__private_8h_html_ab028c14c6696b021fa4d0897ab1d0c5a"><div class="ttname"><a href="htp__multipart__private_8h.html#ab028c14c6696b021fa4d0897ab1d0c5a">htp_part_mode_t</a></div><div class="ttdeci">htp_part_mode_t</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:54</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a7b83618f368ff1e190a847d1296a6ecc"><div class="ttname"><a href="structhtp__mpartp__t.html#a7b83618f368ff1e190a847d1296a6ecc">htp_mpartp_t::pending_header_line</a></div><div class="ttdeci">bstr * pending_header_line</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:147</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a0b0fc08efc45aa608b0fad63763f525a"><div class="ttname"><a href="structhtp__mpartp__t.html#a0b0fc08efc45aa608b0fad63763f525a">htp_mpartp_t::boundary_match_pos</a></div><div class="ttdeci">size_t boundary_match_pos</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:115</div></div> <div class="ttc" id="structhtp__mpartp__t_html_afc7e51f47a82bcb8ffa0781c40f5fa94"><div class="ttname"><a href="structhtp__mpartp__t.html#afc7e51f47a82bcb8ffa0781c40f5fa94">htp_mpartp_t::extract_files</a></div><div class="ttdeci">int extract_files</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:90</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a7a8f439ef7958a0ec99e172c008ea4bb"><div class="ttname"><a href="htp__multipart__private_8h.html#a7a8f439ef7958a0ec99e172c008ea4bb">htp_mpartp_is_boundary_character</a></div><div class="ttdeci">int htp_mpartp_is_boundary_character(int c)</div></div> <div class="ttc" id="structbstr__builder__t_html"><div class="ttname"><a href="structbstr__builder__t.html">bstr_builder_t</a></div><div class="ttdef"><b>Definition:</b> bstr_builder.h:50</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6acf2acff1d8828fba0df30a9397108c"><div class="ttname"><a href="htp__multipart__private_8h.html#a6acf2acff1d8828fba0df30a9397108c">htp_mpart_part_process_headers</a></div><div class="ttdeci">htp_status_t htp_mpart_part_process_headers(htp_multipart_part_t *part)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:295</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a06bb613acf5b4b3dbaa0ae5c15a15336"><div class="ttname"><a href="structhtp__mpartp__t.html#a06bb613acf5b4b3dbaa0ae5c15a15336">htp_mpartp_t::gave_up_data</a></div><div class="ttdeci">int gave_up_data</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:178</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a4e6a7a45f36871ec9b44b9dc09dfa36b"><div class="ttname"><a href="structhtp__mpartp__t.html#a4e6a7a45f36871ec9b44b9dc09dfa36b">htp_mpartp_t::part_header_pieces</a></div><div class="ttdeci">bstr_builder_t * part_header_pieces</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:145</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3a78b651290438710447053885fa6dd80d"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a78b651290438710447053885fa6dd80d">STATE_BOUNDARY_EAT_LWS_CR</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:82</div></div> <div class="ttc" id="structhtp__mpartp__t_html_aef5013ee0d5b012aa95ed62453d1dcc0"><div class="ttname"><a href="structhtp__mpartp__t.html#aef5013ee0d5b012aa95ed62453d1dcc0">htp_mpartp_t::current_part_mode</a></div><div class="ttdeci">enum htp_part_mode_t current_part_mode</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:135</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a077a9e8584cdebecf0d6d7bbbe8c90d3"><div class="ttname"><a href="structhtp__mpartp__t.html#a077a9e8584cdebecf0d6d7bbbe8c90d3">htp_mpartp_t::handle_boundary</a></div><div class="ttdeci">int(* handle_boundary)(htp_mpartp_t *mpartp)</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:102</div></div> <div class="ttc" id="structhtp__mpartp__t_html_ad46b0f9389e164b88cf5940311b8607a"><div class="ttname"><a href="structhtp__mpartp__t.html#ad46b0f9389e164b88cf5940311b8607a">htp_mpartp_t::extract_limit</a></div><div class="ttdeci">int extract_limit</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:92</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a5addc201a361b8bd928795c62e4f7019"><div class="ttname"><a href="structhtp__mpartp__t.html#a5addc201a361b8bd928795c62e4f7019">htp_mpartp_t::file_count</a></div><div class="ttdeci">int file_count</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:96</div></div> <div class="ttc" id="htp__multipart__private_8h_html_ade5c03a799c0f5af2319900fe78a98e0"><div class="ttname"><a href="htp__multipart__private_8h.html#ade5c03a799c0f5af2319900fe78a98e0">htp_mpartp_parse_header</a></div><div class="ttdeci">htp_status_t htp_mpartp_parse_header(htp_multipart_part_t *part, const unsigned char *data, size_t len)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:310</div></div> <div class="ttc" id="htp__multipart_8h_html"><div class="ttname"><a href="htp__multipart_8h.html">htp_multipart.h</a></div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3aea0a0bef8d0acba388a82c0a7decb1d0"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3aea0a0bef8d0acba388a82c0a7decb1d0">STATE_BOUNDARY_IS_LAST1</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:73</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a56da3e0c079a4a75a94251f716a9c6ee"><div class="ttname"><a href="structhtp__mpartp__t.html#a56da3e0c079a4a75a94251f716a9c6ee">htp_mpartp_t::cr_aside</a></div><div class="ttdeci">int cr_aside</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:171</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a368c461de4ad8f9d864f5c29968e6f4a"><div class="ttname"><a href="htp__multipart__private_8h.html#a368c461de4ad8f9d864f5c29968e6f4a">htp_mpart_part_handle_data</a></div><div class="ttdeci">htp_status_t htp_mpart_part_handle_data(htp_multipart_part_t *part, const unsigned char *data, size_t len, int is_line)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:585</div></div> <div class="ttc" id="structhtp__mpartp__t_html"><div class="ttname"><a href="structhtp__mpartp__t.html">htp_mpartp_t</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:85</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a6cd627720a18a525cbc0da80bbb457e3a98d2a2153b4ae0445fa0b114d65b94d9"><div class="ttname"><a href="htp__multipart__private_8h.html#a6cd627720a18a525cbc0da80bbb457e3a98d2a2153b4ae0445fa0b114d65b94d9">STATE_INIT</a></div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:64</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a4d654d176e4016b2a51d80901880f594"><div class="ttname"><a href="structhtp__mpartp__t.html#a4d654d176e4016b2a51d80901880f594">htp_mpartp_t::extract_dir</a></div><div class="ttdeci">char * extract_dir</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:94</div></div> <div class="ttc" id="htp__multipart__private_8h_html_a72b162a6bdf6226c5181a15ddf28ee41"><div class="ttname"><a href="htp__multipart__private_8h.html#a72b162a6bdf6226c5181a15ddf28ee41">htp_mpartp_run_request_file_data_hook</a></div><div class="ttdeci">htp_status_t htp_mpartp_run_request_file_data_hook(htp_multipart_part_t *part, const unsigned char *data, size_t len)</div><div class="ttdef"><b>Definition:</b> htp_multipart.c:557</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a14a4a9222e8511a872380dfa75dd4a46"><div class="ttname"><a href="structhtp__mpartp__t.html#a14a4a9222e8511a872380dfa75dd4a46">htp_mpartp_t::boundary_candidate_pos</a></div><div class="ttdeci">size_t boundary_candidate_pos</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:160</div></div> <div class="ttc" id="structhtp__mpartp__t_html_a9c7f201a205000e663d83f6142ccc485"><div class="ttname"><a href="structhtp__mpartp__t.html#a9c7f201a205000e663d83f6142ccc485">htp_mpartp_t::handle_data</a></div><div class="ttdeci">int(* handle_data)(htp_mpartp_t *mpartp, const unsigned char *data, size_t len, int line_end)</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:100</div></div> <div class="ttc" id="structhtp__mpartp__t_html_aad3c4f1ece7479554b7fa55c840ba823"><div class="ttname"><a href="structhtp__mpartp__t.html#aad3c4f1ece7479554b7fa55c840ba823">htp_mpartp_t::boundary_pieces</a></div><div class="ttdeci">bstr_builder_t * boundary_pieces</div><div class="ttdef"><b>Definition:</b> htp_multipart_private.h:143</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.6 </small></address> </body> </html>