Sophie

Sophie

distrib > Fedora > 20 > x86_64 > media > updates > by-pkgid > c579c38484b8ffa244858626df1128ca > files > 150

libhtp-doc-0.5.6-3.fc20.noarch.rpm

<!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_transaction.c File Reference</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
   &#160;<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&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;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&#160;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="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">htp_transaction.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="htp__private_8h_source.html">htp_private.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a38191123e58ad54c815b5291b38ae1ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a38191123e58ad54c815b5291b38ae1ae">htp_tx_create</a> (<a class="el" href="structhtp__connp__t.html">htp_connp_t</a> *connp)</td></tr>
<tr class="separator:a38191123e58ad54c815b5291b38ae1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92daf5a21d1005ed658239203bab72e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a92daf5a21d1005ed658239203bab72e2">htp_tx_destroy</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a92daf5a21d1005ed658239203bab72e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d9bedcb7fd819340ebd8e8271263191"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a0d9bedcb7fd819340ebd8e8271263191">htp_tx_destroy_incomplete</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a0d9bedcb7fd819340ebd8e8271263191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a9319494924adc6f0de2aae4327964a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a3a9319494924adc6f0de2aae4327964a">htp_tx_get_is_config_shared</a> (const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a3a9319494924adc6f0de2aae4327964a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1b7af692ec61ee5863c8d08201335df"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#ad1b7af692ec61ee5863c8d08201335df">htp_tx_get_user_data</a> (const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:ad1b7af692ec61ee5863c8d08201335df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c4b795d1d8be70fcc32e9396f53ebfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a1c4b795d1d8be70fcc32e9396f53ebfb">htp_tx_set_config</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, <a class="el" href="structhtp__cfg__t.html">htp_cfg_t</a> *cfg, int is_cfg_shared)</td></tr>
<tr class="separator:a1c4b795d1d8be70fcc32e9396f53ebfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195fca8b26ed5199e79bf7a3205cc8f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a195fca8b26ed5199e79bf7a3205cc8f8">htp_tx_set_user_data</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, void *user_data)</td></tr>
<tr class="separator:a195fca8b26ed5199e79bf7a3205cc8f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a237e4a69bc6a206016edef0509725fa0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a237e4a69bc6a206016edef0509725fa0">htp_tx_req_add_param</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, <a class="el" href="structhtp__param__t.html">htp_param_t</a> *param)</td></tr>
<tr class="separator:a237e4a69bc6a206016edef0509725fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9d43cb95e78fe6d89a155cab0e475b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structhtp__param__t.html">htp_param_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#af9d43cb95e78fe6d89a155cab0e475b5">htp_tx_req_get_param</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *name, size_t name_len)</td></tr>
<tr class="separator:af9d43cb95e78fe6d89a155cab0e475b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597e4bb72a38690844b09b44b6edfd77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structhtp__param__t.html">htp_param_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a597e4bb72a38690844b09b44b6edfd77">htp_tx_req_get_param_ex</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, enum <a class="el" href="htp__core_8h.html#a354ef08e972eb03660bbd9a1d311b45f">htp_data_source_t</a> source, const char *name, size_t name_len)</td></tr>
<tr class="separator:a597e4bb72a38690844b09b44b6edfd77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c878209afdd56456f83c825e55f0542"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a5c878209afdd56456f83c825e55f0542">htp_tx_req_has_body</a> (const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a5c878209afdd56456f83c825e55f0542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d149fa7ccee09db44e098637c2ac4a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a1d149fa7ccee09db44e098637c2ac4a4">htp_tx_req_set_header</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *name, size_t name_len, const char *value, size_t value_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a1d149fa7ccee09db44e098637c2ac4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3dcb3b6990542fa3e50490abdc08fda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#aa3dcb3b6990542fa3e50490abdc08fda">htp_tx_req_set_method</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *method, size_t method_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:aa3dcb3b6990542fa3e50490abdc08fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015fe9ed1cb0afe28e021c27e5c5bb80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a015fe9ed1cb0afe28e021c27e5c5bb80">htp_tx_req_set_method_number</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, enum <a class="el" href="htp__core_8h.html#a5def731ca738b5e96154df2889210a54">htp_method_t</a> method_number)</td></tr>
<tr class="separator:a015fe9ed1cb0afe28e021c27e5c5bb80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a523a135d64880fbb5731d02ce910bc01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a523a135d64880fbb5731d02ce910bc01">htp_tx_req_set_uri</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *uri, size_t uri_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a523a135d64880fbb5731d02ce910bc01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d51b78134b9712df2152bf14b812978"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a2d51b78134b9712df2152bf14b812978">htp_tx_req_set_protocol</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *protocol, size_t protocol_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a2d51b78134b9712df2152bf14b812978"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65467c49a7fd48a7083cb7fb2e66d738"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a65467c49a7fd48a7083cb7fb2e66d738">htp_tx_req_set_protocol_number</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int protocol_number)</td></tr>
<tr class="separator:a65467c49a7fd48a7083cb7fb2e66d738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3d8c86e14b6a1c8b8cb0026855ba30f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#af3d8c86e14b6a1c8b8cb0026855ba30f">htp_tx_req_set_protocol_0_9</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int is_protocol_0_9)</td></tr>
<tr class="separator:af3d8c86e14b6a1c8b8cb0026855ba30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4546c71d6e119b0507b4b39068b1c0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#ac4546c71d6e119b0507b4b39068b1c0f">htp_tx_req_process_body_data</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const void *data, size_t len)</td></tr>
<tr class="separator:ac4546c71d6e119b0507b4b39068b1c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13e830ded4af725cc7160b1406023d89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a13e830ded4af725cc7160b1406023d89">htp_tx_req_process_body_data_ex</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const void *data, size_t len)</td></tr>
<tr class="separator:a13e830ded4af725cc7160b1406023d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a826efc3ea0032df55461c1067fefda2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a826efc3ea0032df55461c1067fefda2f">htp_tx_req_set_headers_clear</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a826efc3ea0032df55461c1067fefda2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9a5f4df3aa359aed3d8b713689ef8b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#ad9a5f4df3aa359aed3d8b713689ef8b7">htp_tx_req_set_line</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *line, size_t line_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:ad9a5f4df3aa359aed3d8b713689ef8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32fd27cdae4ba9e210d86b267b3d9f21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a32fd27cdae4ba9e210d86b267b3d9f21">htp_tx_req_set_parsed_uri</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, <a class="el" href="structhtp__uri__t.html">htp_uri_t</a> *parsed_uri)</td></tr>
<tr class="separator:a32fd27cdae4ba9e210d86b267b3d9f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94f6b84283ab7904622010e23c9adf9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a94f6b84283ab7904622010e23c9adf9d">htp_tx_res_set_status_line</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *line, size_t line_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a94f6b84283ab7904622010e23c9adf9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138bfe0a159727cb8a15dd23c38567ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a138bfe0a159727cb8a15dd23c38567ad">htp_tx_res_set_protocol_number</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int protocol_number)</td></tr>
<tr class="separator:a138bfe0a159727cb8a15dd23c38567ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab329bdb2bff8170ff8d394659717f0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#aab329bdb2bff8170ff8d394659717f0c">htp_tx_res_set_status_code</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int status_code)</td></tr>
<tr class="separator:aab329bdb2bff8170ff8d394659717f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5448d3691eb45ad6f12a3fffbc373d92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a5448d3691eb45ad6f12a3fffbc373d92">htp_tx_res_set_status_message</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *msg, size_t msg_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a5448d3691eb45ad6f12a3fffbc373d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af51ff64d772742097a2f4a1a76e0557f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#af51ff64d772742097a2f4a1a76e0557f">htp_tx_state_response_line</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:af51ff64d772742097a2f4a1a76e0557f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0de20cdbee28e01c68f5d79ac35f1c73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a0de20cdbee28e01c68f5d79ac35f1c73">htp_tx_res_set_header</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const char *name, size_t name_len, const char *value, size_t value_len, enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a> alloc)</td></tr>
<tr class="separator:a0de20cdbee28e01c68f5d79ac35f1c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4654dd75275b161e32c69b39f6365f49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a4654dd75275b161e32c69b39f6365f49">htp_tx_res_set_headers_clear</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a4654dd75275b161e32c69b39f6365f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a694697230584f925ff39a69d022a9edf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a694697230584f925ff39a69d022a9edf">htp_tx_res_process_body_data</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const void *data, size_t len)</td></tr>
<tr class="separator:a694697230584f925ff39a69d022a9edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a219a0b24ed95d84a3fb9ad7c07cac511"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a219a0b24ed95d84a3fb9ad7c07cac511">htp_tx_res_process_body_data_ex</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, const void *data, size_t len)</td></tr>
<tr class="separator:a219a0b24ed95d84a3fb9ad7c07cac511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a094a6a35a7a937d160a2785e2e6e3269"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a094a6a35a7a937d160a2785e2e6e3269">htp_tx_state_request_complete_partial</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a094a6a35a7a937d160a2785e2e6e3269"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b642aabfa0688477a73138803e8a96c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a6b642aabfa0688477a73138803e8a96c">htp_tx_state_request_complete</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a6b642aabfa0688477a73138803e8a96c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe2a066b2bd7887debe3146218a1586c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#afe2a066b2bd7887debe3146218a1586c">htp_tx_state_request_start</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:afe2a066b2bd7887debe3146218a1586c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed95ccccf477ee8adeb83291a2104156"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#aed95ccccf477ee8adeb83291a2104156">htp_tx_state_request_headers</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:aed95ccccf477ee8adeb83291a2104156"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf7174643f67cdb075d45333b6fd7b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#aaaf7174643f67cdb075d45333b6fd7b5">htp_tx_state_request_line</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:aaaf7174643f67cdb075d45333b6fd7b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcbbf6a88718344b9cbe0c5f508a07ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#adcbbf6a88718344b9cbe0c5f508a07ce">htp_tx_state_response_complete</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:adcbbf6a88718344b9cbe0c5f508a07ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9256c1eaab954ec27241d1ad51067b55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a9256c1eaab954ec27241d1ad51067b55">htp_tx_finalize</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a9256c1eaab954ec27241d1ad51067b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76675e7e250e24c1ac47c49b4181aff8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a76675e7e250e24c1ac47c49b4181aff8">htp_tx_state_response_complete_ex</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int hybrid_mode)</td></tr>
<tr class="separator:a76675e7e250e24c1ac47c49b4181aff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55a3a62e1c697127c4b206e75f983386"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a55a3a62e1c697127c4b206e75f983386">htp_tx_state_response_headers</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a55a3a62e1c697127c4b206e75f983386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a524d59cd184104370ade58fb200f2379"><td class="memItemLeft" align="right" valign="top"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a524d59cd184104370ade58fb200f2379">htp_tx_state_response_start</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a524d59cd184104370ade58fb200f2379"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c9f2e85d998104afb653ec4515ffc0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a0c9f2e85d998104afb653ec4515ffc0f">htp_tx_register_request_body_data</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int(*callback_fn)(<a class="el" href="structhtp__tx__data__t.html">htp_tx_data_t</a> *))</td></tr>
<tr class="separator:a0c9f2e85d998104afb653ec4515ffc0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f072f41c942d9b78a2a551a24227be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a82f072f41c942d9b78a2a551a24227be">htp_tx_register_response_body_data</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx, int(*callback_fn)(<a class="el" href="structhtp__tx__data__t.html">htp_tx_data_t</a> *))</td></tr>
<tr class="separator:a82f072f41c942d9b78a2a551a24227be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88c6e5a1d12435394c5bad42cf6fbe5b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="htp__transaction_8c.html#a88c6e5a1d12435394c5bad42cf6fbe5b">htp_tx_is_complete</a> (<a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *tx)</td></tr>
<tr class="separator:a88c6e5a1d12435394c5bad42cf6fbe5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Ivan Ristic <a href="#" onclick="location.href='mai'+'lto:'+'iva'+'nr'+'@we'+'bk'+'rea'+'to'+'r.c'+'om'; return false;">ivanr<span style="display: none;">.nosp@m.</span>@web<span style="display: none;">.nosp@m.</span>kreat<span style="display: none;">.nosp@m.</span>or.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a38191123e58ad54c815b5291b38ae1ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a>* htp_tx_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__connp__t.html">htp_connp_t</a> *&#160;</td>
          <td class="paramname"><em>connp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates a new transaction structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">connp</td><td>Connection parser pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The newly created transaction, or NULL on memory allocation failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a92daf5a21d1005ed658239203bab72e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroys the supplied transaction.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0d9bedcb7fd819340ebd8e8271263191"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_destroy_incomplete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9256c1eaab954ec27241d1ad51067b55"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_finalize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3a9319494924adc6f0de2aae4327964a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int htp_tx_get_is_config_shared </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines if the transaction used a shared configuration structure. See the documentation for <a class="el" href="htp__transaction_8h.html#a1c4b795d1d8be70fcc32e9396f53ebfb">htp_tx_set_config()</a> for more information why you might want to know that.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_CFG_SHARED or HTP_CFG_PRIVATE. </dd></dl>

