Hyperscan integration for Snort 18.104.22.168
This patch adds Hyperscan acceleration support for a number of pattern matching tasks in Snort (versions 22.214.171.124 and 126.96.36.199 tested).
It uses Hyperscan in three modules within Snort:
- A multi-pattern (MPSE) literal matcher, called "hyperscan".
- A faster single-pattern content string matcher, replacing the Boyer-Moore approach used by default.
- A prefilter for PCRE, where Hyperscan is used as a prefilter check for regex options before PCRE is run. Expressions that are expensive to evaluate in PCRE may be avoided entirely depending on the result of the prefilter.
This release fixes a bug where Hyperscan was not correctly protecting its scratch data structures during a reload (e.g. on receipt of a HUP signal).