summaryrefslogtreecommitdiffstats
path: root/docs/COMPATIBILITY_CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'docs/COMPATIBILITY_CHANGES')
-rw-r--r--docs/COMPATIBILITY_CHANGES79
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.