</div>
</div>
<a class="anchor" id="ad1b7af692ec61ee5863c8d08201335df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* htp_tx_get_user_data </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the user data associated with this transaction.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to user data or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a88c6e5a1d12435394c5bad42cf6fbe5b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int htp_tx_is_complete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a0c9f2e85d998104afb653ec4515ffc0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_register_request_body_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structhtp__tx__data__t.html">htp_tx_data_t</a> *)&#160;</td>
          <td class="paramname"><em>callback_fn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register callback for the transaction-specific REQUEST_BODY_DATA hook.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback_fn</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a82f072f41c942d9b78a2a551a24227be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_register_response_body_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(<a class="el" href="structhtp__tx__data__t.html">htp_tx_data_t</a> *)&#160;</td>
          <td class="paramname"><em>callback_fn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register callback for the transaction-specific RESPONSE_BODY_DATA hook.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td></td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback_fn</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a237e4a69bc6a206016edef0509725fa0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_add_param </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structhtp__param__t.html">htp_param_t</a> *&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adds one parameter to the request. THis function will take over the responsibility for the provided <a class="el" href="structhtp__param__t.html">htp_param_t</a> structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Parameter pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af9d43cb95e78fe6d89a155cab0e475b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structhtp__param__t.html">htp_param_t</a>* htp_tx_req_get_param </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>name_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the first request parameter that matches the given name, using case-insensitive matching.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name_len</td><td>Name data length. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structhtp__param__t.html">htp_param_t</a> instance, or NULL if parameter not found. </dd></dl>

