HTP
0.3
|
void fprint_bstr | ( | FILE * | stream, |
const char * | name, | ||
bstr * | b | ||
) |
void fprint_raw_data | ( | FILE * | stream, |
const char * | name, | ||
unsigned char * | data, | ||
size_t | len | ||
) |
void fprint_raw_data_ex | ( | FILE * | stream, |
const char * | name, | ||
unsigned char * | data, | ||
size_t | offset, | ||
size_t | printlen | ||
) |
int htp_chomp | ( | unsigned char * | data, |
size_t * | len | ||
) |
Remove one or more line terminators (LF or CRLF) from the end of the line provided as input.
char* htp_connp_in_state_as_string | ( | htp_connp_t * | connp | ) |
int htp_connp_is_line_folded | ( | unsigned char * | data, |
size_t | len | ||
) |
Determines if the given line is a continuation (of some previous line).
connp | |
data | |
len |
int htp_connp_is_line_ignorable | ( | htp_connp_t * | connp, |
unsigned char * | data, | ||
size_t | len | ||
) |
Determines if the given line can be ignored when it appears before a request.
connp | |
data | |
len |
int htp_connp_is_line_terminator | ( | htp_connp_t * | connp, |
unsigned char * | data, | ||
size_t | len | ||
) |
Determines if the given line is a request terminator.
connp | |
data | |
len |
char* htp_connp_out_state_as_string | ( | htp_connp_t * | connp | ) |
int htp_convert_method_to_number | ( | bstr * | method | ) |
Converts request method, given as a string, into a number.
method |
Decode a request path according to the settings in the provided configuration structure.
cfg | |
tx | |
path |
bstr* htp_extract_quoted_string_as_bstr | ( | char * | data, |
size_t | len, | ||
size_t * | endoffset | ||
) |
int htp_is_line_empty | ( | unsigned char * | data, |
size_t | len | ||
) |
Is the given line empty? This function expects the line to have a terminating LF.
data | |
len |
int htp_is_line_whitespace | ( | unsigned char * | data, |
size_t | len | ||
) |
Does line consist entirely of whitespace characters?
data | |
len |
int htp_is_lws | ( | int | c | ) |
Is character a linear white space character?
c |
int htp_is_separator | ( | int | c | ) |
Is character a separator character?
c |
int htp_is_space | ( | int | c | ) |
Is character a white space character?
c |
int htp_is_text | ( | int | c | ) |
Is character a text character?
c |
int htp_is_token | ( | int | c | ) |
Is character a token character?
c |
int htp_is_uri_unreserved | ( | unsigned char | c | ) |
Is URI character reserved?
c |
void htp_log | ( | htp_connp_t * | connp, |
const char * | file, | ||
int | line, | ||
int | level, | ||
int | code, | ||
const char * | fmt, | ||
... | |||
) |
Records one log message.
connp | |
file | |
line | |
level | |
code | |
fmt |
Normalize request hostname. Convert all characters to lowercase and remove trailing dots from the end, if present.
hostname |
int htp_normalize_parsed_uri | ( | htp_connp_t * | connp, |
htp_uri_t * | incomplete, | ||
htp_uri_t * | normalized | ||
) |
Normalize a previously-parsed request URI.
connp | |
incomplete | |
normalized |
void htp_normalize_uri_path_inplace | ( | bstr * | s | ) |
Normalize URL path. This function implements the remove dot segments algorithm specified in RFC 3986, section 5.2.4.
s |
int htp_parse_authority | ( | htp_connp_t * | connp, |
bstr * | authority, | ||
htp_uri_t ** | uri | ||
) |
Parses request URI, making no attempt to validate the contents.
connp | |
authority | |
uri |
int htp_parse_chunked_length | ( | unsigned char * | data, |
size_t | len | ||
) |
Parses chunk length (positive hexadecimal number). White space is allowed before and after the number.
data | |
len |
int htp_parse_content_length | ( | bstr * | b | ) |
Parses Content-Length string (positive decimal number). White space is allowed before and after the number.
b |
int htp_parse_positive_integer_whitespace | ( | unsigned char * | data, |
size_t | len, | ||
int | base | ||
) |
A forgiving parser for a positive integer in a given base. White space is allowed before and after the number.
data | |
len | |
base |
Parses request URI, making no attempt to validate the contents.
input | |
uri |
void htp_print_log | ( | FILE * | stream, |
htp_log_t * | log | ||
) |
Prints one log message to stderr.
log |
void htp_replace_hostname | ( | htp_connp_t * | connp, |
htp_uri_t * | parsed_uri, | ||
bstr * | hostname | ||
) |
Replace the URI in the structure with the one provided as the parameter to this function (which will typically be supplied in a Host header).
connp | |
parsed_uri | |
hostname |
int htp_req_run_hook_body_data | ( | htp_connp_t * | connp, |
htp_tx_data_t * | d | ||
) |
Run the REQUEST_BODY_DATA hook.
connp | |
d |
int htp_res_run_hook_body_data | ( | htp_connp_t * | connp, |
htp_tx_data_t * | d | ||
) |
Run the RESPONSE_BODY_DATA hook.
connp | |
d |
int htp_resembles_response_line | ( | htp_tx_t * | tx | ) |
Determine if the information provided on the response line is good enough. Browsers are lax when it comes to response line parsing. In most cases they will only look for the words "http" at the beginning.
tx |
Construct a bstr that contains the raw request headers.
tx |
Get a bstr that contains the raw request headers. This method will always return an up-to-date buffer, containing the last known headers. Thus, if it is called once after REQUEST_HEADERS phase it will return one buffer, but it may return a different buffer if called after REQUEST_TRAILERS phase (but only if the request actually contains trailer headers). Do not retain the bstr pointer, as the buffer may change. If there are no changes to the request header structure, only one buffer will be constructed and used. (Multiple invocations of this method will not cause multiple buffers to be created.)
tx |
char* htp_tx_progress_as_string | ( | htp_tx_t * | tx | ) |
void htp_uriencoding_normalize_inplace | ( | bstr * | s | ) |
Decode a URL-encoded string, leaving the reserved characters and invalid encodings alone.
s |
Decode a UTF-8 encoded path. Overlong characters will be decoded, invalid characters will be left as-is. Best-fit mapping will be used to convert UTF-8 into a single-byte stream.
cfg | |
tx | |
path |