From 9376742dc8e8bfc10e1d07a71b4a9c4d82312270 Mon Sep 17 00:00:00 2001 From: Jeff Lucovsky Date: Sat, 14 Feb 2026 09:37:32 -0500 Subject: [PATCH] output/flush: Remove flush functions/registration Remove log flush functions and update registration logic as context-based flushing doesn't require it. Issue: 8286 (cherry picked from commit 1923ca1aa0def3419e988b3763f9d085b2703037) --- src/alert-debuglog.c | 1 - src/alert-fastlog.c | 1 - src/alert-syslog.c | 1 - src/log-flush.c | 12 ------------ src/log-pcap.c | 1 - src/output-eve-stream.c | 1 - src/output-json-alert.c | 9 --------- src/output-json-anomaly.c | 9 --------- src/output-json-arp.c | 1 - src/output-json-common.c | 9 --------- src/output-json-drop.c | 1 - src/output-json-frame.c | 1 - src/output-json-metadata.c | 1 - src/output-json.c | 6 ------ src/output-json.h | 2 -- src/output.c | 18 ------------------ src/output.h | 4 ---- 17 files changed, 78 deletions(-) diff --git a/src/alert-debuglog.c b/src/alert-debuglog.c index e3e07be2fe..8888f47782 100644 --- a/src/alert-debuglog.c +++ b/src/alert-debuglog.c @@ -482,7 +482,6 @@ void AlertDebugLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = AlertDebugLogLogger, - .FlushFunc = NULL, .ConditionFunc = AlertDebugLogCondition, .ThreadInitFunc = AlertDebugLogThreadInit, .ThreadDeinitFunc = AlertDebugLogThreadDeinit, diff --git a/src/alert-fastlog.c b/src/alert-fastlog.c index 75854900ba..398ce8d5e6 100644 --- a/src/alert-fastlog.c +++ b/src/alert-fastlog.c @@ -78,7 +78,6 @@ void AlertFastLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = AlertFastLogger, - .FlushFunc = NULL, .ConditionFunc = AlertFastLogCondition, .ThreadInitFunc = AlertFastLogThreadInit, .ThreadDeinitFunc = AlertFastLogThreadDeinit, diff --git a/src/alert-syslog.c b/src/alert-syslog.c index 7beaaa1be7..e0e3d260c2 100644 --- a/src/alert-syslog.c +++ b/src/alert-syslog.c @@ -386,7 +386,6 @@ void AlertSyslogRegister (void) #ifndef OS_WIN32 OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = AlertSyslogLogger, - .FlushFunc = NULL, .ConditionFunc = AlertSyslogCondition, .ThreadInitFunc = AlertSyslogThreadInit, .ThreadDeinitFunc = AlertSyslogThreadDeinit, diff --git a/src/log-flush.c b/src/log-flush.c index bfe22e1a0c..7022e1359b 100644 --- a/src/log-flush.c +++ b/src/log-flush.c @@ -31,18 +31,6 @@ #include "util-privs.h" #include "util-logopenfile.h" -/** - * \brief Trigger flush of all registered log files - * - * This function is intended to be called at regular intervals to force - * buffered log data to be persisted. With the new design, this simply calls - * LogFileFlushAll() which directly flushes all registered file contexts. - */ -static void WorkerFlushLogs(void) -{ - LogFileFlushAll(); -} - int OutputFlushInterval(void) { intmax_t output_flush_interval = 0; diff --git a/src/log-pcap.c b/src/log-pcap.c index 1cb97fa0a7..e76d62a6dc 100644 --- a/src/log-pcap.c +++ b/src/log-pcap.c @@ -220,7 +220,6 @@ void PcapLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = PcapLog, - .FlushFunc = NULL, .ConditionFunc = PcapLogCondition, .ThreadInitFunc = PcapLogDataInit, .ThreadDeinitFunc = PcapLogDataDeinit, diff --git a/src/output-eve-stream.c b/src/output-eve-stream.c index 88d8bf50b9..da41ef5ea6 100644 --- a/src/output-eve-stream.c +++ b/src/output-eve-stream.c @@ -454,7 +454,6 @@ void EveStreamLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = EveStreamLogger, - .FlushFunc = OutputJsonLogFlush, .ConditionFunc = EveStreamLogCondition, .ThreadInitFunc = EveStreamLogThreadInit, .ThreadDeinitFunc = EveStreamLogThreadDeinit, diff --git a/src/output-json-alert.c b/src/output-json-alert.c index 7d2c6b8222..8cf5679ff7 100644 --- a/src/output-json-alert.c +++ b/src/output-json-alert.c @@ -854,14 +854,6 @@ static int AlertJsonDecoderEvent(ThreadVars *tv, JsonAlertLogThread *aft, const return TM_ECODE_OK; } -static int JsonAlertFlush(ThreadVars *tv, void *thread_data, const Packet *p) -{ - JsonAlertLogThread *aft = thread_data; - SCLogDebug("%s flushing %s", tv->name, ((LogFileCtx *)(aft->ctx->file_ctx))->filename); - OutputJsonFlush(aft->ctx); - return 0; -} - static int JsonAlertLogger(ThreadVars *tv, void *thread_data, const Packet *p) { JsonAlertLogThread *aft = thread_data; @@ -1109,7 +1101,6 @@ void JsonAlertLogRegister (void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonAlertLogger, - .FlushFunc = JsonAlertFlush, .ConditionFunc = JsonAlertLogCondition, .ThreadInitFunc = JsonAlertLogThreadInit, .ThreadDeinitFunc = JsonAlertLogThreadDeinit, diff --git a/src/output-json-anomaly.c b/src/output-json-anomaly.c index 5c8551df43..4392820106 100644 --- a/src/output-json-anomaly.c +++ b/src/output-json-anomaly.c @@ -271,14 +271,6 @@ static int AnomalyJson(ThreadVars *tv, JsonAnomalyLogThread *aft, const Packet * return rc; } -static int JsonAnomalyFlush(ThreadVars *tv, void *thread_data, const Packet *p) -{ - JsonAnomalyLogThread *aft = thread_data; - SCLogDebug("%s flushing %s", tv->name, ((LogFileCtx *)(aft->ctx->file_ctx))->filename); - OutputJsonFlush(aft->ctx); - return 0; -} - static int JsonAnomalyLogger(ThreadVars *tv, void *thread_data, const Packet *p) { JsonAnomalyLogThread *aft = thread_data; @@ -457,7 +449,6 @@ void JsonAnomalyLogRegister (void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonAnomalyLogger, - .FlushFunc = JsonAnomalyFlush, .ConditionFunc = JsonAnomalyLogCondition, .ThreadInitFunc = JsonAnomalyLogThreadInit, .ThreadDeinitFunc = JsonAnomalyLogThreadDeinit, diff --git a/src/output-json-arp.c b/src/output-json-arp.c index 6b1414dbc0..a9c35577d5 100644 --- a/src/output-json-arp.c +++ b/src/output-json-arp.c @@ -105,7 +105,6 @@ void JsonArpLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonArpLogger, - .FlushFunc = NULL, .ConditionFunc = JsonArpLogCondition, .ThreadInitFunc = JsonLogThreadInit, .ThreadDeinitFunc = JsonLogThreadDeinit, diff --git a/src/output-json-common.c b/src/output-json-common.c index 3ac80774b4..02e9a19bf0 100644 --- a/src/output-json-common.c +++ b/src/output-json-common.c @@ -70,15 +70,6 @@ static void OutputJsonLogDeInitCtxSub(OutputCtx *output_ctx) SCFree(output_ctx); } -int OutputJsonLogFlush(ThreadVars *tv, void *thread_data, const Packet *p) -{ - OutputJsonThreadCtx *aft = thread_data; - LogFileCtx *file_ctx = aft->ctx->file_ctx; - SCLogDebug("%s flushing %s", tv->name, file_ctx->filename); - LogFileFlush(file_ctx); - return 0; -} - OutputInitResult OutputJsonLogInitSub(SCConfNode *conf, OutputCtx *parent_ctx) { OutputInitResult result = { NULL, false }; diff --git a/src/output-json-drop.c b/src/output-json-drop.c index ecb14a33ac..a92eb100fb 100644 --- a/src/output-json-drop.c +++ b/src/output-json-drop.c @@ -396,7 +396,6 @@ void JsonDropLogRegister (void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonDropLogger, - .FlushFunc = OutputJsonLogFlush, .ConditionFunc = JsonDropLogCondition, .ThreadInitFunc = JsonDropLogThreadInit, .ThreadDeinitFunc = JsonDropLogThreadDeinit, diff --git a/src/output-json-frame.c b/src/output-json-frame.c index e5353aa3a9..24a9538385 100644 --- a/src/output-json-frame.c +++ b/src/output-json-frame.c @@ -558,7 +558,6 @@ void JsonFrameLogRegister(void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonFrameLogger, - .FlushFunc = OutputJsonLogFlush, .ConditionFunc = JsonFrameLogCondition, .ThreadInitFunc = JsonFrameLogThreadInit, .ThreadDeinitFunc = JsonFrameLogThreadDeinit, diff --git a/src/output-json-metadata.c b/src/output-json-metadata.c index ab94550fc8..2b93e37407 100644 --- a/src/output-json-metadata.c +++ b/src/output-json-metadata.c @@ -96,7 +96,6 @@ void JsonMetadataLogRegister (void) { OutputPacketLoggerFunctions output_logger_functions = { .LogFunc = JsonMetadataLogger, - .FlushFunc = OutputJsonLogFlush, .ConditionFunc = JsonMetadataLogCondition, .ThreadInitFunc = JsonLogThreadInit, .ThreadDeinitFunc = JsonLogThreadDeinit, diff --git a/src/output-json.c b/src/output-json.c index f496df192f..1a3d141aad 100644 --- a/src/output-json.c +++ b/src/output-json.c @@ -988,12 +988,6 @@ int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer) return 0; } -void OutputJsonFlush(OutputJsonThreadCtx *ctx) -{ - LogFileCtx *file_ctx = ctx->file_ctx; - LogFileFlush(file_ctx); -} - void OutputJsonBuilderBuffer( ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *js, OutputJsonThreadCtx *ctx) { diff --git a/src/output-json.h b/src/output-json.h index 1f4fec70d0..a3b6006a49 100644 --- a/src/output-json.h +++ b/src/output-json.h @@ -108,7 +108,6 @@ TmEcode JsonLogThreadDeinit(ThreadVars *t, void *data); void EveAddCommonOptions(const OutputJsonCommonSettings *cfg, const Packet *p, const Flow *f, SCJsonBuilder *js, enum SCOutputJsonLogDirection dir); -int OutputJsonLogFlush(ThreadVars *tv, void *thread_data, const Packet *p); void EveAddMetadata(const Packet *p, const Flow *f, SCJsonBuilder *js); int OutputJSONMemBufferCallback(const char *str, size_t size, void *data); @@ -116,6 +115,5 @@ int OutputJSONMemBufferCallback(const char *str, size_t size, void *data); OutputJsonThreadCtx *CreateEveThreadCtx(ThreadVars *t, OutputJsonCtx *ctx); void FreeEveThreadCtx(OutputJsonThreadCtx *ctx); void JSONFormatAndAddMACAddr(SCJsonBuilder *js, const char *key, const uint8_t *val, bool is_array); -void OutputJsonFlush(OutputJsonThreadCtx *ctx); #endif /* SURICATA_OUTPUT_JSON_H */ diff --git a/src/output.c b/src/output.c index 5d3794a4e0..f870eec39e 100644 --- a/src/output.c +++ b/src/output.c @@ -87,7 +87,6 @@ typedef struct RootLogger_ { OutputLogFunc LogFunc; - OutputFlushFunc FlushFunc; ThreadInitFunc ThreadInit; ThreadDeinitFunc ThreadDeinit; OutputGetActiveCountFunc ActiveCntFunc; @@ -211,7 +210,6 @@ void OutputRegisterPacketModule(LoggerId id, const char *name, const char *conf_ module->conf_name = conf_name; module->InitFunc = InitFunc; module->PacketLogFunc = output_module_functions->LogFunc; - module->PacketFlushFunc = output_module_functions->FlushFunc; module->PacketConditionFunc = output_module_functions->ConditionFunc; module->ThreadInit = output_module_functions->ThreadInitFunc; module->ThreadDeinit = output_module_functions->ThreadDeinitFunc; @@ -251,7 +249,6 @@ void OutputRegisterPacketSubModule(LoggerId id, const char *parent_name, const c module->parent_name = parent_name; module->InitSubFunc = InitFunc; module->PacketLogFunc = output_logger_functions->LogFunc; - module->PacketFlushFunc = output_logger_functions->FlushFunc; module->PacketConditionFunc = output_logger_functions->ConditionFunc; module->ThreadInit = output_logger_functions->ThreadInitFunc; module->ThreadDeinit = output_logger_functions->ThreadDeinitFunc; @@ -785,21 +782,6 @@ void SCOnLoggingReady(void) } } -TmEcode OutputLoggerFlush(ThreadVars *tv, Packet *p, void *thread_data) -{ - LoggerThreadStore *thread_store = (LoggerThreadStore *)thread_data; - RootLogger *logger = TAILQ_FIRST(&active_loggers); - LoggerThreadStoreNode *thread_store_node = TAILQ_FIRST(thread_store); - while (logger && thread_store_node) { - if (logger->FlushFunc) - logger->FlushFunc(tv, p, thread_store_node->thread_data); - - logger = TAILQ_NEXT(logger, entries); - thread_store_node = TAILQ_NEXT(thread_store_node, entries); - } - return TM_ECODE_OK; -} - TmEcode OutputLoggerLog(ThreadVars *tv, Packet *p, void *thread_data) { LoggerThreadStore *thread_store = (LoggerThreadStore *)thread_data; diff --git a/src/output.h b/src/output.h index dd47fa4880..c09e13a48d 100644 --- a/src/output.h +++ b/src/output.h @@ -51,7 +51,6 @@ typedef struct OutputInitResult_ { typedef OutputInitResult (*OutputInitFunc)(SCConfNode *); typedef OutputInitResult (*OutputInitSubFunc)(SCConfNode *, OutputCtx *); typedef TmEcode (*OutputLogFunc)(ThreadVars *, Packet *, void *); -typedef TmEcode (*OutputFlushFunc)(ThreadVars *, Packet *, void *); typedef uint32_t (*OutputGetActiveCountFunc)(void); typedef struct OutputModule_ { @@ -66,7 +65,6 @@ typedef struct OutputModule_ { ThreadDeinitFunc ThreadDeinit; PacketLogger PacketLogFunc; - PacketLogger PacketFlushFunc; PacketLogCondition PacketConditionFunc; TxLogger TxLogFunc; TxLoggerCondition TxLogCondition; @@ -86,7 +84,6 @@ typedef struct OutputModule_ { /* struct for packet module and packet sub-module registration */ typedef struct OutputPacketLoggerFunctions_ { PacketLogger LogFunc; - PacketLogger FlushFunc; PacketLogCondition ConditionFunc; ThreadInitFunc ThreadInitFunc; ThreadDeinitFunc ThreadDeinitFunc; @@ -168,7 +165,6 @@ void OutputRegisterRootLogger(ThreadInitFunc ThreadInit, ThreadDeinitFunc Thread void TmModuleLoggerRegister(void); TmEcode OutputLoggerLog(ThreadVars *, Packet *, void *); -TmEcode OutputLoggerFlush(ThreadVars *, Packet *, void *); TmEcode OutputLoggerThreadInit(ThreadVars *, const void *, void **); TmEcode OutputLoggerThreadDeinit(ThreadVars *, void *); void OutputLoggerExitPrintStats(ThreadVars *, void *);