</div>
</div>
<a class="anchor" id="a597e4bb72a38690844b09b44b6edfd77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structhtp__param__t.html">htp_param_t</a>* htp_tx_req_get_param_ex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__core_8h.html#a354ef08e972eb03660bbd9a1d311b45f">htp_data_source_t</a>&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>name_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the first request parameter from the given source that matches the given name, using case-insensitive matching.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>Parameter source (where in request the parameter was located). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name_len</td><td>Name data length. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structhtp__param__t.html">htp_param_t</a> instance, or NULL if parameter not found. </dd></dl>

</div>
</div>
<a class="anchor" id="a5c878209afdd56456f83c825e55f0542"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int htp_tx_req_has_body </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determine if the request has a body.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if there is a body, 0 otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="ac4546c71d6e119b0507b4b39068b1c0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_process_body_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Process a chunk of request body data. This function assumes that handling of chunked encoding is implemented by the container. When you're done submitting body data, invoke a state change (to REQUEST) to finalize any processing that might be pending. The supplied data is fully consumed and there is no expectation that it will be available afterwards. The protocol parsing code makes no copies of the data, but some parsers might.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Data length. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a13e830ded4af725cc7160b1406023d89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_process_body_data_ex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1d149fa7ccee09db44e098637c2ac4a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_header </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>name_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>value_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set one request header. This function should be invoked once for each available header, and in the order in which headers were seen in the request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name_len</td><td>Name data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value_len</td><td>Value data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a826efc3ea0032df55461c1067fefda2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_headers_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Removes all request headers associated with this transaction. This function is needed because in some cases the container does not differentiate between standard and trailing headers. In that case, you set request headers once at the beginning of the transaction, read the body (at this point the request headers should contain the mix of regular and trailing headers), clear all headers, and then set them all again.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="ad9a5f4df3aa359aed3d8b713689ef8b7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_line </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>line_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set request line. When used, this function should always be called first, with more specific functions following. Must not contain line terminators.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">line_len</td><td>Line data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aa3dcb3b6990542fa3e50490abdc08fda"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_method </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>method</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>method_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set transaction request method. This function will enable you to keep track of the text representation of the method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">method</td><td>Method data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">method_len</td><td>Method data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a015fe9ed1cb0afe28e021c27e5c5bb80"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_req_set_method_number </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__core_8h.html#a5def731ca738b5e96154df2889210a54">htp_method_t</a>&#160;</td>
          <td class="paramname"><em>method_number</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set transaction request method number. This function enables you to keep track how a particular method string is interpreted. This function is useful with web servers that ignore invalid methods; for example, some web servers will treat them as a GET.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">method_number</td><td>Method number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a32fd27cdae4ba9e210d86b267b3d9f21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_req_set_parsed_uri </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structhtp__uri__t.html">htp_uri_t</a> *&#160;</td>
          <td class="paramname"><em>parsed_uri</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set parsed request URI. You don't need to use this function if you are already providing the request line or request URI. But if your container already has this data available, feeding it to LibHTP will minimize any potential data differences. This function assumes management of the data provided in parsed_uri. This function will not change <a class="el" href="structhtp__tx__t.html#ae7ff21de5a532e2d148a78bff528c91c">htp_tx_t::parsed_uri_raw</a> (which may have data in it from the parsing of the request URI).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">parsed_uri</td><td>URI pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2d51b78134b9712df2152bf14b812978"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_protocol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>protocol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>protocol_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the request protocol string (e.g., "HTTP/1.0"). The information provided is only stored, not parsed. Use <a class="el" href="htp__transaction_8h.html#a65467c49a7fd48a7083cb7fb2e66d738">htp_tx_req_set_protocol_number()</a> to set the actual protocol number, as interpreted by the container.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">protocol</td><td>Protocol data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">protocol_len</td><td>Protocol data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="af3d8c86e14b6a1c8b8cb0026855ba30f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_req_set_protocol_0_9 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>is_protocol_0_9</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Forces HTTP/0.9 as the transaction protocol. This method exists to ensure that both LibHTP and the container treat the transaction as HTTP/0.9, despite potential differences in how the protocol version is determined.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">is_protocol_0_9</td><td>Zero if protocol is not HTTP/0.9, or 1 if it is. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a65467c49a7fd48a7083cb7fb2e66d738"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_req_set_protocol_number </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>protocol_number</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set request protocol version number. Must be invoked after htp_txh_set_req_protocol(), because it will overwrite the previously extracted version number. Convert the protocol version number to an integer by multiplying it with 100. For example, 1.1 becomes 110. Alternatively, use the HTP_PROTOCOL_0_9, HTP_PROTOCOL_1_0, and HTP_PROTOCOL_1_1 constants. Note: setting protocol to HTP_PROTOCOL_0_9 alone will <em>not</em> get the library to treat the transaction as HTTP/0.9. You need to also invoke <a class="el" href="htp__transaction_8h.html#af3d8c86e14b6a1c8b8cb0026855ba30f">htp_tx_req_set_protocol_0_9()</a>. This is because HTTP 0.9 is used only when protocol information is absent from the request line, and not when it is explicitly stated (as "HTTP/0.9"). This behavior is consistent with that of Apache httpd.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">protocol_number</td><td>Protocol number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a523a135d64880fbb5731d02ce910bc01"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_req_set_uri </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>uri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>uri_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set transaction request URI. The value provided here will be stored in <a class="el" href="structhtp__tx__t.html#af9a13351a92070381d6700cdfc99e0eb">htp_tx_t::request_uri</a> and subsequently parsed. If <a class="el" href="htp__transaction_8h.html#ad9a5f4df3aa359aed3d8b713689ef8b7">htp_tx_req_set_line()</a> was previously used, the uri provided when calling this function will overwrite any previously parsed value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">uri</td><td>URI data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">uri_len</td><td>URI data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a694697230584f925ff39a69d022a9edf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_process_body_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Process a chunk of response body data. This function assumes that handling of chunked encoding is implemented by the container. When you're done submitting body data, invoking a state change (to RESPONSE) will finalize any processing that might be pending.</p>
