gzip: decompress gzip files with FNAME and FCOMMENT extensions.
OpenBSD: fix inline related warning
Backport master branch response body handling fix.
Port suricata lihtp build fixes.
Port suricata libhtp changes.
don't use internal iterator

It violates thread safety. Suricata bug #601. https://redmine.openinfosecfoundation.org/issues/601

Suricata assures thread safety on the flow level for HTTP tracking. Part of the flow is (in case of HTTP) libhtp's htp_connp_t state. At startup the libhtp glue layer, app-layer-htp initializes as many htp_cfg_t instances as there are libhtp server configurations in the yaml. At HTTP session start, we look up the proper htp_cfg_t based on the server ip and pass it to htp_connp_create.  A ptr to the relevant htp_cfg_t is part of the htp_connp_t. The htp_cfg_t contains "hooks". The are registered based on yaml config at init time.

The hooks have lists of type list_t. The list is run with a built in iterator. The iterator is reset at the start of each "hook_run_all". Since multiple flows share the same htp_cfg_t flow A can reset the iterator while flow B is using it. The flow lock has no effect as flows share the htp_cfg_t.

This has been observed in real traffic. hook_response_body_data was run on the same data multiple times, leading to corrupt extracted files.
Harden libhtp code against memory failure conditions.
backport oom fixes

This is a backport of
https://github.com/ironbee/libhtp/commit/9ea5e0e3e4f84f54914d10ee50f618aa575bafe1
fix for #571.

Backport 8bbcdb61cf8e014294be0caf6d6e614ef778c7b4 changes from libhtp 0.5.x.

We now handle ipv6 addresses in uri and host header.
Merge pull request #36 from poona/task_108_bug_571

bug 571