logging: convert eve dns logging to non-thread module

pull/2245/head
Jason Ish 9 years ago committed by Victor Julien
parent b1200dba54
commit 687602c0ca

@ -323,5 +323,6 @@ void TmModuleLogTlsLogRegister(void)
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);
}

@ -851,42 +851,32 @@ static OutputCtx *JsonDnsLogInitCtx(ConfNode *conf)
#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

@ -596,8 +596,8 @@ void TmModuleJsonHttpLogRegister (void)
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

@ -270,10 +270,8 @@ void TmModuleJsonSmtpLogRegister (void) {
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

@ -206,7 +206,8 @@ void TmModuleJsonTemplateLogRegister(void)
/* 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.");
}

@ -320,12 +320,12 @@ void TmModuleJsonTlsLogRegister (void)
/* 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

@ -273,29 +273,9 @@ static TmEcode OutputTxLogThreadInit(ThreadVars *tv, void *initdata, void **data
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));
@ -329,24 +309,8 @@ static TmEcode OutputTxLogThreadDeinit(ThreadVars *tv, void *thread_data)
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;
@ -366,24 +330,8 @@ static void OutputTxLogExitPrintStats(ThreadVars *tv, void *thread_data)
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;

@ -202,7 +202,10 @@ void OutputRegisterTxSubModuleWrapper(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,
TxLoggerCondition TxLogCondition)
TxLoggerCondition TxLogCondition,
ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
if (unlikely(TxLogFunc == NULL)) {
goto error;
@ -222,6 +225,9 @@ void OutputRegisterTxSubModuleWrapper(const char *parent_name,
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);
@ -255,7 +261,7 @@ void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
{
OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
alproto, TxLogFunc, -1, -1,
TxLogCondition);
TxLogCondition, NULL, NULL, NULL);
}
/**
@ -267,22 +273,27 @@ void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
* \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);
}
/**
@ -305,13 +316,17 @@ OutputRegisterTxModule(const char *name, const char *conf_name,
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);
}
/**

@ -86,8 +86,11 @@ void OutputRegisterTxModule(const char *name, const char *conf_name,
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,
@ -98,11 +101,17 @@ void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
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);

@ -245,7 +245,6 @@ const char * TmModuleTmmIdToString(TmmId id)
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);

@ -79,7 +79,6 @@ typedef enum {
TMM_JSONALERTLOG,
TMM_JSONDROPLOG,
TMM_JSONHTTPLOG,
TMM_JSONDNSLOG,
TMM_JSONSMTPLOG,
TMM_JSONSSHLOG,
TMM_JSONSTATSLOG,

Loading…
Cancel
Save