From 7f1e57432604d861d41899b99f858161509741d5 Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Fri, 18 Dec 2020 11:34:30 -0600 Subject: [PATCH] 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 --- src/output-filestore.c | 10 +++++++--- src/output-filestore.h | 1 + src/suricata.c | 3 +++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/output-filestore.c b/src/output-filestore.c index a3f95c2362..cfb06cbad2 100644 --- a/src/output-filestore.c +++ b/src/output-filestore.c @@ -527,9 +527,6 @@ static OutputInitResult OutputFilestoreLogInitCtx(ConfNode *conf) } } - StatsRegisterGlobalCounter("file_store.open_files", - OutputFilestoreOpenFilesCounter); - result.ctx = output_ctx; result.ok = true; SCReturnCT(result, "OutputInitResult"); @@ -549,3 +546,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 3d6faf15c8..07b8023461 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -129,6 +129,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" @@ -2026,6 +2028,7 @@ void PreRunInit(const int runmode) StreamTcpInitConfig(STREAM_VERBOSE); AppLayerParserPostStreamSetup(); AppLayerRegisterGlobalCounters(); + OutputFilestoreRegisterGlobalCounters(); } /* tasks we need to run before packets start flowing,