]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stats: disable stats if no loggers are enabled
authorVictor Julien <victor@inliniac.net>
Mon, 3 Nov 2014 12:00:26 +0000 (13:00 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 3 Dec 2014 10:40:16 +0000 (11:40 +0100)
src/counters.c
src/output-stats.c
src/output-stats.h
src/util-error.c
src/util-error.h

index ec28d2e062db74e2ab0ee3816add1de132de7d3d..6f2333ce97f04ffad335c5d898809422c5ce857a 100644 (file)
@@ -190,6 +190,12 @@ static void SCPerfInitOPCtx(void)
             sc_counter_tts = (uint32_t) atoi(interval);
     }
 
+    if (!OutputStatsLoggersRegistered()) {
+        SCLogWarning(SC_WARN_NO_STATS_LOGGERS, "stats are enabled but no loggers are active");
+        sc_counter_enabled = FALSE;
+        SCReturn;
+    }
+
     /* Store the engine start time */
     time(&sc_start_time);
 
index df6fa1b09b37ae4df416ca9f48d3f2bd15a2e995..a6752fc5b7aee2186b690c641556fcd68c3ae899 100644 (file)
@@ -222,6 +222,13 @@ void TmModuleStatsLoggerRegister (void)
     tmm_modules[TMM_STATSLOGGER].cap_flags = 0;
 }
 
+int OutputStatsLoggersRegistered(void)
+{
+    if (list != NULL)
+        return 1;
+    return 0;
+}
+
 void OutputStatsShutdown(void)
 {
     OutputStatsLogger *logger = list;
index adb3d117610a6dcc95c58099e7852e5d80514537..6ca89f931bedabe83297843e4d5d9a55d4dd79bf 100644 (file)
@@ -48,6 +48,8 @@ int OutputRegisterStatsLogger(const char *name, StatsLogger LogFunc, OutputCtx *
 
 void TmModuleStatsLoggerRegister (void);
 
+int OutputStatsLoggersRegistered(void);
+
 void OutputStatsShutdown(void);
 
 #endif /* __OUTPUT_STATS_H__ */
index 8da681ac3dc5de47e77e3b66ff7dd190a0cea9b0..454f8f3ff21bd95504e70553e89f671fec9d07f3 100644 (file)
@@ -300,6 +300,7 @@ const char * SCErrorToString(SCError err)
         CASE_CODE (SC_ERR_PCIE_INIT_FAILED);
         CASE_CODE (SC_WARN_LUA_SCRIPT);
         CASE_CODE (SC_ERR_LUA_SCRIPT);
+        CASE_CODE (SC_WARN_NO_STATS_LOGGERS);
     }
 
     return "UNKNOWN_ERROR";
index 7d715529051378a1a3b026e012e4f3b49fb8d8b8..21fc61116042462ae31edcc651106a56570d100e 100644 (file)
@@ -289,6 +289,7 @@ typedef enum {
     SC_WARN_NFLOG_SETSOCKOPT,
     SC_WARN_LUA_SCRIPT,
     SC_ERR_LUA_SCRIPT,
+    SC_WARN_NO_STATS_LOGGERS,
 } SCError;
 
 const char *SCErrorToString(SCError);