]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output-file: use void *initdata instead of OutputCtx
authorJason Ish <jason.ish@oisf.net>
Fri, 30 Aug 2024 15:00:59 +0000 (09:00 -0600)
committerVictor Julien <victor@inliniac.net>
Sat, 31 Aug 2024 08:53:59 +0000 (10:53 +0200)
Avoids leaking a higher level abstraction into a low level logger.

Ticket: #7227

src/output-file.c
src/output-file.h

index 85af7d314104ce5d538c42ea9acf1a764f67ecbd..6d29298fea0b8ea32f9b3ef4de3433e78d3bbe58 100644 (file)
@@ -43,7 +43,7 @@ bool g_file_logger_enabled = false;
  * log module (e.g. http.log) with different output ctx'. */
 typedef struct OutputFileLogger_ {
     FileLogger LogFunc;
-    OutputCtx *output_ctx;
+    void *initdata;
     struct OutputFileLogger_ *next;
     const char *name;
     LoggerId logger_id;
@@ -53,15 +53,15 @@ typedef struct OutputFileLogger_ {
 
 static OutputFileLogger *list = NULL;
 
-int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc,
-        OutputCtx *output_ctx, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit)
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc, void *initdata,
+        ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit)
 {
     OutputFileLogger *op = SCCalloc(1, sizeof(*op));
     if (op == NULL)
         return -1;
 
     op->LogFunc = LogFunc;
-    op->output_ctx = output_ctx;
+    op->initdata = initdata;
     op->name = name;
     op->logger_id = id;
     op->ThreadInit = ThreadInit;
@@ -182,7 +182,7 @@ TmEcode OutputFileLogThreadInit(ThreadVars *tv, OutputFileLoggerThreadData **dat
     while (logger) {
         if (logger->ThreadInit) {
             void *retptr = NULL;
-            if (logger->ThreadInit(tv, (void *)logger->output_ctx, &retptr) == TM_ECODE_OK) {
+            if (logger->ThreadInit(tv, logger->initdata, &retptr) == TM_ECODE_OK) {
                 OutputLoggerThreadStore *ts = SCCalloc(1, sizeof(*ts));
                 /* todo */ BUG_ON(ts == NULL);
 
index 8e2a4d7f2aa97a4dba34d076747f2c5cb81a7831..d859efc7c3a5a2ee99d97a8f7f5baff3955207fe 100644 (file)
@@ -48,7 +48,7 @@ void OutputFileLogFfc(ThreadVars *tv, OutputFileLoggerThreadData *op_thread_data
 typedef int (*FileLogger)(ThreadVars *, void *thread_data, const Packet *, const File *, void *tx,
         const uint64_t tx_id, uint8_t direction);
 
-int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc, OutputCtx *,
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc, void *initdata,
         ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit);
 
 void OutputFileLoggerRegister(void);