]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Live rule swap logs added to report SigLoadSignatures() failure. Also set
authorAnoop Saldanha <anoopsaldanha@gmail.com>
Wed, 20 Mar 2013 12:49:25 +0000 (18:19 +0530)
committerVictor Julien <victor@inliniac.net>
Wed, 20 Mar 2013 16:13:32 +0000 (17:13 +0100)
thread_closed flag on exit for live swap thread.

src/detect-engine.c
src/util-error.c
src/util-error.h

index 50298309eac787e9f93a2de3bebe3d580dd5188e..11a06d969cd24e3a66eab50d9a1bfb38d8bb8c57 100644 (file)
@@ -421,6 +421,13 @@ static void *DetectEngineLiveRuleSwap(void *arg)
         SCLogError(SC_ERR_NO_RULES_LOADED, "Loading signatures failed.");
         if (de_ctx->failure_fatal)
             exit(EXIT_FAILURE);
+        DetectEngineCtxFree(de_ctx);
+        SCLogError(SC_ERR_LIVE_RULE_SWAP,  "Failure encountered while "
+                   "loading new ruleset with live swap.");
+        SCLogInfo("===== Live rule swap DONE =====");
+        TmThreadsSetFlag(tv_local, THV_CLOSED);
+        pthread_exit(NULL);
+        return NULL;
     }
 
     SCThresholdConfInitContext(de_ctx, NULL);
index 96b33c0b1a4c4044d6114538a0e85749e91307ba..db91a3b2fbad55b0a77af3d6335a5bdbdd3e33ce 100644 (file)
@@ -245,6 +245,7 @@ const char * SCErrorToString(SCError err)
         CASE_CODE (SC_ERR_DEFRAG_INIT);
         CASE_CODE (SC_ERR_NO_REPUTATION);
         CASE_CODE (SC_ERR_NOT_SUPPORTED);
+        CASE_CODE (SC_ERR_LIVE_RULE_SWAP);
         default:
             return "UNKNOWN_ERROR";
     }
index 2f823246ae3b05c46f24c1f19ebb09dc15281afb..932871094b0fba116cbdee950bb1d552bd7e007d 100644 (file)
@@ -258,6 +258,7 @@ typedef enum {
     SC_ERR_IPFW_SETSOCKOPT,
     SC_ERR_NO_GEOIP_SUPPORT,
     SC_ERR_GEOIP_ERROR,
+    SC_ERR_LIVE_RULE_SWAP,
 } SCError;
 
 const char *SCErrorToString(SCError);