]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Factorize Signature loading
authorEric Leblond <eric@regit.org>
Tue, 14 May 2013 08:38:11 +0000 (10:38 +0200)
committerEric Leblond <eric@regit.org>
Tue, 30 Jul 2013 13:22:34 +0000 (15:22 +0200)
src/suricata.c

index 2c35ed59689f70ed2578056b1a2f377d8458edc3..ac014f93e2c3a5a6d37d8e41e4f2fa4bbb2fa90b 100644 (file)
@@ -1652,6 +1652,20 @@ int SuriStartInternalRunMode(struct SuriInstance *suri, int argc, char **argv)
     return TM_ECODE_OK;
 }
 
+static int SuriLoadSignatures(DetectEngineCtx *de_ctx,struct SuriInstance *suri)
+{
+    if (SigLoadSignatures(de_ctx, suri->sig_file, suri->sig_file_exclusive) < 0) {
+        if (suri->sig_file == NULL) {
+            SCLogError(SC_ERR_OPENING_FILE, "Signature file has not been provided");
+        } else {
+            SCLogError(SC_ERR_NO_RULES_LOADED, "Loading signatures failed.");
+        }
+        if (de_ctx->failure_fatal)
+            return TM_ECODE_FAILED;
+    }
+    return TM_ECODE_OK;
+}
+
 int main(int argc, char **argv)
 {
     struct SuriInstance suri;
@@ -1949,15 +1963,8 @@ int main(int argc, char **argv)
     }
 
     if (!suri.delayed_detect) {
-        if (SigLoadSignatures(de_ctx, suri.sig_file, suri.sig_file_exclusive) < 0) {
-            if (suri.sig_file == NULL) {
-                SCLogError(SC_ERR_OPENING_FILE, "Signature file has not been provided");
-            } else {
-                SCLogError(SC_ERR_NO_RULES_LOADED, "Loading signatures failed.");
-            }
-            if (de_ctx->failure_fatal)
-                exit(EXIT_FAILURE);
-        }
+        if (SuriLoadSignatures(de_ctx, &suri) != TM_ECODE_OK)
+            exit(EXIT_FAILURE);
         if (suri.run_mode == RUNMODE_ENGINE_ANALYSIS) {
             exit(EXIT_SUCCESS);
         }
@@ -2036,15 +2043,8 @@ int main(int argc, char **argv)
     TmThreadContinueThreads();
 
     if (suri.delayed_detect) {
-        if (SigLoadSignatures(de_ctx, suri.sig_file, suri.sig_file_exclusive) < 0) {
-            if (suri.sig_file == NULL) {
-                SCLogError(SC_ERR_OPENING_FILE, "Signature file has not been provided");
-            } else {
-                SCLogError(SC_ERR_NO_RULES_LOADED, "Loading signatures failed.");
-            }
-            if (de_ctx->failure_fatal)
-                exit(EXIT_FAILURE);
-        }
+        if (SuriLoadSignatures(de_ctx, &suri) != TM_ECODE_OK)
+            exit(EXIT_FAILURE);
         TmThreadActivateDummySlot();
         SCLogInfo("Signature(s) loaded, Detect thread(s) activated.");
     }