HTP  0.5
htp_private.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (c) 2009-2010 Open Information Security Foundation
3  * Copyright (c) 2010-2013 Qualys, Inc.
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  * - Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12 
13  * - Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16 
17  * - Neither the name of the Qualys, Inc. nor the names of its
18  * contributors may be used to endorse or promote products derived from
19  * this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  ***************************************************************************/
33 
39 #ifndef _HTP_PRIVATE_H
40 #define _HTP_PRIVATE_H
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 #if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS)
47 /* C99 requires that inttypes.h only exposes PRI* macros
48  * for C++ implementations if this is defined: */
49 #define __STDC_FORMAT_MACROS
50 #endif
51 
52 #include <ctype.h>
53 #include <errno.h>
54 #include <iconv.h>
55 #include <inttypes.h>
56 #include <stdarg.h>
57 #include <stdio.h>
58 #include <stdlib.h>
59 #include <unistd.h>
60 #include <sys/types.h>
61 #include <sys/stat.h>
62 #include <stdint.h>
63 
64 #include "htp_config_auto_gen.h"
65 #include "htp.h"
66 #include "htp_config_private.h"
68 #include "htp_connection_private.h"
69 #include "htp_list_private.h"
70 #include "htp_multipart_private.h"
71 #include "htp_table_private.h"
72 
73 #ifndef CR
74 #define CR '\r'
75 #endif
76 
77 #ifndef LF
78 #define LF '\n'
79 #endif
80 
81 // 1048576 is 1 Mbyte
82 #define HTP_LZMA_MEMLIMIT 1048576
83 //deflate max ratio is about 1000
84 #define HTP_COMPRESSION_BOMB_RATIO 2048
85 #define HTP_COMPRESSION_BOMB_LIMIT 1048576
86 
87 #define HTP_FIELD_LIMIT_HARD 18000
88 #define HTP_FIELD_LIMIT_SOFT 9000
89 
90 #define HTP_VALID_STATUS_MIN 100
91 #define HTP_VALID_STATUS_MAX 999
92 
93 // Parser states, in the order in which they are
94 // used as a single transaction is processed.
95 
111 
122 
123 // Parsing functions
124 
127 htp_status_t htp_parse_request_header_generic(htp_connp_t *connp, htp_header_t *h, unsigned char *data, size_t len);
128 htp_status_t htp_process_request_header_generic(htp_connp_t *, unsigned char *data, size_t len);
129 
131 htp_status_t htp_process_request_header_apache_2_2(htp_connp_t *, unsigned char *data, size_t len);
132 
134 htp_status_t htp_parse_response_header_generic(htp_connp_t *connp, htp_header_t *h, unsigned char *data, size_t len);
135 htp_status_t htp_process_response_header_generic(htp_connp_t *connp, unsigned char *data, size_t len);
136 
137 
138 // Private transaction functions
139 
141 
142 
143 // Utility functions
144 
146 int htp_is_lws(int c);
147 int htp_is_separator(int c);
148 int htp_is_text(int c);
149 int htp_is_token(int c);
150 int htp_chomp(unsigned char *data, size_t *len);
151 int htp_is_space(int c);
152 
153 int htp_parse_protocol(bstr *protocol);
154 
155 int htp_is_line_empty(unsigned char *data, size_t len);
156 int htp_is_line_whitespace(unsigned char *data, size_t len);
157 
158 int htp_connp_is_line_folded(unsigned char *data, size_t len);
159 int htp_is_folding_char(int c);
160 int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len);
161 int htp_connp_is_line_ignorable(htp_connp_t *connp, unsigned char *data, size_t len);
162 
163 int htp_parse_uri(bstr *input, htp_uri_t **uri);
164 htp_status_t htp_parse_hostport(bstr *authority, bstr **hostname, bstr **port, int *port_number, int *invalid);
165 htp_status_t htp_parse_header_hostport(bstr *authority, bstr **hostname, bstr **port, int *port_number, uint64_t *flags);
166 int htp_validate_hostname(bstr *hostname);
167 int htp_parse_uri_hostport(htp_connp_t *connp, bstr *input, htp_uri_t *uri);
168 int htp_normalize_parsed_uri(htp_tx_t *tx, htp_uri_t *parsed_uri_incomplete, htp_uri_t *parsed_uri);
170 void htp_replace_hostname(htp_connp_t *connp, htp_uri_t *parsed_uri, bstr *hostname);
171 int htp_is_uri_unreserved(unsigned char c);
172 
173 int htp_decode_path_inplace(htp_tx_t *tx, bstr *path);
174 
175  int htp_prenormalize_uri_path_inplace(bstr *s, int *flags, int case_insensitive, int backslash, int decode_separators, int remove_consecutive);
177 
178 void htp_utf8_decode_path_inplace(htp_cfg_t *cfg, htp_tx_t *tx, bstr *path);
179 void htp_utf8_validate_path(htp_tx_t *tx, bstr *path);
180 
181 int64_t htp_parse_content_length(bstr *b, htp_connp_t *connp);
182 int64_t htp_parse_chunked_length(unsigned char *data, size_t len);
183 int64_t htp_parse_positive_integer_whitespace(unsigned char *data, size_t len, int base);
184 int htp_parse_status(bstr *status);
186 int htp_parse_authorization_basic(htp_connp_t *connp, htp_header_t *auth_header);
187 
188 void htp_print_log(FILE *stream, htp_log_t *log);
189 
190 void fprint_bstr(FILE *stream, const char *name, bstr *b);
191 void fprint_raw_data(FILE *stream, const char *name, const void *data, size_t len);
192 void fprint_raw_data_ex(FILE *stream, const char *name, const void *data, size_t offset, size_t len);
193 
198 
200 
201 int htp_treat_response_line_as_body(const uint8_t *data, size_t len);
202 
205 
211 
213 
214 int htp_transcode_params(htp_connp_t *connp, htp_table_t **params, int destroy_old);
215 int htp_transcode_bstr(iconv_t cd, bstr *input, bstr **output);
216 
217 int htp_parse_single_cookie_v0(htp_connp_t *connp, unsigned char *data, size_t len);
220 
221 htp_status_t htp_extract_quoted_string_as_bstr(unsigned char *data, size_t len, bstr **out, size_t *endoffset);
222 
223 htp_header_t *htp_connp_header_parse(htp_connp_t *, unsigned char *, size_t);
224 
226 
229 
231 
233 
235 
236 void htp_connp_tx_remove(htp_connp_t *connp, htp_tx_t *tx);
237 
239 
240 htp_status_t htp_tx_req_process_body_data_ex(htp_tx_t *tx, const void *data, size_t len);
241 htp_status_t htp_tx_res_process_body_data_ex(htp_tx_t *tx, const void *data, size_t len);
242 
245 
247 
248 #ifndef HAVE_STRLCAT
249 size_t strlcat(char *dst, const char *src, size_t size);
250 #endif
251 
252 #ifndef HAVE_STRLCPY
253 size_t strlcpy(char *dst, const char *src, size_t size);
254 #endif
255 
256 #ifdef __cplusplus
257 }
258 #endif
259 
260 #endif /* _HTP_PRIVATE_H */
261 
htp_treat_response_line_as_body
int htp_treat_response_line_as_body(const uint8_t *data, size_t len)
Definition: htp_util.c:2398
htp_connp_REQ_BODY_CHUNKED_DATA
htp_status_t htp_connp_REQ_BODY_CHUNKED_DATA(htp_connp_t *connp)
Definition: htp_request.c:436
htp_normalize_uri_path_inplace
void htp_normalize_uri_path_inplace(bstr *s)
Definition: htp_util.c:1999
htp_parse_cookies_v0
int htp_parse_cookies_v0(htp_connp_t *connp)
Definition: htp_cookies.c:88
htp_tx_t
Definition: htp.h:208
htp_connection_private.h
htp_connp_is_line_folded
int htp_connp_is_line_folded(unsigned char *data, size_t len)
Definition: htp_util.c:449
htp_print_log
void htp_print_log(FILE *stream, htp_log_t *log)
htp_table_private.h
htp_validate_hostname
int htp_validate_hostname(bstr *hostname)
Definition: htp_util.c:2580
htp_header_t
Definition: htp.h:171
htp_parse_uri
int htp_parse_uri(bstr *input, htp_uri_t **uri)
Definition: htp_util.c:698
htp_connp_REQ_BODY_DETERMINE
htp_status_t htp_connp_REQ_BODY_DETERMINE(htp_connp_t *connp)
Definition: htp_request.c:572
htp_is_separator
int htp_is_separator(int c)
Definition: htp_util.c:60
htp_connp_RES_BODY_CHUNKED_DATA_END
htp_status_t htp_connp_RES_BODY_CHUNKED_DATA_END(htp_connp_t *connp)
Definition: htp_response.c:289
htp_connection_parser_private.h
htp_connp_REQ_IGNORE_DATA_AFTER_HTTP_0_9
htp_status_t htp_connp_REQ_IGNORE_DATA_AFTER_HTTP_0_9(htp_connp_t *connp)
Definition: htp_request.c:901
htp_connp_RES_IDLE
htp_status_t htp_connp_RES_IDLE(htp_connp_t *connp)
Definition: htp_response.c:1129
htp_ch_multipart_callback_request_headers
htp_status_t htp_ch_multipart_callback_request_headers(htp_tx_t *tx)
Definition: htp_content_handlers.c:244
htp_parse_response_line_generic
htp_status_t htp_parse_response_line_generic(htp_connp_t *connp)
Definition: htp_response_generic.c:49
htp_tx_urldecode_uri_inplace
htp_status_t htp_tx_urldecode_uri_inplace(htp_tx_t *tx, bstr *input)
Definition: htp_util.c:1513
htp_utf8_validate_path
void htp_utf8_validate_path(htp_tx_t *tx, bstr *path)
Definition: htp_util.c:1056
htp_res_run_hook_body_data
htp_status_t htp_res_run_hook_body_data(htp_connp_t *connp, htp_tx_data_t *d)
Definition: htp_util.c:2461
htp_connp_RES_BODY_IDENTITY_CL_KNOWN
htp_status_t htp_connp_RES_BODY_IDENTITY_CL_KNOWN(htp_connp_t *connp)
Definition: htp_response.c:451
htp_process_request_header_apache_2_2
htp_status_t htp_process_request_header_apache_2_2(htp_connp_t *, unsigned char *data, size_t len)
Definition: htp_request_apache_2_2.c:52
htp_parse_authorization_digest
int htp_parse_authorization_digest(htp_connp_t *connp, htp_header_t *auth_header)
Definition: htp_parsers.c:102
htp_process_request_header_generic
htp_status_t htp_process_request_header_generic(htp_connp_t *, unsigned char *data, size_t len)
Definition: htp_request_generic.c:52
htp_parse_header_hostport
htp_status_t htp_parse_header_hostport(bstr *authority, bstr **hostname, bstr **port, int *port_number, uint64_t *flags)
Definition: htp_util.c:672
htp_parse_authorization
int htp_parse_authorization(htp_connp_t *connp)
Definition: htp_parsers.c:169
htp_tx_destroy_incomplete
void htp_tx_destroy_incomplete(htp_tx_t *tx)
Definition: htp_transaction.c:118
htp_connp_RES_BODY_CHUNKED_DATA
htp_status_t htp_connp_RES_BODY_CHUNKED_DATA(htp_connp_t *connp)
Definition: htp_response.c:314
htp_convert_method_to_number
int htp_convert_method_to_number(bstr *)
Definition: htp_util.c:177
htp_connp_res_receiver_finalize_clear
htp_status_t htp_connp_res_receiver_finalize_clear(htp_connp_t *connp)
Definition: htp_response.c:117
htp_connp_RES_FINALIZE
htp_status_t htp_connp_RES_FINALIZE(htp_connp_t *connp)
Definition: htp_response.c:1072
htp_normalize_hostname_inplace
bstr * htp_normalize_hostname_inplace(bstr *input)
Definition: htp_util.c:1852
htp_decode_path_inplace
int htp_decode_path_inplace(htp_tx_t *tx, bstr *path)
Definition: htp_util.c:1249
htp_connp_RES_BODY_DETERMINE
htp_status_t htp_connp_RES_BODY_DETERMINE(htp_connp_t *connp)
Definition: htp_response.c:529
htp_connp_RES_BODY_CHUNKED_LENGTH
htp_status_t htp_connp_RES_BODY_CHUNKED_LENGTH(htp_connp_t *connp)
Definition: htp_response.c:384
htp_parse_request_line_generic_ex
htp_status_t htp_parse_request_line_generic_ex(htp_connp_t *connp, int nul_terminates)
Definition: htp_request_generic.c:283
htp_connp_in_state_as_string
char * htp_connp_in_state_as_string(htp_connp_t *connp)
Definition: htp_util.c:2188
htp_is_space
int htp_is_space(int c)
Definition: htp_util.c:157
htp_is_uri_unreserved
int htp_is_uri_unreserved(unsigned char c)
htp_prenormalize_uri_path_inplace
int htp_prenormalize_uri_path_inplace(bstr *s, int *flags, int case_insensitive, int backslash, int decode_separators, int remove_consecutive)
htp_connp_REQ_PROTOCOL
htp_status_t htp_connp_REQ_PROTOCOL(htp_connp_t *connp)
Definition: htp_request.c:726
fprint_raw_data
void fprint_raw_data(FILE *stream, const char *name, const void *data, size_t len)
Definition: htp_util.c:2110
htp_parse_positive_integer_whitespace
int64_t htp_parse_positive_integer_whitespace(unsigned char *data, size_t len, int base)
Definition: htp_util.c:334
htp_config_private.h
htp_parse_request_header_generic
htp_status_t htp_parse_request_header_generic(htp_connp_t *connp, htp_header_t *h, unsigned char *data, size_t len)
Definition: htp_request_generic.c:143
htp_connp_req_receiver_finalize_clear
htp_status_t htp_connp_req_receiver_finalize_clear(htp_connp_t *connp)
Definition: htp_request.c:131
htp_php_parameter_processor
htp_status_t htp_php_parameter_processor(htp_param_t *p)
Definition: htp_php.c:52
htp_multipart_private.h
htp_extract_quoted_string_as_bstr
htp_status_t htp_extract_quoted_string_as_bstr(unsigned char *data, size_t len, bstr **out, size_t *endoffset)
Definition: htp_util.c:2485
htp_unparse_uri_noencode
bstr * htp_unparse_uri_noencode(htp_uri_t *uri)
Definition: htp_util.c:2276
htp_cfg_t
Definition: htp_config_private.h:123
htp_tx_state_response_complete_ex
htp_status_t htp_tx_state_response_complete_ex(htp_tx_t *tx, int hybrid_mode)
Definition: htp_transaction.c:1049
htp_list_private.h
htp_is_line_empty
int htp_is_line_empty(unsigned char *data, size_t len)
Definition: htp_util.c:221
htp_req_run_hook_body_data
htp_status_t htp_req_run_hook_body_data(htp_connp_t *connp, htp_tx_data_t *d)
Definition: htp_util.c:2424
htp_uri_t
Definition: htp.h:575
htp_connp_REQ_CONNECT_CHECK
htp_status_t htp_connp_REQ_CONNECT_CHECK(htp_connp_t *connp)
Definition: htp_request.c:291
htp_parse_content_length
int64_t htp_parse_content_length(bstr *b, htp_connp_t *connp)
Definition: htp_util.c:256
htp_is_line_whitespace
int htp_is_line_whitespace(unsigned char *data, size_t len)
Definition: htp_util.c:237
htp.h
fprint_raw_data_ex
void fprint_raw_data_ex(FILE *stream, const char *name, const void *data, size_t offset, size_t len)
Definition: htp_util.c:2117
htp_param_t
Definition: htp.h:185
htp_tx_state_request_complete_partial
htp_status_t htp_tx_state_request_complete_partial(htp_tx_t *tx)
Definition: htp_transaction.c:867
htp_tx_is_complete
int htp_tx_is_complete(htp_tx_t *tx)
Definition: htp_transaction.c:1384
htp_status_t
int htp_status_t
Definition: htp_core.h:46
htp_connp_out_state_as_string
char * htp_connp_out_state_as_string(htp_connp_t *connp)
Definition: htp_util.c:2211
htp_normalize_parsed_uri
int htp_normalize_parsed_uri(htp_tx_t *tx, htp_uri_t *parsed_uri_incomplete, htp_uri_t *parsed_uri)
Definition: htp_util.c:1753
htp_connp_t
Definition: htp_connection_parser_private.h:51
htp_connp_RES_LINE
htp_status_t htp_connp_RES_LINE(htp_connp_t *connp)
Definition: htp_response.c:947
htp_parse_uri_hostport
int htp_parse_uri_hostport(htp_connp_t *connp, bstr *input, htp_uri_t *uri)
Definition: htp_util.c:643
bstr_t
Definition: bstr.h:57
htp_utf8_decode_path_inplace
void htp_utf8_decode_path_inplace(htp_cfg_t *cfg, htp_tx_t *tx, bstr *path)
Definition: htp_util.c:946
htp_tx_urldecode_params_inplace
htp_status_t htp_tx_urldecode_params_inplace(htp_tx_t *tx, bstr *input)
Definition: htp_util.c:1533
htp_parse_request_line_generic
htp_status_t htp_parse_request_line_generic(htp_connp_t *connp)
Definition: htp_request_generic.c:279
htp_connp_REQ_CONNECT_PROBE_DATA
htp_status_t htp_connp_REQ_CONNECT_PROBE_DATA(htp_connp_t *connp)
Definition: htp_request.c:317
htp_tx_request_progress_as_string
char * htp_tx_request_progress_as_string(htp_tx_t *tx)
Definition: htp_util.c:2231
htp_ch_multipart_callback_request_body_data
htp_status_t htp_ch_multipart_callback_request_body_data(htp_tx_data_t *d)
Definition: htp_content_handlers.c:193
htp_connp_REQ_LINE_complete
htp_status_t htp_connp_REQ_LINE_complete(htp_connp_t *connp)
Definition: htp_request.c:767
htp_connp_REQ_IDLE
htp_status_t htp_connp_REQ_IDLE(htp_connp_t *connp)
Definition: htp_request.c:924
htp_connp_REQ_BODY_IDENTITY
htp_status_t htp_connp_REQ_BODY_IDENTITY(htp_connp_t *connp)
Definition: htp_request.c:533
htp_tx_req_process_body_data_ex
htp_status_t htp_tx_req_process_body_data_ex(htp_tx_t *tx, const void *data, size_t len)
Definition: htp_transaction.c:571
htp_tx_response_progress_as_string
char * htp_tx_response_progress_as_string(htp_tx_t *tx)
Definition: htp_util.c:2255
htp_replace_hostname
void htp_replace_hostname(htp_connp_t *connp, htp_uri_t *parsed_uri, bstr *hostname)
fprint_bstr
void fprint_bstr(FILE *stream, const char *name, bstr *b)
Definition: htp_util.c:2098
htp_is_text
int htp_is_text(int c)
Definition: htp_util.c:98
strlcpy
size_t strlcpy(char *dst, const char *src, size_t size)
Definition: strlcpy.c:48
htp_is_token
int htp_is_token(int c)
Definition: htp_util.c:110
htp_process_response_header_generic
htp_status_t htp_process_response_header_generic(htp_connp_t *connp, unsigned char *data, size_t len)
Definition: htp_response_generic.c:246
htp_connp_RES_BODY_IDENTITY_STREAM_CLOSE
htp_status_t htp_connp_RES_BODY_IDENTITY_STREAM_CLOSE(htp_connp_t *connp)
Definition: htp_response.c:497
htp_ch_urlencoded_callback_request_body_data
htp_status_t htp_ch_urlencoded_callback_request_body_data(htp_tx_data_t *d)
Definition: htp_content_handlers.c:50
htp_is_lws
int htp_is_lws(int c)
Definition: htp_util.c:49
htp_connp_destroy_decompressors
void htp_connp_destroy_decompressors(htp_connp_t *connp)
Definition: htp_transaction.c:759
htp_tx_finalize
htp_status_t htp_tx_finalize(htp_tx_t *tx)
Definition: htp_transaction.c:1032
htp_connp_REQ_LINE
htp_status_t htp_connp_REQ_LINE(htp_connp_t *connp)
Definition: htp_request.c:816
htp_tx_res_process_body_data_ex
htp_status_t htp_tx_res_process_body_data_ex(htp_tx_t *tx, const void *data, size_t len)
Definition: htp_transaction.c:809
htp_is_folding_char
int htp_is_folding_char(int c)
Definition: htp_util.c:454
htp_connp_RES_HEADERS
htp_status_t htp_connp_RES_HEADERS(htp_connp_t *connp)
Definition: htp_response.c:751
htp_connp_REQ_BODY_CHUNKED_LENGTH
htp_status_t htp_connp_REQ_BODY_CHUNKED_LENGTH(htp_connp_t *connp)
Definition: htp_request.c:481
htp_transcode_bstr
int htp_transcode_bstr(iconv_t cd, bstr *input, bstr **output)
Definition: htp_transcoder.c:143
htp_connp_is_line_terminator
int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len)
Definition: htp_util.c:467
htp_chomp
int htp_chomp(unsigned char *data, size_t *len)
Definition: htp_util.c:125
htp_parse_status
int htp_parse_status(bstr *status)
Definition: htp_parsers.c:87
htp_ch_urlencoded_callback_request_headers
htp_status_t htp_ch_urlencoded_callback_request_headers(htp_tx_t *tx)
Definition: htp_content_handlers.c:103
strlcat
size_t strlcat(char *dst, const char *src, size_t size)
Definition: strlcat.c:50
htp_connp_is_line_ignorable
int htp_connp_is_line_ignorable(htp_connp_t *connp, unsigned char *data, size_t len)
Definition: htp_util.c:503
htp_parse_request_line_apache_2_2
htp_status_t htp_parse_request_line_apache_2_2(htp_connp_t *connp)
Definition: htp_request_apache_2_2.c:62
htp_parse_response_header_generic
htp_status_t htp_parse_response_header_generic(htp_connp_t *connp, htp_header_t *h, unsigned char *data, size_t len)
Definition: htp_response_generic.c:124
htp_connp_header_parse
htp_header_t * htp_connp_header_parse(htp_connp_t *, unsigned char *, size_t)
htp_transcode_params
int htp_transcode_params(htp_connp_t *connp, htp_table_t **params, int destroy_old)
Definition: htp_transcoder.c:50
htp_parse_authorization_basic
int htp_parse_authorization_basic(htp_connp_t *connp, htp_header_t *auth_header)
Definition: htp_parsers.c:126
htp_ch_urlencoded_callback_request_line
htp_status_t htp_ch_urlencoded_callback_request_line(htp_tx_t *tx)
Definition: htp_content_handlers.c:136
htp_tx_data_t
Definition: htp.h:551
htp_connp_REQ_FINALIZE
htp_status_t htp_connp_REQ_FINALIZE(htp_connp_t *connp)
Definition: htp_request.c:830
htp_parse_single_cookie_v0
int htp_parse_single_cookie_v0(htp_connp_t *connp, unsigned char *data, size_t len)
Definition: htp_cookies.c:51
htp_parse_chunked_length
int64_t htp_parse_chunked_length(unsigned char *data, size_t len)
Definition: htp_util.c:293
htp_parse_protocol
int htp_parse_protocol(bstr *protocol)
Definition: htp_parsers.c:51
htp_connp_REQ_BODY_CHUNKED_DATA_END
htp_status_t htp_connp_REQ_BODY_CHUNKED_DATA_END(htp_connp_t *connp)
Definition: htp_request.c:412
htp_parse_hostport
htp_status_t htp_parse_hostport(bstr *authority, bstr **hostname, bstr **port, int *port_number, int *invalid)
Definition: htp_util.c:544
htp_parse_ct_header
htp_status_t htp_parse_ct_header(bstr *header, bstr **ct)
Definition: htp_util.c:2551
htp_connp_REQ_HEADERS
htp_status_t htp_connp_REQ_HEADERS(htp_connp_t *connp)
Definition: htp_request.c:615
htp_connp_tx_remove
void htp_connp_tx_remove(htp_connp_t *connp, htp_tx_t *tx)
Definition: htp_connection_parser.c:222
htp_table_t
Definition: htp_table_private.h:63
htp_log_t
Definition: htp.h:145
htp_connp_REQ_CONNECT_WAIT_RESPONSE
htp_status_t htp_connp_REQ_CONNECT_WAIT_RESPONSE(htp_connp_t *connp)
Definition: htp_request.c:383