]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
yaml: remove conf_filename global
authorVictor Julien <victor@inliniac.net>
Tue, 31 May 2016 14:21:50 +0000 (16:21 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 31 May 2016 14:21:50 +0000 (16:21 +0200)
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.

src/detect-engine.c
src/detect-engine.h
src/suricata.c
src/suricata.h

index 3d6f51350516a4a8c4125402756a5d9994494b98..24385e0e9fcdf66fbdd7d288d60e78f70fac2499 100644 (file)
@@ -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
index 70b18133fcb3d7267b5f796e489b427fff73f74e..64c241e16612c5faadbdf148c175365e5e7f2b45 100644 (file)
@@ -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);
index f3b6d4f9858f3cacf0b04ce4af51d76e97b0671f..cad97fcfe0080dbad0a8bcb510f0fcac7486a979 100644 (file)
@@ -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();
             }
         }
index b361b39329935d766776ad0f20b60d7ae6173ea0..1edd129d81e88437c786a999a858bdf98ce6d0bd 100644 (file)
@@ -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: