]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
filestore: fix global counter init in unix socket mode
authorJason Ish <jason.ish@oisf.net>
Fri, 18 Dec 2020 17:34:30 +0000 (11:34 -0600)
committerVictor Julien <victor@inliniac.net>
Mon, 1 Mar 2021 09:53:08 +0000 (10:53 +0100)
Move initialization of filestore global counter to PreRunInit,
so they get registered during program initialization, or as
required in unix-socket mode, initialized for each file run.

Fixes Redmine issue:
https://redmine.openinfosecfoundation.org/issues/4216

(cherry picked from commit 0aed5e188b214d56107e66ea8e38dfb7d5a13758)

src/output-filestore.c
src/output-filestore.h
src/suricata.c

index e70bb466849fd8299ec932bac9ecd42bed605dec..f96fbf7d0aa648721d0db4599e4f689efbda2be9 100644 (file)
@@ -507,9 +507,6 @@ static OutputInitResult OutputFilestoreLogInitCtx(ConfNode *conf)
         }
     }
 
-    StatsRegisterGlobalCounter("file_store.open_files",
-            OutputFilestoreOpenFilesCounter);
-
     result.ctx = output_ctx;
     result.ok = true;
     SCReturnCT(result, "OutputInitResult");
@@ -529,3 +526,10 @@ void OutputFilestoreRegister(void)
     SC_ATOMIC_SET(filestore_open_file_cnt, 0);
 #endif
 }
+
+void OutputFilestoreRegisterGlobalCounters(void)
+{
+#ifdef HAVE_NSS
+    StatsRegisterGlobalCounter("file_store.open_files", OutputFilestoreOpenFilesCounter);
+#endif
+}
index 645e1bfc1169716af1f4705fda657ad12d627367..33cd9713186bd70ecae9df4bb69302cb1b819fba 100644 (file)
@@ -20,5 +20,6 @@
 
 void OutputFilestoreRegister(void);
 void OutputFilestoreInitConfig(void);
+void OutputFilestoreRegisterGlobalCounters(void);
 
 #endif /* __OUTPUT_FILESTORE_H__ */
index 9f4c8d4ba35196860548deadbd0cd639a720af6b..96d48ce0ff37abf806e7ceeabe7d22d0cd64c73f 100644 (file)
 #include "app-layer-smb.h"
 #include "app-layer-dcerpc.h"
 
+#include "output-filestore.h"
+
 #include "util-decode-der.h"
 #include "util-ebpf.h"
 #include "util-radix-tree.h"
@@ -2318,6 +2320,7 @@ void PreRunInit(const int runmode)
     StreamTcpInitConfig(STREAM_VERBOSE);
     AppLayerParserPostStreamSetup();
     AppLayerRegisterGlobalCounters();
+    OutputFilestoreRegisterGlobalCounters();
 }
 
 /* tasks we need to run before packets start flowing,