From 86ed5815cb42dfd5e4f27bfab4797b86f3234568 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 5 Apr 2019 11:20:24 +0200 Subject: [PATCH] instance: set system vs user mode --- src/runmodes.c | 13 +++++++++++++ src/runmodes.h | 1 + src/suricata.c | 1 + src/suricata.h | 1 + 4 files changed, 16 insertions(+) diff --git a/src/runmodes.c b/src/runmodes.c index 90f986cca4..7c5ec897be 100644 --- a/src/runmodes.c +++ b/src/runmodes.c @@ -492,6 +492,19 @@ int RunModeOutputFiledataEnabled(void) return filedata_logger_count > 0; } +bool IsRunModeSystem(enum RunModes run_mode_to_check) +{ + switch (run_mode_to_check) { + case RUNMODE_PCAP_FILE: + case RUNMODE_ERF_FILE: + case RUNMODE_ENGINE_ANALYSIS: + return false; + break; + default: + return true; + } +} + bool IsRunModeOffline(int run_mode_to_check) { switch(run_mode_to_check) { diff --git a/src/runmodes.h b/src/runmodes.h index 8fe8fa1d60..4ad83be94d 100644 --- a/src/runmodes.h +++ b/src/runmodes.h @@ -90,6 +90,7 @@ int RunModeOutputFileEnabled(void); int RunModeOutputFiledataEnabled(void); /** bool indicating if run mode is offline */ bool IsRunModeOffline(int run_mode_to_check); +bool IsRunModeSystem(enum RunModes run_mode_to_check); void RunModeEnablesBypassManager(void); int RunModeNeedsBypassManager(void); diff --git a/src/suricata.c b/src/suricata.c index e00df93615..02bc9c8398 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -2096,6 +2096,7 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri) suri->run_mode = RUNMODE_ENGINE_ANALYSIS; suri->offline = IsRunModeOffline(suri->run_mode); + suri->system = IsRunModeSystem(suri->run_mode); ret = SetBpfString(optind, argv); if (ret != TM_ECODE_OK) diff --git a/src/suricata.h b/src/suricata.h index e62956698b..2a11960a73 100644 --- a/src/suricata.h +++ b/src/suricata.h @@ -150,6 +150,7 @@ typedef struct SCInstance_ { uint32_t userid; uint32_t groupid; #endif /* OS_WIN32 */ + bool system; int delayed_detect; int disabled_detect; int daemon;