Go to the documentation of this file.
102 while (logger && store) {
110 logger = logger->
next;
131 SCLogDebug(
"OutputFlowLogThreadInit happy (*data %p)", *data);
142 ts->thread_data = retptr;
144 if (td->
store == NULL) {
148 while (tmp->
next != NULL)
157 logger = logger->
next;
166 if (op_thread_data == NULL)
172 while (logger && store) {
180 logger = logger->
next;
193 logger = next_logger;
TmEcode OutputFlowLog(ThreadVars *tv, void *thread_data, Flow *f)
Run flow logger(s)
TmEcode OutputFlowLogThreadInit(ThreadVars *tv, void **data)
thread init for the flow logger This will run the thread init functions for the individual registered...
struct OutputLoggerThreadStore_ * next
int(* FlowLogger)(ThreadVars *, void *thread_data, Flow *f)
Flow logger function pointer type.
struct OutputFlowLoggerThreadData_ OutputFlowLoggerThreadData
int SCOutputRegisterFlowLogger(const char *name, FlowLogger LogFunc, void *initdata, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit)
Register a flow logger.
struct OutputFlowLogger_ * next
struct OutputFlowLogger_ OutputFlowLogger
Per thread variable structure.
TmEcode(* ThreadInitFunc)(ThreadVars *, const void *, void **)
TmEcode(* ThreadInit)(ThreadVars *, const void *, void **)
OutputLoggerThreadStore * store
TmEcode OutputFlowLogThreadDeinit(ThreadVars *tv, void *thread_data)
void OutputFlowShutdown(void)
#define DEBUG_VALIDATE_BUG_ON(exp)
TmEcode(* ThreadDeinit)(ThreadVars *, void *)
TmEcode(* ThreadDeinitFunc)(ThreadVars *, void *)