/** \brief main detection engine ctx */
typedef struct DetectEngineCtx_ {
- uint8_t flags;
int failure_fatal;
int tenant_id;
DetectEngineIPOnlyCtx io_ctx;
ThresholdCtx ths_ctx;
+ uint8_t flags; /**< only DE_QUIET */
uint8_t mpm_matcher; /**< mpm matcher this ctx uses */
uint16_t spm_matcher; /**< spm matcher this ctx uses */
+ /* maximum recursion depth for content inspection */
+ int inspection_recursion_limit;
+
/* spm thread context prototype, built as spm matchers are constructed and
* later used to construct thread context for each thread. */
SpmGlobalThreadCtx *spm_global_thread_ctx;
uint16_t max_uniq_toclient_groups;
uint16_t max_uniq_toserver_groups;
- /* specify the configuration for mpm context factory */
- uint8_t sgh_mpm_ctx_cnf;
-
/* max flowbit id that is used */
uint32_t max_fb_id;
MpmCtxFactoryContainer *mpm_ctx_factory_container;
- /* maximum recursion depth for content inspection */
- int inspection_recursion_limit;
-
/* array containing all sgh's in use so we can loop
* through it in Stage4. */
struct SigGroupHead_ **sgh_array;
uint32_t base64_decode_max_len;
/** Store rule file and line so that parsers can use them in errors. */
- char *rule_file;
int rule_line;
+ char *rule_file;
+ const char *sigerror;
bool sigerror_silent;
bool sigerror_ok;
- const char *sigerror;
+ bool filedata_config_initialized;
+
+ /* specify the configuration for mpm context factory */
+ uint8_t sgh_mpm_ctx_cnf;
+
+ int keyword_id;
/** hash list of keywords that need thread local ctxs */
HashListTable *keyword_hash;
- int keyword_id;
struct {
uint32_t content_limit;
uint32_t content_inspect_min_size;
uint32_t content_inspect_window;
} filedata_config[ALPROTO_MAX];
- bool filedata_config_initialized;
#ifdef PROFILING
struct SCProfileDetectCtx_ *profile_ctx;
HashListTable *buffer_type_hash_id;
uint32_t buffer_type_id;
+ uint32_t app_mpms_list_cnt;
+ DetectBufferMpmRegistery *app_mpms_list;
/* list with app inspect engines. Both the start-time registered ones and
* the rule-time registered ones. */
DetectEngineAppInspectionEngine *app_inspect_engines;
- DetectBufferMpmRegistery *app_mpms_list;
- uint32_t app_mpms_list_cnt;
DetectEnginePktInspectionEngine *pkt_inspect_engines;
DetectBufferMpmRegistery *pkt_mpms_list;
uint32_t pkt_mpms_list_cnt;
/** signatures stats */
SigFileLoaderStat sig_stat;
+ /* list of Fast Pattern registrations. Initially filled using a copy of
+ * `g_fp_support_smlist_list`, then extended at rule loading time if needed */
+ SCFPSupportSMList *fp_support_smlist_list;
+
/** per keyword flag indicating if a prefilter has been
* set for it. If true, the setup function will have to
* run. */
bool sm_types_prefilter[DETECT_TBLSIZE];
bool sm_types_silent_error[DETECT_TBLSIZE];
-
- /* list of Fast Pattern registrations. Initially filled using a copy of
- * `g_fp_support_smlist_list`, then extended at rule loading time if needed */
- SCFPSupportSMList *fp_support_smlist_list;
} DetectEngineCtx;
/* Engine groups profiles (low, medium, high, custom) */