HTP
0.5
Main Page
Data Structures
Files
File List
Globals
htp
htp_config_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_CONFIG_PRIVATE_H
40
#define HTP_CONFIG_PRIVATE_H
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
45
46
#define HTP_DECODER_CONTEXTS_MAX 3
47
48
typedef
struct
htp_decoder_cfg_t
{
49
50
// Path-specific decoding options.
51
53
int
backslash_convert_slashes
;
54
56
int
convert_lowercase
;
57
59
int
path_separators_compress
;
60
62
int
path_separators_decode
;
63
65
int
plusspace_decode
;
66
68
enum
htp_unwanted_t
path_separators_encoded_unwanted
;
69
70
71
// Special characters options.
72
74
int
nul_raw_terminates
;
75
77
enum
htp_unwanted_t
nul_raw_unwanted
;
78
80
enum
htp_unwanted_t
control_chars_unwanted
;
81
82
83
// URL encoding options.
84
86
int
u_encoding_decode
;
87
89
enum
htp_unwanted_t
u_encoding_unwanted
;
90
92
enum
htp_url_encoding_handling_t
url_encoding_invalid_handling
;
93
95
enum
htp_unwanted_t
url_encoding_invalid_unwanted
;
96
98
int
nul_encoded_terminates
;
99
101
enum
htp_unwanted_t
nul_encoded_unwanted
;
102
103
104
// UTF-8 options.
105
107
enum
htp_unwanted_t
utf8_invalid_unwanted
;
108
110
int
utf8_convert_bestfit
;
111
112
113
// Best-fit mapping options.
114
116
unsigned
char
*
bestfit_map
;
117
119
unsigned
char
bestfit_replacement_byte
;
120
}
htp_decoder_cfg_t
;
121
122
struct
htp_cfg_t
{
128
size_t
field_limit_hard
;
129
134
size_t
field_limit_soft
;
135
140
enum
htp_log_level_t
log_level
;
141
146
int
tx_auto_destroy
;
147
151
enum
htp_server_personality_t
server_personality
;
152
154
int (*
parse_request_line
)(
htp_connp_t
*connp);
155
157
int (*
parse_response_line
)(
htp_connp_t
*connp);
158
160
int (*
process_request_header
)(
htp_connp_t
*connp,
unsigned
char
*data,
size_t
len);
161
163
int (*
process_response_header
)(
htp_connp_t
*connp,
unsigned
char
*data,
size_t
len);
164
166
int (*
parameter_processor
)(
htp_param_t
*param);
167
169
htp_decoder_cfg_t
decoder_cfgs
[
HTP_DECODER_CONTEXTS_MAX
];
170
172
int
generate_request_uri_normalized
;
173
175
int
response_decompression_enabled
;
176
178
char
*
request_encoding
;
179
181
char
*
internal_encoding
;
182
184
int
parse_request_cookies
;
185
187
int
parse_request_auth
;
188
190
int
extract_request_files
;
191
193
int
extract_request_files_limit
;
194
196
char
*
tmpdir
;
197
198
// Hooks
199
205
htp_hook_t
*
hook_request_start
;
206
210
htp_hook_t
*
hook_request_line
;
211
215
htp_hook_t
*
hook_request_uri_normalize
;
216
223
htp_hook_t
*
hook_request_header_data
;
224
228
htp_hook_t
*
hook_request_headers
;
229
237
htp_hook_t
*
hook_request_body_data
;
238
243
htp_hook_t
*
hook_request_file_data
;
244
250
htp_hook_t
*
hook_request_trailer_data
;
251
256
htp_hook_t
*
hook_request_trailer
;
257
261
htp_hook_t
*
hook_request_complete
;
262
267
htp_hook_t
*
hook_response_start
;
268
272
htp_hook_t
*
hook_response_line
;
273
280
htp_hook_t
*
hook_response_header_data
;
281
285
htp_hook_t
*
hook_response_headers
;
286
295
htp_hook_t
*
hook_response_body_data
;
296
302
htp_hook_t
*
hook_response_trailer_data
;
303
308
htp_hook_t
*
hook_response_trailer
;
309
315
htp_hook_t
*
hook_response_complete
;
316
322
htp_hook_t
*
hook_transaction_complete
;
323
327
htp_hook_t
*
hook_log
;
328
332
void
*
user_data
;
333
};
334
335
#ifdef __cplusplus
336
}
337
#endif
338
339
#endif
/* HTP_CONFIG_PRIVATE H */
340
Generated by
1.8.4