Go to the documentation of this file.
61 memset(op, 0x00,
sizeof(*op));
103 while (logger && store) {
111 logger = logger->
next;
129 memset(td, 0x00,
sizeof(*td));
133 SCLogDebug(
"OutputFlowLogThreadInit happy (*data %p)", *data);
142 memset(
ts, 0x00,
sizeof(*
ts));
145 ts->thread_data = retptr;
147 if (td->
store == NULL) {
151 while (tmp->
next != NULL)
160 logger = logger->
next;
169 if (op_thread_data == NULL)
175 while (logger && store) {
183 logger = logger->
next;
196 while (logger && store) {
201 logger = logger->
next;
212 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 *)