<p>The response body data will be decompressed if two conditions are met: one, decompression is enabled in configuration and two, if the response headers indicate compression. Alternatively, you can control decompression from a RESPONSE_HEADERS callback, by setting tx-&gt;response_content_encoding either to COMPRESSION_NONE (to disable compression), or to one of the supported decompression algorithms.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Data length. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a219a0b24ed95d84a3fb9ad7c07cac511"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_process_body_data_ex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a0de20cdbee28e01c68f5d79ac35f1c73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_set_header </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>name_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>value_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set one response header. This function should be invoked once for each available header, and in the order in which headers were seen in the response.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name_len</td><td>Name data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value_len</td><td>Value length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a4654dd75275b161e32c69b39f6365f49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_set_headers_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Removes all response headers associated with this transaction. This function is needed because in some cases the container does not differentiate between standard and trailing headers. In that case, you set response headers once at the beginning of the transaction, read the body, clear all headers, and then set them all again. After the headers are set for the second time, they will potentially contain a mixture of standard and trailing headers.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a138bfe0a159727cb8a15dd23c38567ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_res_set_protocol_number </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>protocol_number</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set response protocol number. See <a class="el" href="htp__transaction_8h.html#a138bfe0a159727cb8a15dd23c38567ad">htp_tx_res_set_protocol_number()</a> for more information about the correct format of the protocol_parameter parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">protocol_number</td><td>Protocol number. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="aab329bdb2bff8170ff8d394659717f0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_res_set_status_code </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set response status code.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">status_code</td><td>Response status code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a94f6b84283ab7904622010e23c9adf9d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_set_status_line </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>line_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set response line. Use this function is you have a single buffer containing the entire line. If you have individual request line pieces, use the other available functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">line</td><td>Line data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">line_len</td><td>Line data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a5448d3691eb45ad6f12a3fffbc373d92"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_res_set_status_message </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>msg_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="htp__transaction_8h.html#afbe69252f137edea1897f57803277c15">htp_alloc_strategy_t</a>&#160;</td>
          <td class="paramname"><em>alloc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set response status message, which is the part of the response line that comes after the status code.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Message data pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>Message data length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>Desired allocation strategy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success, HTP_ERROR on failure. </dd></dl>

