tmm_modules[TMM_LOGTLSLOG].flags = TM_FLAG_LOGAPI_TM;
OutputRegisterTxModuleWithProgress(MODULE_NAME, "tls-log", LogTlsLogInitCtx,
- ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE);
+ ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
+ NULL, NULL, NULL);
}
#define MODULE_NAME "JsonDnsLog"
void TmModuleJsonDnsLogRegister (void)
{
- tmm_modules[TMM_JSONDNSLOG].name = MODULE_NAME;
- tmm_modules[TMM_JSONDNSLOG].ThreadInit = LogDnsLogThreadInit;
- tmm_modules[TMM_JSONDNSLOG].ThreadDeinit = LogDnsLogThreadDeinit;
- tmm_modules[TMM_JSONDNSLOG].RegisterTests = NULL;
- tmm_modules[TMM_JSONDNSLOG].cap_flags = 0;
- tmm_modules[TMM_JSONDNSLOG].flags = TM_FLAG_LOGAPI_TM;
-
/* Logger for requests. */
OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
- JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1);
+ JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1,
+ LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
/* Logger for replies. */
OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
- JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1);
+ JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1,
+ LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
/* Sub-logger for requests. */
OutputRegisterTxSubModuleWithProgress("eve-log", MODULE_NAME, "eve-log.dns",
- JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1);
+ JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1,
+ LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
/* Sub-logger for replies. */
OutputRegisterTxSubModuleWithProgress("eve-log", MODULE_NAME, "eve-log.dns",
- JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1);
+ JsonDnsLogInitCtxSub, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1,
+ LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
}
#else
-static TmEcode OutputJsonThreadInit(ThreadVars *t, void *initdata, void **data)
-{
- SCLogInfo("Can't init JSON output - JSON support was disabled during build.");
- return TM_ECODE_FAILED;
-}
-
void TmModuleJsonDnsLogRegister (void)
{
- tmm_modules[TMM_JSONDNSLOG].name = "JsonDnsLog";
- tmm_modules[TMM_JSONDNSLOG].ThreadInit = OutputJsonThreadInit;
+ SCLogInfo("Can't register JSON output - JSON support was disabled during build.");
}
#endif
ALPROTO_HTTP, JsonHttpLogger, NULL, NULL, NULL);
/* also register as child of eve-log */
- OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http", OutputHttpLogInitSub,
- ALPROTO_HTTP, JsonHttpLogger);
+ OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http",
+ OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger, NULL, NULL, NULL);
}
#else
ALPROTO_SMTP, JsonSmtpLogger, NULL, NULL, NULL);
/* also register as child of eve-log */
- OutputRegisterTxSubModule("eve-log", "JsonSmtpLog",
- "eve-log.smtp",
- OutputSmtpLogInitSub, ALPROTO_SMTP,
- JsonSmtpLogger);
+ OutputRegisterTxSubModule("eve-log", "JsonSmtpLog", "eve-log.smtp",
+ OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger, NULL, NULL, NULL);
}
#else
/* Register as an eve sub-module. */
OutputRegisterTxSubModule("eve-log", "JsonTemplateLog", "eve-log.template",
- OutputTemplateLogInitSub, ALPROTO_TEMPLATE, JsonTemplateLogger);
+ OutputTemplateLogInitSub, ALPROTO_TEMPLATE, JsonTemplateLogger, NULL,
+ NULL, NULL);
SCLogNotice("Template JSON logger registered.");
}
/* register as separate module */
OutputRegisterTxModuleWithProgress("JsonTlsLog", "tls-json-log",
OutputTlsLogInit, ALPROTO_TLS, JsonTlsLogger, TLS_HANDSHAKE_DONE,
- TLS_HANDSHAKE_DONE);
+ TLS_HANDSHAKE_DONE, NULL, NULL, NULL);
/* also register as child of eve-log */
OutputRegisterTxSubModuleWithProgress("eve-log", "JsonTlsLog",
"eve-log.tls", OutputTlsLogInitSub, ALPROTO_TLS, JsonTlsLogger,
- TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE);
+ TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE, NULL, NULL, NULL);
}
#else
OutputTxLogger *logger = list;
while (logger) {
-
- TmEcode (*ThreadInit)(ThreadVars *, void *, void **) = NULL;
-
if (logger->ThreadInit) {
- SCLogNotice("Logger %s has ThreadInit.", logger->name);
- ThreadInit = logger->ThreadInit;
- } else {
- SCLogNotice("Logger %s DOES NOT have ThreadInit.", logger->name);
- }
-
- if (ThreadInit == NULL) {
- TmModule *tm_module = TmModuleGetByName((char *)logger->name);
- if (tm_module == NULL) {
- SCLogError(SC_ERR_INVALID_ARGUMENT,
- "TmModuleGetByName for %s failed", logger->name);
- exit(EXIT_FAILURE);
- }
- ThreadInit = tm_module->ThreadInit;
- }
-
- if (ThreadInit) {
void *retptr = NULL;
- if (ThreadInit(tv, (void *)logger->output_ctx, &retptr) == TM_ECODE_OK) {
+ if (logger->ThreadInit(tv, (void *)logger->output_ctx, &retptr) == TM_ECODE_OK) {
OutputLoggerThreadStore *ts = SCMalloc(sizeof(*ts));
/* todo */ BUG_ON(ts == NULL);
memset(ts, 0x00, sizeof(*ts));
OutputTxLogger *logger = list;
while (logger && store) {
- TmEcode (*ThreadDeinit)(ThreadVars *, void *) = NULL;
-
if (logger->ThreadDeinit) {
- ThreadDeinit = logger->ThreadDeinit;
- }
-
- if (ThreadDeinit == NULL) {
- TmModule *tm_module = TmModuleGetByName((char *)logger->name);
- if (tm_module == NULL) {
- SCLogError(SC_ERR_INVALID_ARGUMENT,
- "TmModuleGetByName for %s failed", logger->name);
- exit(EXIT_FAILURE);
- }
- ThreadDeinit = tm_module->ThreadDeinit;
- }
-
- if (ThreadDeinit) {
- ThreadDeinit(tv, store->thread_data);
+ logger->ThreadDeinit(tv, store->thread_data);
}
OutputLoggerThreadStore *next_store = store->next;
OutputTxLogger *logger = list;
while (logger && store) {
- void (*ThreadExitPrintStats)(ThreadVars *, void *) = NULL;
-
if (logger->ThreadExitPrintStats) {
- ThreadExitPrintStats = logger->ThreadExitPrintStats;
- }
-
- if (ThreadExitPrintStats == NULL) {
- TmModule *tm_module = TmModuleGetByName((char *)logger->name);
- if (tm_module == NULL) {
- SCLogError(SC_ERR_INVALID_ARGUMENT,
- "TmModuleGetByName for %s failed", logger->name);
- exit(EXIT_FAILURE);
- }
- ThreadExitPrintStats = tm_module->ThreadExitPrintStats;
- }
-
- if (ThreadExitPrintStats) {
- ThreadExitPrintStats(tv, store->thread_data);
+ logger->ThreadExitPrintStats(tv, store->thread_data);
}
logger = logger->next;
const char *name, const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *,
OutputCtx *parent_ctx), AppProto alproto, TxLogger TxLogFunc,
int tc_log_progress, int ts_log_progress,
- TxLoggerCondition TxLogCondition)
+ TxLoggerCondition TxLogCondition,
+ ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
if (unlikely(TxLogFunc == NULL)) {
goto error;
module->alproto = alproto;
module->tc_log_progress = tc_log_progress;
module->ts_log_progress = ts_log_progress;
+ module->ThreadInit = ThreadInit;
+ module->ThreadDeinit = ThreadDeinit;
+ module->ThreadExitPrintStats = ThreadExitPrintStats;
TAILQ_INSERT_TAIL(&output_modules, module, entries);
SCLogDebug("Tx logger \"%s\" registered.", name);
{
OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
alproto, TxLogFunc, -1, -1,
- TxLogCondition);
+ TxLogCondition, NULL, NULL, NULL);
}
/**
* \retval Returns 0 on success, -1 on failure.
*/
void OutputRegisterTxModuleWithProgress(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
- TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress)
+ OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
+ TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress,
+ ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
- TxLogFunc, tc_log_progress, ts_log_progress,
- NULL, NULL, NULL, NULL);
+ TxLogFunc, tc_log_progress, ts_log_progress, NULL, ThreadInit,
+ ThreadDeinit, ThreadExitPrintStats);
}
void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
- const char *name, const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *,
- OutputCtx *parent_ctx), AppProto alproto, TxLogger TxLogFunc,
- int tc_log_progress, int ts_log_progress)
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+ AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
+ int ts_log_progress, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
- alproto, TxLogFunc, tc_log_progress,
- ts_log_progress, NULL);
+ alproto, TxLogFunc, tc_log_progress, ts_log_progress, NULL, ThreadInit,
+ ThreadDeinit, ThreadExitPrintStats);
}
/**
ThreadDeinit, ThreadExitPrintStats);
}
-void
-OutputRegisterTxSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
- AppProto alproto, TxLogger TxLogFunc)
+void OutputRegisterTxSubModule(const char *parent_name, const char *name,
+ const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+ AppProto alproto, TxLogger TxLogFunc, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name,
- InitFunc, alproto, TxLogFunc, -1, -1, NULL);
+ InitFunc, alproto, TxLogFunc, -1, -1, NULL,
+ ThreadInit, ThreadDeinit,
+ ThreadExitPrintStats);
}
/**
void (*ThreadExitPrintStats)(ThreadVars *, void *));
void OutputRegisterTxSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
- AppProto alproto, TxLogger TxLogFunc);
+ const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+ AppProto alproto, TxLogger TxLogFunc,
+ ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats);
void OutputRegisterTxModuleWithCondition(const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
TxLoggerCondition TxLogCondition);
void OutputRegisterTxModuleWithProgress(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
- TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress);
-void OutputRegisterTxSubModuleWithProgress(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
- AppProto alproto, TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress);
+ OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto, TxLogger TxLogFunc,
+ int tc_log_progress, int ts_log_progress, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats);
+void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+ AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
+ int ts_log_progress, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats);
void OutputRegisterFileModule(const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), FileLogger FileLogFunc);
CASE_CODE (TMM_STREAMINGLOGGER);
CASE_CODE (TMM_JSONALERTLOG);
CASE_CODE (TMM_JSONDROPLOG);
- CASE_CODE (TMM_JSONDNSLOG);
CASE_CODE (TMM_JSONHTTPLOG);
CASE_CODE (TMM_JSONFILELOG);
CASE_CODE (TMM_JSONFLOWLOG);
TMM_JSONALERTLOG,
TMM_JSONDROPLOG,
TMM_JSONHTTPLOG,
- TMM_JSONDNSLOG,
TMM_JSONSMTPLOG,
TMM_JSONSSHLOG,
TMM_JSONSTATSLOG,