diff --git a/src/suricata.c b/src/suricata.c index a69a8a44d3..e22e0a9cef 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -945,7 +945,7 @@ static TmEcode LoadYamlConfig(SCInstance *suri) SCReturnInt(TM_ECODE_OK); } -static TmEcode ParseInterfacesList(int runmode, char *pcap_dev) +static TmEcode ParseInterfacesList(const int runmode, char *pcap_dev) { SCEnter(); @@ -2128,6 +2128,9 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri) return TM_ECODE_FAILED; } + /* save the runmode from the commandline (if any) */ + suri->aux_run_mode = suri->run_mode; + if (list_app_layer_protocols) suri->run_mode = RUNMODE_LIST_APP_LAYERS; if (list_keywords) @@ -2976,7 +2979,7 @@ int main(int argc, char **argv) LogVersion(); UtilCpuPrintSummary(); - if (ParseInterfacesList(suricata.run_mode, suricata.pcap_dev) != TM_ECODE_OK) { + if (ParseInterfacesList(suricata.aux_run_mode, suricata.pcap_dev) != TM_ECODE_OK) { exit(EXIT_FAILURE); } diff --git a/src/suricata.h b/src/suricata.h index 99e48aacad..33ce1678a5 100644 --- a/src/suricata.h +++ b/src/suricata.h @@ -132,6 +132,7 @@ PacketQueue trans_q[256]; typedef struct SCInstance_ { enum RunModes run_mode; + enum RunModes aux_run_mode; char pcap_dev[128]; char *sig_file;