Go to the documentation of this file.
62 memset(op, 0x00,
sizeof(*op));
104 while (logger && store) {
112 logger = logger->
next;
130 memset(td, 0x00,
sizeof(*td));
134 SCLogDebug(
"OutputFlowLogThreadInit happy (*data %p)", *data);
143 memset(
ts, 0x00,
sizeof(*
ts));
146 ts->thread_data = retptr;
148 if (td->
store == NULL) {
152 while (tmp->
next != NULL)
161 logger = logger->
next;
170 if (op_thread_data == NULL)
176 while (logger && store) {
184 logger = logger->
next;
197 while (logger && store) {
202 logger = logger->
next;
213 logger = next_logger;
TmEcode OutputFlowLog(ThreadVars *tv, void *thread_data, Flow *f)
Run flow logger(s)
struct OutputLoggerThreadStore_ * next
int(* FlowLogger)(ThreadVars *, void *thread_data, Flow *f)
struct OutputFlowLoggerThreadData_ OutputFlowLoggerThreadData
struct OutputFlowLogger_ * next
struct OutputFlowLogger_ OutputFlowLogger
void(* ThreadExitPrintStats)(ThreadVars *, void *)
int OutputRegisterFlowLogger(const char *name, FlowLogger LogFunc, OutputCtx *output_ctx, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit, ThreadExitPrintStatsFunc ThreadExitPrintStats)
TmEcode OutputFlowLogThreadInit(ThreadVars *tv, void *initdata, void **data)
thread init for the flow logger This will run the thread init functions for the individual registered...
Per thread variable structure.
TmEcode(* ThreadInitFunc)(ThreadVars *, const void *, void **)
TmEcode(* ThreadInit)(ThreadVars *, const void *, void **)
OutputLoggerThreadStore * store
void(* ThreadExitPrintStatsFunc)(ThreadVars *, void *)
void OutputFlowLogExitPrintStats(ThreadVars *tv, void *thread_data)
TmEcode OutputFlowLogThreadDeinit(ThreadVars *tv, void *thread_data)
void OutputFlowShutdown(void)
#define DEBUG_VALIDATE_BUG_ON(exp)
TmEcode(* ThreadDeinit)(ThreadVars *, void *)
TmEcode(* ThreadDeinitFunc)(ThreadVars *, void *)