Go to the documentation of this file.
66 memset(op, 0x00,
sizeof(*op));
109 store = op_thread_data->
store;
110 while (logger && store) {
118 logger = logger->
next;
136 memset(td, 0x00,
sizeof(*td));
140 SCLogDebug(
"OutputFlowLogThreadInit happy (*data %p)", *data);
149 memset(
ts, 0x00,
sizeof(*
ts));
152 ts->thread_data = retptr;
154 if (td->
store == NULL) {
158 while (tmp->
next != NULL)
167 logger = logger->
next;
176 if (op_thread_data == NULL)
182 while (logger && store) {
190 logger = logger->
next;
203 while (logger && store) {
208 logger = logger->
next;
219 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 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)
struct OutputLoggerThreadStore_ OutputLoggerThreadStore
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 **)
OutputLoggerThreadStore * store
TmEcode(* ThreadInit)(ThreadVars *, const void *, void **)
void(* ThreadExitPrintStatsFunc)(ThreadVars *, void *)
void OutputFlowLogExitPrintStats(ThreadVars *tv, void *thread_data)
TmEcode OutputFlowLogThreadDeinit(ThreadVars *tv, void *thread_data)
struct OutputLoggerThreadData_ OutputLoggerThreadData
void OutputFlowShutdown(void)
#define DEBUG_VALIDATE_BUG_ON(exp)
TmEcode(* ThreadDeinit)(ThreadVars *, void *)
TmEcode(* ThreadDeinitFunc)(ThreadVars *, void *)