yaml: remove conf_filename global

conf_filename was a global pointer to the filename of the yaml.

Move into SCInstance. This reduces it's scope and cleans up the code.
pull/2129/head
Victor Julien 9 years ago
parent 4b9a62d1fe
commit 36535cbc61

@ -2534,7 +2534,7 @@ static int reloads = 0;
* \retval -1 error
* \retval 0 ok
*/
int DetectEngineReload(const char *filename, SCInstance *suri)
int DetectEngineReload(SCInstance *suri)
{
DetectEngineCtx *new_de_ctx = NULL;
DetectEngineCtx *old_de_ctx = NULL;
@ -2542,16 +2542,18 @@ int DetectEngineReload(const char *filename, SCInstance *suri)
char prefix[128];
memset(prefix, 0, sizeof(prefix));
if (filename != NULL) {
if (suri->conf_filename != NULL) {
snprintf(prefix, sizeof(prefix), "detect-engine-reloads.%d", reloads++);
if (ConfYamlLoadFileWithPrefix(filename, prefix) != 0) {
SCLogError(SC_ERR_CONF_YAML_ERROR, "failed to load yaml %s", filename);
if (ConfYamlLoadFileWithPrefix(suri->conf_filename, prefix) != 0) {
SCLogError(SC_ERR_CONF_YAML_ERROR, "failed to load yaml %s",
suri->conf_filename);
return -1;
}
ConfNode *node = ConfGetNode(prefix);
if (node == NULL) {
SCLogError(SC_ERR_CONF_YAML_ERROR, "failed to properly setup yaml %s", filename);
SCLogError(SC_ERR_CONF_YAML_ERROR, "failed to properly setup yaml %s",
suri->conf_filename);
return -1;
}
#if 0

@ -75,7 +75,7 @@ void DetectEnginePruneFreeList(void);
int DetectEngineMoveToFreeList(DetectEngineCtx *de_ctx);
DetectEngineCtx *DetectEngineReference(DetectEngineCtx *);
void DetectEngineDeReference(DetectEngineCtx **de_ctx);
int DetectEngineReload(const char *filename, SCInstance *suri);
int DetectEngineReload(SCInstance *suri);
int DetectEngineEnabled(void);
int DetectEngineMTApply(void);
int DetectEngineMultiTenantEnabled(void);

@ -248,8 +248,6 @@ int g_detect_disabled = 0;
/** set caps or not */
int sc_set_caps;
char *conf_filename = NULL;
int EngineModeIsIPS(void)
{
return (g_engine_mode == ENGINE_MODE_IPS);
@ -927,14 +925,14 @@ void RegisterAllModules()
}
static TmEcode LoadYamlConfig(void)
static TmEcode LoadYamlConfig(SCInstance *suri)
{
SCEnter();
if (conf_filename == NULL)
conf_filename = DEFAULT_CONF_FILE;
if (suri->conf_filename == NULL)
suri->conf_filename = DEFAULT_CONF_FILE;
if (ConfYamlLoadFile(conf_filename) != 0) {
if (ConfYamlLoadFile(suri->conf_filename) != 0) {
/* Error already displayed. */
SCReturnInt(TM_ECODE_FAILED);
}
@ -1684,7 +1682,7 @@ static TmEcode ParseCommandLine(int argc, char** argv, SCInstance *suri)
}
break;
case 'c':
conf_filename = optarg;
suri->conf_filename = optarg;
break;
case 'T':
SCLogInfo("Running suricata under test mode");
@ -2168,7 +2166,7 @@ static int ConfigGetCaptureValue(SCInstance *suri)
if (max_pending_packets >= 65535) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"Maximum max-pending-packets setting is 65534. "
"Please check %s for errors", conf_filename);
"Please check %s for errors", suri->conf_filename);
return TM_ECODE_FAILED;
}
@ -2244,7 +2242,7 @@ static int PostConfLoadedSetup(SCInstance *suri)
if (ConfigCheckLogDirectory(suri->log_dir) != TM_ECODE_OK) {
SCLogError(SC_ERR_LOGDIR_CONFIG, "The logging directory \"%s\" "
"supplied by %s (default-log-dir) doesn't exist. "
"Shutting down the engine", suri->log_dir, conf_filename);
"Shutting down the engine", suri->log_dir, suri->conf_filename);
SCReturnInt(TM_ECODE_FAILED);
}
@ -2326,12 +2324,14 @@ static int PostConfLoadedSetup(SCInstance *suri)
if (DetectAddressTestConfVars() < 0) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"basic address vars test failed. Please check %s for errors", conf_filename);
"basic address vars test failed. Please check %s for errors",
suri->conf_filename);
SCReturnInt(TM_ECODE_FAILED);
}
if (DetectPortTestConfVars() < 0) {
SCLogError(SC_ERR_INVALID_YAML_CONF_ENTRY,
"basic port vars test failed. Please check %s for errors", conf_filename);
"basic port vars test failed. Please check %s for errors",
suri->conf_filename);
SCReturnInt(TM_ECODE_FAILED);
}
@ -2446,7 +2446,7 @@ int main(int argc, char **argv)
}
/* Load yaml configuration file if provided. */
if (LoadYamlConfig() != TM_ECODE_OK) {
if (LoadYamlConfig(&suri) != TM_ECODE_OK) {
exit(EXIT_FAILURE);
}
@ -2586,7 +2586,7 @@ int main(int argc, char **argv)
if (suri.delayed_detect) {
/* force 'reload', this will load the rules and swap engines */
DetectEngineReload(NULL, &suri);
DetectEngineReload(&suri);
SCLogNotice("Signature(s) loaded, Detect thread(s) activated.");
}
@ -2626,7 +2626,7 @@ int main(int argc, char **argv)
} else {
if (!(DetectEngineReloadIsStart())) {
DetectEngineReloadStart();
DetectEngineReload(conf_filename, &suri);
DetectEngineReload(&suri);
DetectEngineReloadSetDone();
sigusr2_count--;
}
@ -2638,7 +2638,7 @@ int main(int argc, char **argv)
"possible if -s or -S option used at runtime.");
DetectEngineReloadSetDone();
} else {
DetectEngineReload(conf_filename, &suri);
DetectEngineReload(&suri);
DetectEngineReloadSetDone();
}
}

@ -156,6 +156,7 @@ typedef struct SCInstance_ {
char *log_dir;
const char *progname; /**< pointer to argv[0] */
const char *conf_filename;
} SCInstance;
@ -167,8 +168,6 @@ extern volatile uint8_t suricata_ctl_flags;
/* uppercase to lowercase conversion lookup table */
uint8_t g_u8_lowercasetable[256];
extern char *conf_filename;
/* marco to do the actual lookup */
//#define u8_tolower(c) g_u8_lowercasetable[(c)]
// these 2 are slower:

Loading…
Cancel
Save