detect-engine: make mpm & spm part of MT stub ctx

As a intermediary step for Hyperscan (MPM) caching,
the MPM config initialization should be part of the default
detect engine context for later dynamic retrieval.

Ticket: 7830
pull/14630/head
Lukas Sismis 4 months ago committed by Victor Julien
parent 7031c26865
commit 08f5abe5e9

@ -2495,6 +2495,20 @@ static DetectEngineCtx *DetectEngineCtxInitReal(
de_ctx->filemagic_thread_ctx_id = -1;
de_ctx->tenant_id = tenant_id;
de_ctx->mpm_matcher = PatternMatchDefaultMatcher();
de_ctx->spm_matcher = SinglePatternMatchDefaultMatcher();
if (mpm_table[de_ctx->mpm_matcher].ConfigInit) {
de_ctx->mpm_cfg = mpm_table[de_ctx->mpm_matcher].ConfigInit();
if (de_ctx->mpm_cfg == NULL) {
goto error;
}
}
if (DetectEngineMpmCachingEnabled() && mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet) {
mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet(
de_ctx->mpm_cfg, DetectEngineMpmCachingGetPath());
}
if (type == DETECT_ENGINE_TYPE_DD_STUB || type == DETECT_ENGINE_TYPE_MT_STUB) {
de_ctx->version = DetectEngineGetVersion();
SCLogDebug("stub %u with version %u", type, de_ctx->version);
@ -2511,23 +2525,8 @@ static DetectEngineCtx *DetectEngineCtxInitReal(
}
de_ctx->failure_fatal = (failure_fatal == 1);
de_ctx->mpm_matcher = PatternMatchDefaultMatcher();
de_ctx->spm_matcher = SinglePatternMatchDefaultMatcher();
SCLogConfig("pattern matchers: MPM: %s, SPM: %s",
mpm_table[de_ctx->mpm_matcher].name,
spm_table[de_ctx->spm_matcher].name);
if (mpm_table[de_ctx->mpm_matcher].ConfigInit) {
de_ctx->mpm_cfg = mpm_table[de_ctx->mpm_matcher].ConfigInit();
if (de_ctx->mpm_cfg == NULL) {
goto error;
}
}
if (DetectEngineMpmCachingEnabled() && mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet) {
mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet(
de_ctx->mpm_cfg, DetectEngineMpmCachingGetPath());
}
SCLogConfig("pattern matchers: MPM: %s, SPM: %s", mpm_table[de_ctx->mpm_matcher].name,
spm_table[de_ctx->spm_matcher].name);
de_ctx->spm_global_thread_ctx = SpmInitGlobalThreadCtx(de_ctx->spm_matcher);
if (de_ctx->spm_global_thread_ctx == NULL) {
SCLogDebug("Unable to alloc SpmGlobalThreadCtx.");

Loading…
Cancel
Save