diff options
Diffstat (limited to 'docs/COMPATIBILITY_CHANGES')
-rw-r--r-- | docs/COMPATIBILITY_CHANGES | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/docs/COMPATIBILITY_CHANGES b/docs/COMPATIBILITY_CHANGES new file mode 100644 index 0000000..070b1fd --- /dev/null +++ b/docs/COMPATIBILITY_CHANGES @@ -0,0 +1,79 @@ +0.4 +--- + +- Removed the HOOK_* constants. Use the equivalent HTP_* constants instead. + +- Added the "htp_" prefix to all hook functions. + +- Renamed hooks.h to htp_hooks.h and hooks.c to htp_hooks.c. + +- Added the "htp_" prefix to all table structures and functions. + +- list_array_replace returns HTP_ERROR (-1) instead of 0 when the index does not exist. + +- Removed list iterators. Use this instead: + + for (int i = 0, n = htp_list_size(l); i < n; i++) { + bstr *b = htp_list_get(l, i); + // Do something with b here + } + +- Removed table iterators. Use this instead: + + bstr *key = NULL; + bstr *value = NULL; + for (int i = 0, n = htp_table_size(t); i < n; i++) { + value = htp_table_get_index(l, i, &key); + // Do something with key and value here + } + +- Removed htp_connp_create_copycfg(), along with the ability of connection parsers to + have private configurations. + +- htp_conn_remove_tx() now returns HTP_ERROR on error (was 0). + +- Renamed STREAM_STATE_* constants to HTP_STREAM_* + +- Personality HTP_SERVER_APACHE_2_2 renamed to HTP_SERVER_APACHE_2. Personality HTP_SERVER_APACHE removed. + +- Request parameters are now stored in a single structure called request_params. Previously, there + were 2 structures, one for query string parameters (GET) and another for body parameters (e.g., POST). + Further, before LibHTP stored parameter names and values in these structures. Now there is htp_param_t, + which stores additional useful information (e.g., allows parameters to be tracked back to the parsers)parsers. + +- Improve the table code to support 3 key management strategies. Strategy is determined when the first add + function is invoked, with consistency checks to ensure that approach is always used. + +- A number of *_destroy functions and bstr_free() used to take a pointer to a pointer. Now all such + functions are taking pointers to the structures that need to be destroyed. + +- Renamed HTP_FIELD_NUL_BYTE flag to HTP_FIELD_RAW_NUL. + +- Renamed HTP_PATH_FULLWIDTH_EVASION to HTP_PATH_HALF_FULL_RANGE. + +- Removed htp_tx_t::request_line_raw, htp_tx_t::response_line_raw. + +- Removed htp_tx_t::request_header_lines, htp_tx_t::response_header_lines. + +- Removed htp_tx_get_request_headers_raw() and htp_tx_get_response_headers_raw(). + +- Changed REQUEST_LINE callback signature from int (*callback_fn)(htp_connp_t *) + to int (*callback_fn)(htp_connp_t *, unsigned char *, size_t). The additional parameters are + used to expose the entire request line (incl. line terminators) to the callback. + +- Refactor how normalization options are configured. LibHTP now supports multiple normalization + contexts, with 2 used at this time: HTP_DECODER_URL_PATH and HTP_DECODER_URLENCODED. + +- New hooks to receive raw request header and trailer data: REQUEST_HEADER_DATA and REQUEST_TRAILER_DATA. + +- New hooks to receive raw response header and trailer data: RESPONSE_HEADER_DATA and RESPONSE_TRAILER_DATA. + +- Removed field htp_tx_t::request_uri_normalized. + +- Removed fields htp_tx_t::request_line_nul and htp_tx_t::request_line_nul_offset. + +- Renamed htp_tx_t::parsed_uri_incomplete to htp_tx_t::parsed_uri_raw. + +- Added request_hostname and request_port_number to htp_tx_t. These fields will hold the information + on what's the correct hostname/port, per RFC. Before, this information was in parsed_uri, but parsed_uri + now stores only what was actually supplied in the URI. |