</div>
</div>
<a class="anchor" id="a1c4b795d1d8be70fcc32e9396f53ebfb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_set_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structhtp__cfg__t.html">htp_cfg_t</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>is_cfg_shared</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets the configuration that is to be used for this transaction. If the second parameter is set to HTP_CFG_PRIVATE, the transaction will adopt the configuration structure and destroy it when appropriate. This function is useful if you need to make changes to configuration on per-transaction basis. Initially, all transactions will share the configuration with that of the connection; if you were to make changes on it, they would affect all current and future connections. To work around that, you make a copy of the configuration object, call this function with the second parameter set to HTP_CFG_PRIVATE, and modify configuration at will.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>Configuration pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">is_cfg_shared</td><td>HTP_CFG_SHARED or HTP_CFG_PRIVATE </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a195fca8b26ed5199e79bf7a3205cc8f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void htp_tx_set_user_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Associates user data with this transaction.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>Opaque user data pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6b642aabfa0688477a73138803e8a96c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_request_complete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to REQUEST and invoke registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="a094a6a35a7a937d160a2785e2e6e3269"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_request_complete_partial </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aed95ccccf477ee8adeb83291a2104156"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_request_headers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to REQUEST_HEADERS and invoke all registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="aaaf7174643f67cdb075d45333b6fd7b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_request_line </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to REQUEST_LINE and invoke all registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="afe2a066b2bd7887debe3146218a1586c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_request_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Initialize hybrid parsing mode, change state to TRANSACTION_START, and invoke all registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="adcbbf6a88718344b9cbe0c5f508a07ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_response_complete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to RESPONSE and invoke registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="a76675e7e250e24c1ac47c49b4181aff8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_response_complete_ex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>hybrid_mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a55a3a62e1c697127c4b206e75f983386"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_response_headers </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to RESPONSE_HEADERS and invoke registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="af51ff64d772742097a2f4a1a76e0557f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_response_line </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to HTP_RESPONSE_LINE and invoke registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
<a class="anchor" id="a524d59cd184104370ade58fb200f2379"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="htp__core_8h.html#ab8a71422665c0773654b9b4d96f01e31">htp_status_t</a> htp_tx_state_response_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhtp__tx__t.html">htp_tx_t</a> *&#160;</td>
          <td class="paramname"><em>tx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change transaction state to RESPONSE_START and invoke registered callbacks.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tx</td><td>Transaction pointer. Must not be NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>HTP_OK on success; HTP_ERROR on error, HTP_STOP if one of the callbacks does not want to follow the transaction any more. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>