From c72b7f83b87982b7b03600b08e8fd6d75da9bfa0 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 12 Feb 2015 12:08:33 +0100 Subject: [PATCH] multi-detect: error on start if no selector registered Force user to select the method at startup. --- src/detect-engine.c | 6 ++++++ src/util-error.c | 1 + src/util-error.h | 1 + 3 files changed, 8 insertions(+) diff --git a/src/detect-engine.c b/src/detect-engine.c index 3c6256de0a..5e0ce3f78c 100644 --- a/src/detect-engine.c +++ b/src/detect-engine.c @@ -1998,6 +1998,12 @@ static DetectEngineThreadCtx *DetectEngineThreadCtxInitForMT(ThreadVars *tv) DetectEngineCtx *list = master->list; DetectEngineThreadCtx **tenant_det_ctxs = NULL; + if (master->tenant_selector == TENANT_SELECTOR_UNKNOWN) { + SCLogError(SC_ERR_MT_NO_SELECTOR, "no tenant selector set: " + "set using multi-detect.selector"); + return NULL; + } + while (list) { if (list->tenant_id > max_tenant_id) max_tenant_id = list->tenant_id; diff --git a/src/util-error.c b/src/util-error.c index fd52a4d264..cb59c0f564 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -307,6 +307,7 @@ const char * SCErrorToString(SCError err) CASE_CODE (SC_ERR_NETMAP_CREATE); CASE_CODE (SC_ERR_NETMAP_READ); CASE_CODE (SC_ERR_IPPAIR_INIT); + CASE_CODE (SC_ERR_MT_NO_SELECTOR); } return "UNKNOWN_ERROR"; diff --git a/src/util-error.h b/src/util-error.h index 83529d0cdf..97c1cd23d2 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -296,6 +296,7 @@ typedef enum { SC_ERR_NETMAP_READ, SC_ERR_THREAD_DEINIT, /**< thread's deinit function failed */ SC_ERR_IPPAIR_INIT, + SC_ERR_MT_NO_SELECTOR, } SCError; const char *SCErrorToString(SCError); -- 2.47.2