]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect reload: improve signal logic 2001/head
authorVictor Julien <victor@inliniac.net>
Tue, 12 Apr 2016 06:21:13 +0000 (08:21 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 12 Apr 2016 08:15:39 +0000 (10:15 +0200)
src/suricata.c

index 73115613455a939757f79094ad4def750bb7b79f..68736961f77d581f80717c856274843d8bfa184f 100644 (file)
@@ -2476,14 +2476,21 @@ int main(int argc, char **argv)
             if (suri.sig_file != NULL) {
                 SCLogWarning(SC_ERR_LIVE_RULE_SWAP, "Live rule reload not "
                         "possible if -s or -S option used at runtime.");
+                sigusr2_count--;
             } else {
-                DetectEngineReload(conf_filename, &suri);
+                if (!(DetectEngineReloadIsStart())) {
+                    DetectEngineReloadStart();
+                    DetectEngineReload(conf_filename, &suri);
+                    DetectEngineReloadSetDone();
+                    sigusr2_count--;
+                }
             }
-            sigusr2_count--;
+
         } else if (DetectEngineReloadIsStart()) {
             if (suri.sig_file != NULL) {
                 SCLogWarning(SC_ERR_LIVE_RULE_SWAP, "Live rule reload not "
                         "possible if -s or -S option used at runtime.");
+                DetectEngineReloadSetDone();
             } else {
                 DetectEngineReload(conf_filename, &suri);
                 DetectEngineReloadSetDone();