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-7.0.0-beta1~1747 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0aed5e188b214d56107e66ea8e38dfb7d5a13758;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 --- diff --git a/src/output-filestore.c b/src/output-filestore.c index 00ae764a27..a1b5ece5dc 100644 --- a/src/output-filestore.c +++ b/src/output-filestore.c @@ -525,9 +525,6 @@ static OutputInitResult OutputFilestoreLogInitCtx(ConfNode *conf) } } - StatsRegisterGlobalCounter("file_store.open_files", - OutputFilestoreOpenFilesCounter); - result.ctx = output_ctx; result.ok = true; SCReturnCT(result, "OutputInitResult"); @@ -543,3 +540,8 @@ void OutputFilestoreRegister(void) SC_ATOMIC_INIT(filestore_open_file_cnt); SC_ATOMIC_SET(filestore_open_file_cnt, 0); } + +void OutputFilestoreRegisterGlobalCounters(void) +{ + StatsRegisterGlobalCounter("file_store.open_files", OutputFilestoreOpenFilesCounter); +} 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 7b3491fe2e..c2ba5e3cc0 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -125,6 +125,8 @@ #include "app-layer-smb.h" #include "app-layer-dcerpc.h" +#include "output-filestore.h" + #include "util-ebpf.h" #include "util-radix-tree.h" #include "util-host-os-info.h" @@ -2015,6 +2017,7 @@ void PreRunInit(const int runmode) StreamTcpInitConfig(STREAM_VERBOSE); AppLayerParserPostStreamSetup(); AppLayerRegisterGlobalCounters(); + OutputFilestoreRegisterGlobalCounters(); } /* tasks we need to run before packets start flowing,