* \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;
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
/** set caps or not */
int sc_set_caps;
-char *conf_filename = NULL;
-
int EngineModeIsIPS(void)
{
return (g_engine_mode == ENGINE_MODE_IPS);
}
-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);
}
}
break;
case 'c':
- conf_filename = optarg;
+ suri->conf_filename = optarg;
break;
case 'T':
SCLogInfo("Running suricata under test mode");
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;
}
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);
}
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);
}
}
/* Load yaml configuration file if provided. */
- if (LoadYamlConfig() != TM_ECODE_OK) {
+ if (LoadYamlConfig(&suri) != TM_ECODE_OK) {
exit(EXIT_FAILURE);
}
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.");
}
} else {
if (!(DetectEngineReloadIsStart())) {
DetectEngineReloadStart();
- DetectEngineReload(conf_filename, &suri);
+ DetectEngineReload(&suri);
DetectEngineReloadSetDone();
sigusr2_count--;
}
"possible if -s or -S option used at runtime.");
DetectEngineReloadSetDone();
} else {
- DetectEngineReload(conf_filename, &suri);
+ DetectEngineReload(&suri);
DetectEngineReloadSetDone();
}
}