From: Jason Ish Date: Fri, 30 Aug 2024 15:00:59 +0000 (-0600) Subject: output-file: use void *initdata instead of OutputCtx X-Git-Tag: suricata-8.0.0-beta1~902 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cba8527f7502b3b3dc6e1acd432e154c272fae96;p=thirdparty%2Fsuricata.git output-file: use void *initdata instead of OutputCtx Avoids leaking a higher level abstraction into a low level logger. Ticket: #7227 --- diff --git a/src/output-file.c b/src/output-file.c index 85af7d3141..6d29298fea 100644 --- a/src/output-file.c +++ b/src/output-file.c @@ -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); diff --git a/src/output-file.h b/src/output-file.h index 8e2a4d7f2a..d859efc7c3 100644 --- a/src/output-file.h +++ b/src/output-file.h @@ -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);