exit(EXIT_FAILURE);
}
+ /* Load configuration file, could be done earlier but must be done
+ * before SuricataInit, but even then its still optional as you
+ * may be programmatically configuration Suricata. */
+ if (SCLoadYamlConfig() != TM_ECODE_OK) {
+ exit(EXIT_FAILURE);
+ }
+
SuricataInit();
SuricataPostInit();
exit(EXIT_FAILURE);
}
- /* Initialization tasks: Loading config, setup logging */
+ /* Load yaml configuration file if provided. */
+ if (SCLoadYamlConfig() != TM_ECODE_OK) {
+ exit(EXIT_FAILURE);
+ }
+
+ /* Initialization tasks: apply configuration, drop privileges,
+ * etc. */
SuricataInit();
/* Post-initialization tasks: wait on thread start/running and get ready for the main loop. */
TmModuleDecodeDPDKRegister();
}
-static TmEcode LoadYamlConfig(SCInstance *suri)
+TmEcode SCLoadYamlConfig(void)
{
SCEnter();
+ SCInstance *suri = &suricata;
+
if (suri->conf_filename == NULL)
suri->conf_filename = DEFAULT_CONF_FILE;
/* Initializations for global vars, queues, etc (memsets, mutex init..) */
GlobalsInitPreConfig();
- /* Load yaml configuration file if provided. */
- if (LoadYamlConfig(&suricata) != TM_ECODE_OK) {
- exit(EXIT_FAILURE);
- }
-
if (suricata.run_mode == RUNMODE_DUMP_CONFIG) {
ConfDump();
exit(EXIT_SUCCESS);
int SCFinalizeRunMode(void);
TmEcode SCParseCommandLine(int argc, char **argv);
int SCStartInternalRunMode(int argc, char **argv);
+TmEcode SCLoadYamlConfig(void);
void PreRunInit(const int runmode);
void PreRunPostPrivsDropInit(const int runmode);