suricata: expose and break out configuration loading

Expose LoadYamlConfig as SCLoadYamlConfig and remove it from
SuricataInit. This is required to allow the library user the ability
customize the loading of the configuration, for example doing some
programmatic configuration then loading a configuration file.
pull/10720/head
Jason Ish 2 years ago committed by Victor Julien
parent e38ec7d0a7
commit f104e9cecc

@ -40,6 +40,13 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE); 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(); SuricataInit();
SuricataPostInit(); SuricataPostInit();

@ -44,7 +44,13 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE); 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(); SuricataInit();
/* Post-initialization tasks: wait on thread start/running and get ready for the main loop. */ /* Post-initialization tasks: wait on thread start/running and get ready for the main loop. */

@ -955,10 +955,12 @@ void RegisterAllModules(void)
TmModuleDecodeDPDKRegister(); TmModuleDecodeDPDKRegister();
} }
static TmEcode LoadYamlConfig(SCInstance *suri) TmEcode SCLoadYamlConfig(void)
{ {
SCEnter(); SCEnter();
SCInstance *suri = &suricata;
if (suri->conf_filename == NULL) if (suri->conf_filename == NULL)
suri->conf_filename = DEFAULT_CONF_FILE; suri->conf_filename = DEFAULT_CONF_FILE;
@ -2904,11 +2906,6 @@ void SuricataInit(void)
/* Initializations for global vars, queues, etc (memsets, mutex init..) */ /* Initializations for global vars, queues, etc (memsets, mutex init..) */
GlobalsInitPreConfig(); GlobalsInitPreConfig();
/* Load yaml configuration file if provided. */
if (LoadYamlConfig(&suricata) != TM_ECODE_OK) {
exit(EXIT_FAILURE);
}
if (suricata.run_mode == RUNMODE_DUMP_CONFIG) { if (suricata.run_mode == RUNMODE_DUMP_CONFIG) {
ConfDump(); ConfDump();
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);

@ -203,6 +203,7 @@ void PostConfLoadedDetectSetup(SCInstance *suri);
int SCFinalizeRunMode(void); int SCFinalizeRunMode(void);
TmEcode SCParseCommandLine(int argc, char **argv); TmEcode SCParseCommandLine(int argc, char **argv);
int SCStartInternalRunMode(int argc, char **argv); int SCStartInternalRunMode(int argc, char **argv);
TmEcode SCLoadYamlConfig(void);
void PreRunInit(const int runmode); void PreRunInit(const int runmode);
void PreRunPostPrivsDropInit(const int runmode); void PreRunPostPrivsDropInit(const int runmode);

Loading…
Cancel
Save