From: Jason Ish Date: Fri, 18 Dec 2020 17:34:30 +0000 (-0600) Subject: filestore: fix global counter init in unix socket mode X-Git-Tag: suricata-5.0.6~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0cdbdd597aed2971bc2dd571a55a3be39aefaaff;p=thirdparty%2Fsuricata.git filestore: fix global counter init in unix socket mode 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) --- diff --git a/src/output-filestore.c b/src/output-filestore.c index e70bb46684..f96fbf7d0a 100644 --- a/src/output-filestore.c +++ b/src/output-filestore.c @@ -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 +} diff --git a/src/output-filestore.h b/src/output-filestore.h index 645e1bfc11..33cd971318 100644 --- a/src/output-filestore.h +++ b/src/output-filestore.h @@ -20,5 +20,6 @@ void OutputFilestoreRegister(void); void OutputFilestoreInitConfig(void); +void OutputFilestoreRegisterGlobalCounters(void); #endif /* __OUTPUT_FILESTORE_H__ */ diff --git a/src/suricata.c b/src/suricata.c index 9f4c8d4ba3..96d48ce0ff 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -131,6 +131,8 @@ #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,