void TmModuleAlertDebugLogRegister (void)
{
- OutputRegisterPacketModule(MODULE_NAME, "alert-debug",
+ OutputRegisterPacketModule(LOGGER_ALERT_DEBUG, MODULE_NAME, "alert-debug",
AlertDebugLogInitCtx, AlertDebugLogLogger, AlertDebugLogCondition,
AlertDebugLogThreadInit, AlertDebugLogThreadDeinit,
AlertDebugLogExitPrintStats);
void TmModuleAlertFastLogRegister (void)
{
- OutputRegisterPacketModule(MODULE_NAME, "fast", AlertFastLogInitCtx,
- AlertFastLogger, AlertFastLogCondition, AlertFastLogThreadInit,
- AlertFastLogThreadDeinit, AlertFastLogExitPrintStats);
+ OutputRegisterPacketModule(LOGGER_ALERT_FAST, MODULE_NAME, "fast",
+ AlertFastLogInitCtx, AlertFastLogger, AlertFastLogCondition,
+ AlertFastLogThreadInit, AlertFastLogThreadDeinit,
+ AlertFastLogExitPrintStats);
AlertFastLogRegisterTests();
}
void TmModuleAlertPreludeRegister (void)
{
- OutputRegisterPacketModule("AlertPrelude", "alert-prelude",
+ OutputRegisterPacketModule(LOGGER_PRELUDE, "AlertPrelude", "alert-prelude",
AlertPreludeInitCtx, AlertPreludeLogger, AlertPreludeCondition,
AlertPreludeThreadInit, AlertPreludeThreadDeinit, NULL);
}
void TmModuleAlertSyslogRegister (void)
{
#ifndef OS_WIN32
- OutputRegisterPacketModule(MODULE_NAME, "syslog",
+ OutputRegisterPacketModule(LOGGER_ALERT_SYSLOG, MODULE_NAME, "syslog",
AlertSyslogInitCtx, AlertSyslogLogger, AlertSyslogCondition,
AlertSyslogThreadInit, AlertSyslogThreadDeinit,
AlertSyslogExitPrintStats);
void TmModuleUnified2AlertRegister(void)
{
- OutputRegisterPacketModule(MODULE_NAME, "unified2-alert",
+ OutputRegisterPacketModule(LOGGER_UNIFIED2, MODULE_NAME, "unified2-alert",
Unified2AlertInitCtx, Unified2Logger, Unified2Condition,
Unified2AlertThreadInit, Unified2AlertThreadDeinit, NULL);
Unified2RegisterTests();
uint64_t ticks_spent;
} PktProfilingAppData;
+typedef struct PktProfilingLoggerData_ {
+ uint64_t ticks_start;
+ uint64_t ticks_end;
+ uint64_t ticks_spent;
+} PktProfilingLoggerData;
+
/** \brief Per pkt stats storage */
typedef struct PktProfiling_ {
uint64_t ticks_start;
PktProfilingData flowworker[PROFILE_FLOWWORKER_SIZE];
PktProfilingAppData app[ALPROTO_MAX];
PktProfilingDetectData detect[PROF_DETECT_SIZE];
+ PktProfilingLoggerData logger[LOGGER_SIZE];
uint64_t proto_detect;
} PktProfiling;
void TmModuleLogDnsLogRegister (void)
{
- OutputRegisterTxModule(MODULE_NAME, "dns-log", LogDnsLogInitCtx,
+ OutputRegisterTxModule(LOGGER_DNS, MODULE_NAME, "dns-log", LogDnsLogInitCtx,
ALPROTO_DNS, LogDnsLogger, LogDnsLogThreadInit, LogDnsLogThreadDeinit,
LogDnsLogExitPrintStats);
/** \brief function to register the drop log module */
void TmModuleLogDropLogRegister (void)
{
- OutputRegisterPacketModule(MODULE_NAME, "drop", LogDropLogInitCtx,
- LogDropLogger, LogDropCondition, LogDropLogThreadInit,
- LogDropLogThreadDeinit, LogDropLogExitPrintStats);
+ OutputRegisterPacketModule(LOGGER_DROP, MODULE_NAME, "drop",
+ LogDropLogInitCtx, LogDropLogger, LogDropCondition,
+ LogDropLogThreadInit, LogDropLogThreadDeinit, LogDropLogExitPrintStats);
#ifdef UNITTESTS
LogDropLogRegisterTests();
#endif
void TmModuleLogFileLogRegister (void)
{
- OutputRegisterFileModule(MODULE_NAME, "file-log", LogFileLogInitCtx,
- LogFileLogger, LogFileLogThreadInit, LogFileLogThreadDeinit,
- LogFileLogExitPrintStats);
+ OutputRegisterFileModule(LOGGER_FILE, MODULE_NAME, "file-log",
+ LogFileLogInitCtx, LogFileLogger, LogFileLogThreadInit,
+ LogFileLogThreadDeinit, LogFileLogExitPrintStats);
SCLogDebug("registered");
}
void TmModuleLogFilestoreRegister (void)
{
- OutputRegisterFiledataModule(MODULE_NAME, "file", LogFilestoreLogInitCtx,
- LogFilestoreLogger, LogFilestoreLogThreadInit,
+ OutputRegisterFiledataModule(LOGGER_FILE_STORE, MODULE_NAME, "file",
+ LogFilestoreLogInitCtx, LogFilestoreLogger, LogFilestoreLogThreadInit,
LogFilestoreLogThreadDeinit, LogFilestoreLogExitPrintStats);
- OutputRegisterFiledataModule(MODULE_NAME, "file-store",
+ OutputRegisterFiledataModule(LOGGER_FILE_STORE, MODULE_NAME, "file-store",
LogFilestoreLogInitCtx, LogFilestoreLogger, LogFilestoreLogThreadInit,
LogFilestoreLogThreadDeinit, LogFilestoreLogExitPrintStats);
void TmModuleLogHttpLogRegister (void)
{
- OutputRegisterTxModule(MODULE_NAME, "http-log", LogHttpLogInitCtx,
- ALPROTO_HTTP, LogHttpLogger, LogHttpLogThreadInit,
+ OutputRegisterTxModule(LOGGER_HTTP, MODULE_NAME, "http-log",
+ LogHttpLogInitCtx, ALPROTO_HTTP, LogHttpLogger, LogHttpLogThreadInit,
LogHttpLogThreadDeinit, LogHttpLogExitPrintStats);
}
void TmModuleLogStatsLogRegister (void)
{
- OutputRegisterStatsModule(MODULE_NAME, "stats", LogStatsLogInitCtx,
- LogStatsLogger, LogStatsLogThreadInit, LogStatsLogThreadDeinit,
- LogStatsLogExitPrintStats);
+ OutputRegisterStatsModule(LOGGER_STATS, MODULE_NAME, "stats",
+ LogStatsLogInitCtx, LogStatsLogger, LogStatsLogThreadInit,
+ LogStatsLogThreadDeinit, LogStatsLogExitPrintStats);
}
int LogTcpDataLogger(ThreadVars *tv, void *thread_data, const Flow *f, const uint8_t *data, uint32_t data_len, uint64_t tx_id, uint8_t flags);
void TmModuleLogTcpDataLogRegister (void) {
- OutputRegisterStreamingModule(MODULE_NAME, "tcp-data", LogTcpDataLogInitCtx,
- LogTcpDataLogger, STREAMING_TCP_DATA, LogTcpDataLogThreadInit,
- LogTcpDataLogThreadDeinit, LogTcpDataLogExitPrintStats);
- OutputRegisterStreamingModule(MODULE_NAME, "http-body-data",
+ OutputRegisterStreamingModule(LOGGER_TCP_DATA, MODULE_NAME, "tcp-data",
+ LogTcpDataLogInitCtx, LogTcpDataLogger, STREAMING_TCP_DATA,
+ LogTcpDataLogThreadInit, LogTcpDataLogThreadDeinit,
+ LogTcpDataLogExitPrintStats);
+ OutputRegisterStreamingModule(LOGGER_TCP_DATA, MODULE_NAME, "http-body-data",
LogTcpDataLogInitCtx, LogTcpDataLogger, STREAMING_HTTP_BODIES,
LogTcpDataLogThreadInit, LogTcpDataLogThreadDeinit,
LogTcpDataLogExitPrintStats);
void TmModuleLogTlsLogRegister(void)
{
- OutputRegisterTxModuleWithProgress(MODULE_NAME, "tls-log", LogTlsLogInitCtx,
- ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
- LogTlsLogThreadInit, LogTlsLogThreadDeinit, LogTlsLogExitPrintStats);
+ OutputRegisterTxModuleWithProgress(LOGGER_TLS, MODULE_NAME, "tls-log",
+ LogTlsLogInitCtx, ALPROTO_TLS, LogTlsLogger, TLS_HANDSHAKE_DONE,
+ TLS_HANDSHAKE_DONE, LogTlsLogThreadInit, LogTlsLogThreadDeinit,
+ LogTlsLogExitPrintStats);
}
void TmModuleLogTlsStoreRegister (void)
{
- OutputRegisterTxModuleWithCondition(MODULE_NAME, "tls-store",
- LogTlsStoreLogInitCtx, ALPROTO_TLS, LogTlsStoreLogger,
+ OutputRegisterTxModuleWithCondition(LOGGER_TLS_STORE, MODULE_NAME,
+ "tls-store", LogTlsStoreLogInitCtx, ALPROTO_TLS, LogTlsStoreLogger,
LogTlsStoreCondition, LogTlsStoreLogThreadInit,
LogTlsStoreLogThreadDeinit, LogTlsStoreLogExitPrintStats);
OutputCtx *output_ctx;
struct OutputFileLogger_ *next;
const char *name;
- TmmId module_id;
+ LoggerId logger_id;
ThreadInitFunc ThreadInit;
ThreadDeinitFunc ThreadDeinit;
ThreadExitPrintStatsFunc ThreadExitPrintStats;
static OutputFileLogger *list = NULL;
-int OutputRegisterFileLogger(const char *name, FileLogger LogFunc,
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc,
OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
-#if 0
- int module_id = TmModuleGetIdByName(name);
- if (module_id < 0)
- return -1;
-#endif
-
OutputFileLogger *op = SCMalloc(sizeof(*op));
if (op == NULL)
return -1;
op->LogFunc = LogFunc;
op->output_ctx = output_ctx;
op->name = name;
-#if 0
- op->module_id = (TmmId) module_id;
-#endif
+ op->logger_id = id;
op->ThreadInit = ThreadInit;
op->ThreadDeinit = ThreadDeinit;
op->ThreadExitPrintStats = ThreadExitPrintStats;
BUG_ON(logger->LogFunc == NULL);
SCLogDebug("logger %p", logger);
- PACKET_PROFILING_TMM_START(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
logger->LogFunc(tv, store->thread_data, (const Packet *)p, (const File *)ff);
- PACKET_PROFILING_TMM_END(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
file_logged = 1;
logger = logger->next;
*/
//typedef int (*TxLogCondition)(ThreadVars *, const Packet *);
-int OutputRegisterFileLogger(const char *name, FileLogger LogFunc, OutputCtx *,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterFileLogger(LoggerId id, const char *name, FileLogger LogFunc,
+ OutputCtx *, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
void TmModuleFileLoggerRegister (void);
OutputCtx *output_ctx;
struct OutputFiledataLogger_ *next;
const char *name;
- TmmId module_id;
+ LoggerId logger_id;
ThreadInitFunc ThreadInit;
ThreadDeinitFunc ThreadDeinit;
ThreadExitPrintStatsFunc ThreadExitPrintStats;
static int g_waldo_init = 0;
static int g_waldo_deinit = 0;
-int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc,
- OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
+int OutputRegisterFiledataLogger(LoggerId id, const char *name,
+ FiledataLogger LogFunc, OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
-#if 0
- int module_id = TmModuleGetIdByName(name);
- if (module_id < 0)
- return -1;
-#endif
-
OutputFiledataLogger *op = SCMalloc(sizeof(*op));
if (op == NULL)
return -1;
op->LogFunc = LogFunc;
op->output_ctx = output_ctx;
op->name = name;
-#if 0
- op->module_id = (TmmId) module_id;
-#endif
+ op->logger_id = id;
op->ThreadInit = ThreadInit;
op->ThreadDeinit = ThreadDeinit;
op->ThreadExitPrintStats = ThreadExitPrintStats;
BUG_ON(logger->LogFunc == NULL);
SCLogDebug("logger %p", logger);
- PACKET_PROFILING_TMM_START(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
logger->LogFunc(tv, store->thread_data, (const Packet *)p, ff, data, data_len, flags);
- PACKET_PROFILING_TMM_END(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
file_logged = 1;
*/
//typedef int (*TxLogCondition)(ThreadVars *, const Packet *);
-int OutputRegisterFiledataLogger(const char *name, FiledataLogger LogFunc,
- OutputCtx *, ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterFiledataLogger(LoggerId id, const char *name,
+ FiledataLogger LogFunc, OutputCtx *, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
void TmModuleFiledataLoggerRegister (void);
void TmModuleJsonAlertLogRegister (void)
{
- OutputRegisterPacketModule(MODULE_NAME, "alert-json-log",
+ OutputRegisterPacketModule(LOGGER_JSON_ALERT, MODULE_NAME, "alert-json-log",
JsonAlertLogInitCtx, JsonAlertLogger, JsonAlertLogCondition,
JsonAlertLogThreadInit, JsonAlertLogThreadDeinit, NULL);
- OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.alert",
- JsonAlertLogInitCtxSub, JsonAlertLogger, JsonAlertLogCondition,
- JsonAlertLogThreadInit, JsonAlertLogThreadDeinit, NULL);
+ OutputRegisterPacketSubModule(LOGGER_JSON_ALERT, "eve-log", MODULE_NAME,
+ "eve-log.alert", JsonAlertLogInitCtxSub, JsonAlertLogger,
+ JsonAlertLogCondition, JsonAlertLogThreadInit, JsonAlertLogThreadDeinit,
+ NULL);
}
#else
void TmModuleJsonDnsLogRegister (void)
{
/* Logger for requests. */
- OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
- JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer, 0, 1,
- LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+ OutputRegisterTxModuleWithProgress(LOGGER_JSON_DNS, MODULE_NAME,
+ "dns-json-log", JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToServer,
+ 0, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
/* Logger for replies. */
- OutputRegisterTxModuleWithProgress(MODULE_NAME, "dns-json-log",
- JsonDnsLogInitCtx, ALPROTO_DNS, JsonDnsLoggerToClient, 1, 1,
- LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+ OutputRegisterTxModuleWithProgress(LOGGER_JSON_DNS, MODULE_NAME,
+ "dns-json-log", 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,
- LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+ OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS, "eve-log",
+ MODULE_NAME, "eve-log.dns", 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,
- LogDnsLogThreadInit, LogDnsLogThreadDeinit, NULL);
+ OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_DNS, "eve-log",
+ MODULE_NAME, "eve-log.dns", JsonDnsLogInitCtxSub, ALPROTO_DNS,
+ JsonDnsLoggerToClient, 1, 1, LogDnsLogThreadInit, LogDnsLogThreadDeinit,
+ NULL);
}
#else
void TmModuleJsonDropLogRegister (void)
{
- OutputRegisterPacketModule(MODULE_NAME, "drop-json-log",
+ OutputRegisterPacketModule(LOGGER_JSON_DROP, MODULE_NAME, "drop-json-log",
JsonDropLogInitCtx, JsonDropLogger, JsonDropLogCondition,
JsonDropLogThreadInit, JsonDropLogThreadDeinit, NULL);
- OutputRegisterPacketSubModule("eve-log", MODULE_NAME, "eve-log.drop",
- JsonDropLogInitCtxSub, JsonDropLogger, JsonDropLogCondition,
- JsonDropLogThreadInit, JsonDropLogThreadDeinit, NULL);
+ OutputRegisterPacketSubModule(LOGGER_JSON_DROP, "eve-log", MODULE_NAME,
+ "eve-log.drop", JsonDropLogInitCtxSub, JsonDropLogger,
+ JsonDropLogCondition, JsonDropLogThreadInit, JsonDropLogThreadDeinit,
+ NULL);
}
#else
void TmModuleJsonFileLogRegister (void)
{
/* register as child of eve-log */
- OutputRegisterFileSubModule("eve-log", "JsonFileLog", "eve-log.files",
- OutputFileLogInitSub, JsonFileLogger, JsonFileLogThreadInit,
- JsonFileLogThreadDeinit, NULL);
+ OutputRegisterFileSubModule(LOGGER_JSON_FILE, "eve-log", "JsonFileLog",
+ "eve-log.files", OutputFileLogInitSub, JsonFileLogger,
+ JsonFileLogThreadInit, JsonFileLogThreadDeinit, NULL);
}
#else
void TmModuleJsonFlowLogRegister (void)
{
/* register as separate module */
- OutputRegisterFlowModule("JsonFlowLog", "flow-json-log",
+ OutputRegisterFlowModule(LOGGER_JSON_FLOW, "JsonFlowLog", "flow-json-log",
OutputFlowLogInit, JsonFlowLogger, JsonFlowLogThreadInit,
JsonFlowLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterFlowSubModule("eve-log", "JsonFlowLog", "eve-log.flow",
- OutputFlowLogInitSub, JsonFlowLogger, JsonFlowLogThreadInit,
- JsonFlowLogThreadDeinit, NULL);
+ OutputRegisterFlowSubModule(LOGGER_JSON_FLOW, "eve-log", "JsonFlowLog",
+ "eve-log.flow", OutputFlowLogInitSub, JsonFlowLogger,
+ JsonFlowLogThreadInit, JsonFlowLogThreadDeinit, NULL);
}
#else
void TmModuleJsonHttpLogRegister (void)
{
/* register as separate module */
- OutputRegisterTxModule("JsonHttpLog", "http-json-log", OutputHttpLogInit,
- ALPROTO_HTTP, JsonHttpLogger, JsonHttpLogThreadInit,
+ OutputRegisterTxModule(LOGGER_JSON_HTTP, "JsonHttpLog", "http-json-log",
+ OutputHttpLogInit, ALPROTO_HTTP, JsonHttpLogger, JsonHttpLogThreadInit,
JsonHttpLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterTxSubModule("eve-log", "JsonHttpLog", "eve-log.http",
- OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger,
+ OutputRegisterTxSubModule(LOGGER_JSON_HTTP, "eve-log", "JsonHttpLog",
+ "eve-log.http", OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger,
JsonHttpLogThreadInit, JsonHttpLogThreadDeinit, NULL);
}
void TmModuleJsonNetFlowLogRegister (void)
{
/* register as separate module */
- OutputRegisterFlowModule("JsonNetFlowLog", "netflow-json-log",
- OutputNetFlowLogInit, JsonNetFlowLogger, JsonNetFlowLogThreadInit,
- JsonNetFlowLogThreadDeinit, NULL);
+ OutputRegisterFlowModule(LOGGER_JSON_NETFLOW, "JsonNetFlowLog",
+ "netflow-json-log", OutputNetFlowLogInit, JsonNetFlowLogger,
+ JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterFlowSubModule("eve-log", "JsonNetFlowLog", "eve-log.netflow",
- OutputNetFlowLogInitSub, JsonNetFlowLogger, JsonNetFlowLogThreadInit,
- JsonNetFlowLogThreadDeinit, NULL);
+ OutputRegisterFlowSubModule(LOGGER_JSON_NETFLOW, "eve-log", "JsonNetFlowLog",
+ "eve-log.netflow", OutputNetFlowLogInitSub, JsonNetFlowLogger,
+ JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL);
}
#else
void TmModuleJsonSmtpLogRegister (void) {
/* register as separate module */
- OutputRegisterTxModule("JsonSmtpLog", "smtp-json-log", OutputSmtpLogInit,
- ALPROTO_SMTP, JsonSmtpLogger, JsonSmtpLogThreadInit,
+ OutputRegisterTxModule(LOGGER_JSON_SMTP, "JsonSmtpLog", "smtp-json-log",
+ OutputSmtpLogInit, ALPROTO_SMTP, JsonSmtpLogger, JsonSmtpLogThreadInit,
JsonSmtpLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterTxSubModule("eve-log", "JsonSmtpLog", "eve-log.smtp",
- OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger,
+ OutputRegisterTxSubModule(LOGGER_JSON_SMTP, "eve-log", "JsonSmtpLog",
+ "eve-log.smtp", OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger,
JsonSmtpLogThreadInit, JsonSmtpLogThreadDeinit, NULL);
}
void TmModuleJsonSshLogRegister (void)
{
/* register as separate module */
- OutputRegisterPacketModule("JsonSshLog", "ssh-json-log", OutputSshLogInit,
- JsonSshLogger, JsonSshCondition, JsonSshLogThreadInit,
+ OutputRegisterPacketModule(LOGGER_JSON_SSH, "JsonSshLog", "ssh-json-log",
+ OutputSshLogInit, JsonSshLogger, JsonSshCondition, JsonSshLogThreadInit,
JsonSshLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterPacketSubModule("eve-log", "JsonSshLog", "eve-log.ssh",
- OutputSshLogInitSub, JsonSshLogger, JsonSshCondition,
+ OutputRegisterPacketSubModule(LOGGER_JSON_SSH, "eve-log", "JsonSshLog",
+ "eve-log.ssh", OutputSshLogInitSub, JsonSshLogger, JsonSshCondition,
JsonSshLogThreadInit, JsonSshLogThreadDeinit, NULL);
}
void TmModuleJsonStatsLogRegister (void) {
/* register as separate module */
- OutputRegisterStatsModule(MODULE_NAME, "stats-json", OutputStatsLogInit,
- JsonStatsLogger, JsonStatsLogThreadInit, JsonStatsLogThreadDeinit,
- NULL);
+ OutputRegisterStatsModule(LOGGER_JSON_STATS, MODULE_NAME, "stats-json",
+ OutputStatsLogInit, JsonStatsLogger, JsonStatsLogThreadInit,
+ JsonStatsLogThreadDeinit, NULL);
/* also register as child of eve-log */
- OutputRegisterStatsSubModule("eve-log", MODULE_NAME, "eve-log.stats",
- OutputStatsLogInitSub, JsonStatsLogger, JsonStatsLogThreadInit,
- JsonStatsLogThreadDeinit, NULL);
+ OutputRegisterStatsSubModule(LOGGER_JSON_STATS, "eve-log", MODULE_NAME,
+ "eve-log.stats", OutputStatsLogInitSub, JsonStatsLogger,
+ JsonStatsLogThreadInit, JsonStatsLogThreadDeinit, NULL);
}
#else
}
/* TEMPLATE_END_REMOVE */
/* Register as an eve sub-module. */
- OutputRegisterTxSubModule("eve-log", "JsonTemplateLog", "eve-log.template",
- OutputTemplateLogInitSub, ALPROTO_TEMPLATE, JsonTemplateLogger,
- JsonTemplateLogThreadInit, JsonTemplateLogThreadDeinit, NULL);
+ OutputRegisterTxSubModule(LOGGER_JSON_TEMPLATE, "eve-log", "JsonTemplateLog",
+ "eve-log.template", OutputTemplateLogInitSub, ALPROTO_TEMPLATE,
+ JsonTemplateLogger, JsonTemplateLogThreadInit,
+ JsonTemplateLogThreadDeinit, NULL);
SCLogNotice("Template JSON logger registered.");
}
void TmModuleJsonTlsLogRegister (void)
{
/* register as separate module */
- OutputRegisterTxModuleWithProgress("JsonTlsLog", "tls-json-log",
- OutputTlsLogInit, ALPROTO_TLS, JsonTlsLogger, TLS_HANDSHAKE_DONE,
- TLS_HANDSHAKE_DONE, JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL);
-
- /* also register as child of eve-log */
- OutputRegisterTxSubModuleWithProgress("eve-log", "JsonTlsLog",
- "eve-log.tls", OutputTlsLogInitSub, ALPROTO_TLS, JsonTlsLogger,
+ OutputRegisterTxModuleWithProgress(LOGGER_JSON_TLS, "JsonTlsLog",
+ "tls-json-log", OutputTlsLogInit, ALPROTO_TLS, JsonTlsLogger,
TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE, JsonTlsLogThreadInit,
JsonTlsLogThreadDeinit, NULL);
+
+ /* also register as child of eve-log */
+ OutputRegisterTxSubModuleWithProgress(LOGGER_JSON_TLS, "eve-log",
+ "JsonTlsLog", "eve-log.tls", OutputTlsLogInitSub, ALPROTO_TLS,
+ JsonTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
+ JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL);
}
#else
#include "suricata-common.h"
#include "tm-modules.h"
+#include "output.h"
#include "output-packet.h"
#include "util-profiling.h"
OutputCtx *output_ctx;
struct OutputPacketLogger_ *next;
const char *name;
- TmmId module_id;
+ LoggerId logger_id;
ThreadInitFunc ThreadInit;
ThreadDeinitFunc ThreadDeinit;
ThreadExitPrintStatsFunc ThreadExitPrintStats;
static OutputPacketLogger *list = NULL;
-int OutputRegisterPacketLogger(const char *name, PacketLogger LogFunc,
- PacketLogCondition ConditionFunc, OutputCtx *output_ctx,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterPacketLogger(LoggerId logger_id, const char *name,
+ PacketLogger LogFunc, PacketLogCondition ConditionFunc,
+ OutputCtx *output_ctx, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
-#if 0
- int module_id = TmModuleGetIdByName(name);
- if (module_id < 0)
- return -1;
-#endif
-
OutputPacketLogger *op = SCMalloc(sizeof(*op));
if (op == NULL)
return -1;
op->ThreadInit = ThreadInit;
op->ThreadDeinit = ThreadDeinit;
op->ThreadExitPrintStats = ThreadExitPrintStats;
-#if 0
- op->module_id = (TmmId) module_id;
-#endif
+ op->logger_id = logger_id;
if (list == NULL)
list = op;
BUG_ON(logger->LogFunc == NULL || logger->ConditionFunc == NULL);
if ((logger->ConditionFunc(tv, (const Packet *)p)) == TRUE) {
- PACKET_PROFILING_TMM_START(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
logger->LogFunc(tv, store->thread_data, (const Packet *)p);
- PACKET_PROFILING_TMM_END(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
}
logger = logger->next;
#define __OUTPUT_PACKET_H__
#include "decode.h"
+#include "output.h"
/** packet logger function pointer type */
typedef int (*PacketLogger)(ThreadVars *, void *thread_data, const Packet *);
*/
typedef int (*PacketLogCondition)(ThreadVars *, const Packet *);
-int OutputRegisterPacketLogger(const char *name, PacketLogger LogFunc,
- PacketLogCondition ConditionFunc, OutputCtx *, ThreadInitFunc,
- ThreadDeinitFunc, ThreadExitPrintStatsFunc);
+int OutputRegisterPacketLogger(LoggerId logger_id, const char *name,
+ PacketLogger LogFunc, PacketLogCondition ConditionFunc, OutputCtx *,
+ ThreadInitFunc, ThreadDeinitFunc, ThreadExitPrintStatsFunc);
void TmModulePacketLoggerRegister (void);
OutputCtx *output_ctx;
struct OutputStreamingLogger_ *next;
const char *name;
- TmmId module_id;
+ LoggerId logger_id;
enum OutputStreamingType type;
ThreadInitFunc ThreadInit;
ThreadDeinitFunc ThreadDeinit;
static OutputStreamingLogger *list = NULL;
-int OutputRegisterStreamingLogger(const char *name, StreamingLogger LogFunc,
- OutputCtx *output_ctx, enum OutputStreamingType type,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterStreamingLogger(LoggerId id, const char *name,
+ StreamingLogger LogFunc, OutputCtx *output_ctx,
+ enum OutputStreamingType type, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
-#if 0
- int module_id = TmModuleGetIdByName(name);
- if (module_id < 0)
- return -1;
-#endif
-
OutputStreamingLogger *op = SCMalloc(sizeof(*op));
if (op == NULL)
return -1;
op->LogFunc = LogFunc;
op->output_ctx = output_ctx;
op->name = name;
-#if 0
- op->module_id = (TmmId) module_id;
-#endif
+ op->logger_id = id;
op->type = type;
op->ThreadInit = ThreadInit;
op->ThreadDeinit = ThreadDeinit;
if (logger->type == streamer_cbdata->type) {
SCLogDebug("logger %p", logger);
- PACKET_PROFILING_TMM_START(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
logger->LogFunc(tv, store->thread_data, (const Flow *)f, data, data_len, tx_id, flags);
- PACKET_PROFILING_TMM_END(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
}
logger = logger->next;
const Flow *f, const uint8_t *data, uint32_t data_len,
uint64_t tx_id, uint8_t flags);
-int OutputRegisterStreamingLogger(const char *name, StreamingLogger LogFunc,
- OutputCtx *, enum OutputStreamingType, ThreadInitFunc ThreadInit,
- ThreadDeinitFunc ThreadDeinit,
+int OutputRegisterStreamingLogger(LoggerId id, const char *name,
+ StreamingLogger LogFunc, OutputCtx *, enum OutputStreamingType,
+ ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
void TmModuleStreamingLoggerRegister (void);
OutputCtx *output_ctx;
struct OutputTxLogger_ *next;
const char *name;
- TmmId module_id;
+ LoggerId logger_id;
uint32_t id;
int tc_log_progress;
int ts_log_progress;
static OutputTxLogger *list = NULL;
-int OutputRegisterTxLogger(const char *name, AppProto alproto, TxLogger LogFunc,
+int OutputRegisterTxLogger(LoggerId id, const char *name, AppProto alproto,
+ TxLogger LogFunc,
OutputCtx *output_ctx, int tc_log_progress,
int ts_log_progress, TxLoggerCondition LogCondition,
ThreadInitFunc ThreadInit,
op->LogCondition = LogCondition;
op->output_ctx = output_ctx;
op->name = name;
-#if 0
- op->module_id = (TmmId) module_id;
-#endif
+ op->logger_id = id;
op->ThreadInit = ThreadInit;
op->ThreadDeinit = ThreadDeinit;
op->ThreadExitPrintStats = ThreadExitPrintStats;
}
}
- PACKET_PROFILING_TMM_START(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_START(p, logger->logger_id);
logger->LogFunc(tv, store->thread_data, p, f, alstate, tx, tx_id);
- PACKET_PROFILING_TMM_END(p, logger->module_id);
+ PACKET_PROFILING_LOGGER_END(p, logger->logger_id);
AppLayerParserSetTxLogged(p->proto, alproto, alstate, tx,
logger->id);
*/
typedef int (*TxLoggerCondition)(ThreadVars *, const Packet *, void *state, void *tx, uint64_t tx_id);
-int OutputRegisterTxLogger(const char *name, AppProto alproto, TxLogger LogFunc,
+int OutputRegisterTxLogger(LoggerId id, const char *name, AppProto alproto,
+ TxLogger LogFunc,
OutputCtx *, int tc_log_progress, int ts_log_progress,
TxLoggerCondition LogCondition,
ThreadInitFunc, ThreadDeinitFunc,
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterPacketModule(const char *name, const char *conf_name,
+OutputRegisterPacketModule(LoggerId id, const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *),
PacketLogger PacketLogFunc, PacketLogCondition PacketConditionFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterPacketSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
+OutputRegisterPacketSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx),
PacketLogger PacketLogFunc, PacketLogCondition PacketConditionFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
*
* \retval Returns 0 on success, -1 on failure.
*/
-void OutputRegisterTxModuleWrapper(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
- TxLogger TxLogFunc, int tc_log_progress, int ts_log_progress,
- TxLoggerCondition TxLogCondition,
+void OutputRegisterTxModuleWrapper(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ AppProto alproto, TxLogger TxLogFunc, int tc_log_progress,
+ int ts_log_progress, TxLoggerCondition TxLogCondition,
TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
TmEcode (*ThreadDeinit)(ThreadVars *t, void *),
void (*ThreadExitPrintStats)(ThreadVars *, void *))
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
exit(EXIT_FAILURE);
}
-void OutputRegisterTxSubModuleWrapper(const char *parent_name,
+void OutputRegisterTxSubModuleWrapper(LoggerId id, 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,
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
*
* \retval Returns 0 on success, -1 on failure.
*/
-void OutputRegisterTxModuleWithCondition(const char *name,
+void OutputRegisterTxModuleWithCondition(LoggerId id, const char *name,
const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
- OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
- TxLogFunc, -1, -1, TxLogCondition, NULL, NULL, NULL);
+ OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
+ TxLogFunc, -1, -1, TxLogCondition, ThreadInit, ThreadDeinit,
+ ThreadExitPrintStats);
}
-void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
+void OutputRegisterTxSubModuleWithCondition(LoggerId id, const char *parent_name,
const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx), AppProto alproto,
TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
- OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
- alproto, TxLogFunc, -1, -1, TxLogCondition, NULL, NULL, NULL);
+ OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name, InitFunc,
+ alproto, TxLogFunc, -1, -1, TxLogCondition, ThreadInit, ThreadDeinit,
+ ThreadExitPrintStats);
}
/**
*
* \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,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterTxModuleWithProgress(LoggerId id, const char *name,
+ const char *conf_name, 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, ThreadInit,
- ThreadDeinit, ThreadExitPrintStats);
+ OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
+ TxLogFunc, tc_log_progress, ts_log_progress,
+ NULL, ThreadInit, ThreadDeinit,
+ ThreadExitPrintStats);
}
-void OutputRegisterTxSubModuleWithProgress(const char *parent_name,
+void OutputRegisterTxSubModuleWithProgress(LoggerId id, 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,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
- OutputRegisterTxSubModuleWrapper(parent_name, name, conf_name, InitFunc,
+ OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name, InitFunc,
alproto, TxLogFunc, tc_log_progress, ts_log_progress, NULL, ThreadInit,
ThreadDeinit, ThreadExitPrintStats);
}
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterTxModule(const char *name, const char *conf_name,
+OutputRegisterTxModule(LoggerId id, const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
TxLogger TxLogFunc, TmEcode (*ThreadInit)(ThreadVars *, void *, void **),
TmEcode (*ThreadDeinit)(ThreadVars *, void *),
void (*ThreadExitPrintStats)(ThreadVars *, void *))
{
- OutputRegisterTxModuleWrapper(name, conf_name, InitFunc, alproto,
+ OutputRegisterTxModuleWrapper(id, name, conf_name, InitFunc, alproto,
TxLogFunc, -1, -1, NULL, ThreadInit,
ThreadDeinit, ThreadExitPrintStats);
}
-void OutputRegisterTxSubModule(const char *parent_name, const char *name,
- const char *conf_name,
+void OutputRegisterTxSubModule(LoggerId id, 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,
+ OutputRegisterTxSubModuleWrapper(id, parent_name, name, conf_name,
InitFunc, alproto, TxLogFunc, -1, -1, NULL,
ThreadInit, ThreadDeinit,
ThreadExitPrintStats);
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFileModule(const char *name, const char *conf_name,
+OutputRegisterFileModule(LoggerId id, const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), FileLogger FileLogFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFileSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFileSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
FileLogger FileLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFiledataModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), FiledataLogger FiledataLogFunc,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+OutputRegisterFiledataModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
{
if (unlikely(FiledataLogFunc == NULL)) {
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFiledataSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFiledataSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFlowModule(const char *name, const char *conf_name,
+OutputRegisterFlowModule(LoggerId id, const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), FlowLogger FlowLogFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterFlowSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterFlowSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterStreamingModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), StreamingLogger StreamingLogFunc,
+OutputRegisterStreamingModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ StreamingLogger StreamingLogFunc,
enum OutputStreamingType stream_type, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterStreamingSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterStreamingSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterStatsModule(const char *name, const char *conf_name,
+OutputRegisterStatsModule(LoggerId id, const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *), StatsLogger StatsLogFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->InitFunc = InitFunc;
* \retval Returns 0 on success, -1 on failure.
*/
void
-OutputRegisterStatsSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+OutputRegisterStatsSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats)
goto error;
}
+ module->logger_id = id;
module->name = name;
module->conf_name = conf_name;
module->parent_name = parent_name;
#include "output-stats.h"
typedef struct OutputModule_ {
+ LoggerId logger_id;
const char *name;
const char *conf_name;
const char *parent_name;
void OutputRegisterModule(const char *, const char *, OutputCtx *(*)(ConfNode *));
-void OutputRegisterPacketModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *),
+void OutputRegisterPacketModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
PacketLogger LogFunc, PacketLogCondition ConditionFunc,
ThreadInitFunc, ThreadDeinitFunc, ThreadExitPrintStatsFunc);
-void OutputRegisterPacketSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterPacketSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
PacketLogger LogFunc, PacketLogCondition ConditionFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterTxModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
- TxLogger TxLogFunc, TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
+void OutputRegisterTxModule(LoggerId id, const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto, TxLogger TxLogFunc,
+ TmEcode (*ThreadInit)(ThreadVars *t, void *, void **),
TmEcode (*ThreadDeinit)(ThreadVars *t, void *),
void (*ThreadExitPrintStats)(ThreadVars *, void *));
-void OutputRegisterTxSubModule(const char *parent_name, const char *name,
- const char *conf_name,
+void OutputRegisterTxSubModule(LoggerId id, 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);
-void OutputRegisterTxModuleWithCondition(const char *name,
+void OutputRegisterTxModuleWithCondition(LoggerId id, const char *name,
const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterTxSubModuleWithCondition(const char *parent_name,
+void OutputRegisterTxSubModuleWithCondition(LoggerId id, const char *parent_name,
const char *name, const char *conf_name,
OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *parent_ctx), AppProto alproto,
TxLogger TxLogFunc, TxLoggerCondition TxLogCondition,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterTxModuleWithProgress(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), AppProto alproto,
+void OutputRegisterTxModuleWithProgress(LoggerId id, const char *name,
+ const char *conf_name, 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,
+void OutputRegisterTxSubModuleWithProgress(LoggerId id, 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,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFileModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), FileLogger FileLogFunc,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
- ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFileSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterFileModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
FileLogger FileLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-
-void OutputRegisterFiledataModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), FiledataLogger FiledataLogFunc,
+void OutputRegisterFileSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *), FileLogger FileLogFunc,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFiledataSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+
+void OutputRegisterFiledataModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
+ ThreadExitPrintStatsFunc ThreadExitPrintStats);
+void OutputRegisterFiledataSubModule(LoggerId, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
FiledataLogger FiledataLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFlowModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), FlowLogger FlowLogFunc,
- ThreadInitFunc ThreadInit,
+void OutputRegisterFlowModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterFlowSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterFlowSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
FlowLogger FlowLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStreamingModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), StreamingLogger StreamingLogFunc,
- enum OutputStreamingType stream_type, ThreadInitFunc ThreadInit,
- ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterStreamingModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
+ ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStreamingSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterStreamingSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
StreamingLogger StreamingLogFunc, enum OutputStreamingType stream_type,
ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStatsModule(const char *name, const char *conf_name,
- OutputCtx *(*InitFunc)(ConfNode *), StatsLogger StatsLogFunc,
- ThreadInitFunc ThreadInit, ThreadDeinitFunc ThreadDeinit,
+void OutputRegisterStatsModule(LoggerId id, const char *name,
+ const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *),
+ StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
+ ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
-void OutputRegisterStatsSubModule(const char *parent_name, const char *name,
- const char *conf_name, OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
+void OutputRegisterStatsSubModule(LoggerId id, const char *parent_name,
+ const char *name, const char *conf_name,
+ OutputCtx *(*InitFunc)(ConfNode *, OutputCtx *),
StatsLogger StatsLogFunc, ThreadInitFunc ThreadInit,
ThreadDeinitFunc ThreadDeinit,
ThreadExitPrintStatsFunc ThreadExitPrintStats);
/* free list for our outputs */
typedef struct OutputFreeList_ {
-#if 0
- TmModule *tm_module;
-#endif
OutputModule *output_module;
OutputCtx *output_ctx;
{
OutputFreeList *output;
while ((output = TAILQ_FIRST(&output_free_list))) {
-#if 0
- SCLogNotice("output %s %p %p", output->tm_module->name, output, output->output_ctx);
-#endif
SCLogDebug("output %s %p %p", output->output_module->name, output,
output->output_ctx);
* the output ctx at shutdown and unix socket reload */
static void AddOutputToFreeList(OutputModule *module, OutputCtx *output_ctx)
{
-#if 0
- TmModule *tm_module = TmModuleGetByName(module->name);
- if (tm_module == NULL) {
- SCLogError(SC_ERR_INVALID_ARGUMENT,
- "TmModuleGetByName for %s failed", module->name);
- exit(EXIT_FAILURE);
- }
-#endif
OutputFreeList *fl_output = SCCalloc(1, sizeof(OutputFreeList));
if (unlikely(fl_output == NULL))
return;
-#if 0
- fl_output->tm_module = tm_module;
-#endif
fl_output->output_module = module;
fl_output->output_ctx = output_ctx;
TAILQ_INSERT_TAIL(&output_free_list, fl_output, entries);
return;
}
-#if 0
- TmModule *tm_module = TmModuleGetByName(module->name);
- if (tm_module == NULL) {
- SCLogError(SC_ERR_INVALID_ARGUMENT,
- "TmModuleGetByName for %s failed", module->name);
- exit(EXIT_FAILURE);
- }
- /* XXX What to do here? */
- if (tm_module != NULL && strcmp(tmm_modules[TMM_ALERTDEBUGLOG].name, tm_module->name) == 0)
+ if (module->logger_id == LOGGER_ALERT_DEBUG) {
debuglog_enabled = 1;
-#endif
+ }
if (module->PacketLogFunc) {
SCLogNotice("%s is a packet logger", module->name);
- OutputRegisterPacketLogger(module->name, module->PacketLogFunc,
- module->PacketConditionFunc, output_ctx, module->ThreadInit,
- module->ThreadDeinit, module->ThreadExitPrintStats);
+ OutputRegisterPacketLogger(module->logger_id, module->name,
+ module->PacketLogFunc, module->PacketConditionFunc, output_ctx,
+ module->ThreadInit, module->ThreadDeinit,
+ module->ThreadExitPrintStats);
/* need one instance of the packet logger module */
if (pkt_logger_module == NULL) {
}
} else if (module->TxLogFunc) {
SCLogDebug("%s is a tx logger", module->name);
- OutputRegisterTxLogger(module->name, module->alproto,
+ OutputRegisterTxLogger(module->logger_id, module->name, module->alproto,
module->TxLogFunc, output_ctx, module->tc_log_progress,
module->ts_log_progress, module->TxLogCondition,
module->ThreadInit, module->ThreadDeinit,
}
} else if (module->FiledataLogFunc) {
SCLogDebug("%s is a filedata logger", module->name);
- OutputRegisterFiledataLogger(module->name, module->FiledataLogFunc,
- output_ctx, module->ThreadInit, module->ThreadDeinit,
- module->ThreadExitPrintStats);
+ OutputRegisterFiledataLogger(module->logger_id, module->name,
+ module->FiledataLogFunc, output_ctx, module->ThreadInit,
+ module->ThreadDeinit, module->ThreadExitPrintStats);
/* need one instance of the tx logger module */
if (filedata_logger_module == NULL) {
}
} else if (module->FileLogFunc) {
SCLogDebug("%s is a file logger", module->name);
- OutputRegisterFileLogger(module->name, module->FileLogFunc, output_ctx,
- module->ThreadInit, module->ThreadDeinit,
- module->ThreadExitPrintStats);
+ OutputRegisterFileLogger(module->logger_id, module->name,
+ module->FileLogFunc, output_ctx, module->ThreadInit,
+ module->ThreadDeinit, module->ThreadExitPrintStats);
/* need one instance of the tx logger module */
if (file_logger_module == NULL) {
}
} else if (module->StreamingLogFunc) {
SCLogDebug("%s is a streaming logger", module->name);
- OutputRegisterStreamingLogger(module->name, module->StreamingLogFunc,
- output_ctx, module->stream_type, module->ThreadInit,
- module->ThreadDeinit, module->ThreadExitPrintStats);
+ OutputRegisterStreamingLogger(module->logger_id, module->name,
+ module->StreamingLogFunc, output_ctx, module->stream_type,
+ module->ThreadInit, module->ThreadDeinit,
+ module->ThreadExitPrintStats);
/* need one instance of the streaming logger module */
if (streaming_logger_module == NULL) {
if (unlikely(runmode_output == NULL))
return;
runmode_output->name = module->name;
-#if 0
- runmode_output->tm_module = tm_module;
-#endif
runmode_output->output_ctx = output_ctx;
InsertInRunModeOutputs(runmode_output);
}
PROF_DETECT_SIZE,
} PacketProfileDetectId;
+typedef enum {
+ LOGGER_UNDEFINED,
+ LOGGER_ALERT_DEBUG,
+ LOGGER_ALERT_FAST,
+ LOGGER_UNIFIED2,
+ LOGGER_ALERT_SYSLOG,
+ LOGGER_DROP,
+ LOGGER_JSON_ALERT,
+ LOGGER_JSON_DROP,
+ LOGGER_JSON_SSH,
+ LOGGER_DNS,
+ LOGGER_HTTP,
+ LOGGER_JSON_DNS,
+ LOGGER_JSON_HTTP,
+ LOGGER_JSON_SMTP,
+ LOGGER_JSON_TLS,
+ LOGGER_JSON_TEMPLATE,
+ LOGGER_TLS_STORE,
+ LOGGER_TLS,
+ LOGGER_FILE,
+ LOGGER_FILE_STORE,
+ LOGGER_JSON_FILE,
+ LOGGER_TCP_DATA,
+ LOGGER_JSON_FLOW,
+ LOGGER_JSON_NETFLOW,
+ LOGGER_STATS,
+ LOGGER_JSON_STATS,
+ LOGGER_PRELUDE,
+ LOGGER_SIZE,
+} LoggerId;
+
#include <htp/htp.h>
#include "threads.h"
#include "tm-threads-common.h"
SCProfilePacketData packet_profile_detect_data4[PROF_DETECT_SIZE][257];
SCProfilePacketData packet_profile_detect_data6[PROF_DETECT_SIZE][257];
+SCProfilePacketData packet_profile_log_data4[LOGGER_SIZE][256];
+SCProfilePacketData packet_profile_log_data6[LOGGER_SIZE][256];
+
struct ProfileProtoRecords {
SCProfilePacketData records4[257];
SCProfilePacketData records6[257];
void SCProfilingDumpPacketStats(void);
const char * PacketProfileDetectIdToString(PacketProfileDetectId id);
+const char * PacketProfileLoggertIdToString(LoggerId id);
static void FormatNumber(uint64_t num, char *str, size_t size)
{
memset(&packet_profile_app_pd_data6, 0, sizeof(packet_profile_app_pd_data6));
memset(&packet_profile_detect_data4, 0, sizeof(packet_profile_detect_data4));
memset(&packet_profile_detect_data6, 0, sizeof(packet_profile_detect_data6));
+ memset(&packet_profile_log_data4, 0, sizeof(packet_profile_log_data4));
+ memset(&packet_profile_log_data6, 0, sizeof(packet_profile_log_data6));
memset(&packet_profile_flowworker_data, 0, sizeof(packet_profile_flowworker_data));
const char *filename = ConfNodeLookupChildValue(conf, "filename");
}
}
+ fprintf(fp, "\nLogger/output stats:\n");
+
+ total = 0;
+ for (m = 0; m < LOGGER_SIZE; m++) {
+ int p;
+ for (p = 0; p < 257; p++) {
+ SCProfilePacketData *pd = &packet_profile_log_data4[m][p];
+ total += pd->tot;
+ pd = &packet_profile_log_data6[m][p];
+ total += pd->tot;
+ }
+ }
+
+ fprintf(fp, "\n%-24s %-6s %-5s %-12s %-12s %-12s %-12s %-12s\n",
+ "Logger", "IP ver", "Proto", "cnt", "min", "max", "avg", "tot");
+ fprintf(fp, "%-24s %-6s %-5s %-12s %-12s %-12s %-12s %-12s\n",
+ "------------------------", "------", "-----", "----------", "------------", "------------", "-----------", "-----------");
+ for (m = 0; m < LOGGER_SIZE; m++) {
+ int p;
+ for (p = 0; p < 257; p++) {
+ SCProfilePacketData *pd = &packet_profile_log_data4[m][p];
+
+ if (pd->cnt == 0) {
+ continue;
+ }
+
+ FormatNumber(pd->tot, totalstr, sizeof(totalstr));
+ double percent = (long double)pd->tot /
+ (long double)total * 100;
+
+ fprintf(fp, "%-24s IPv4 %3d %12"PRIu64" %12"PRIu64" %12"PRIu64" %12"PRIu64" %12s %-6.2f\n",
+ PacketProfileLoggertIdToString(m), p, pd->cnt, pd->min, pd->max, (uint64_t)(pd->tot / pd->cnt), totalstr, percent);
+ }
+ }
+ for (m = 0; m < LOGGER_SIZE; m++) {
+ int p;
+ for (p = 0; p < 257; p++) {
+ SCProfilePacketData *pd = &packet_profile_log_data6[m][p];
+
+ if (pd->cnt == 0) {
+ continue;
+ }
+
+ FormatNumber(pd->tot, totalstr, sizeof(totalstr));
+ double percent = (long double)pd->tot /
+ (long double)total * 100;
+
+ fprintf(fp, "%-24s IPv6 %3d %12"PRIu64" %12"PRIu64" %12"PRIu64" %12"PRIu64" %12s %-6.2f\n",
+ PacketProfileLoggertIdToString(m), p, pd->cnt, pd->min, pd->max, (uint64_t)(pd->tot / pd->cnt), totalstr, percent);
+ }
+ }
+
fprintf(fp, "\nGeneral detection engine stats:\n");
total = 0;
}
}
+static void SCProfilingUpdatePacketLogRecord(LoggerId id,
+ uint8_t ipproto, PktProfilingLoggerData *pdt, int ipver)
+{
+ if (pdt == NULL) {
+ return;
+ }
+
+ SCProfilePacketData *pd;
+ if (ipver == 4)
+ pd = &packet_profile_log_data4[id][ipproto];
+ else
+ pd = &packet_profile_log_data6[id][ipproto];
+
+ if (pd->min == 0 || pdt->ticks_spent < pd->min) {
+ pd->min = pdt->ticks_spent;
+ }
+ if (pd->max < pdt->ticks_spent) {
+ pd->max = pdt->ticks_spent;
+ }
+
+ pd->tot += pdt->ticks_spent;
+ pd->cnt++;
+}
+
+static void SCProfilingUpdatePacketLogRecords(Packet *p)
+{
+ for (LoggerId i = 0; i < LOGGER_SIZE; i++) {
+ PktProfilingLoggerData *pdt = &p->profile->logger[i];
+
+ if (pdt->ticks_spent > 0) {
+ if (PKT_IS_IPV4(p)) {
+ SCProfilingUpdatePacketLogRecord(i, p->proto, pdt, 4);
+ } else {
+ SCProfilingUpdatePacketLogRecord(i, p->proto, pdt, 6);
+ }
+ }
+ }
+}
+
void SCProfilingAddPacket(Packet *p)
{
if (p == NULL || p->profile == NULL ||
SCProfilingUpdatePacketTmmRecords(p);
SCProfilingUpdatePacketAppRecords(p);
SCProfilingUpdatePacketDetectRecords(p);
+ SCProfilingUpdatePacketLogRecords(p);
} else if (PKT_IS_IPV6(p)) {
SCProfilePacketData *pd = &packet_profile_data6[p->proto];
SCProfilingUpdatePacketTmmRecords(p);
SCProfilingUpdatePacketAppRecords(p);
SCProfilingUpdatePacketDetectRecords(p);
+ SCProfilingUpdatePacketLogRecords(p);
}
}
pthread_mutex_unlock(&packet_profile_lock);
}
}
-
+/**
+ * \brief Maps the LoggerId's to its string equivalent for profiling output.
+ *
+ * \param id LoggerId id
+ *
+ * \retval string equivalent for the LoggerId id
+ */
+const char * PacketProfileLoggertIdToString(LoggerId id)
+{
+ switch (id) {
+ CASE_CODE (LOGGER_UNDEFINED);
+ CASE_CODE (LOGGER_ALERT_DEBUG);
+ CASE_CODE (LOGGER_ALERT_FAST);
+ CASE_CODE (LOGGER_UNIFIED2);
+ CASE_CODE (LOGGER_ALERT_SYSLOG);
+ CASE_CODE (LOGGER_DROP);
+ CASE_CODE (LOGGER_JSON_ALERT);
+ CASE_CODE (LOGGER_JSON_DROP);
+ CASE_CODE (LOGGER_JSON_SSH);
+ CASE_CODE (LOGGER_DNS);
+ CASE_CODE (LOGGER_HTTP);
+ CASE_CODE (LOGGER_JSON_DNS);
+ CASE_CODE (LOGGER_JSON_HTTP);
+ CASE_CODE (LOGGER_JSON_SMTP);
+ CASE_CODE (LOGGER_JSON_TLS);
+ CASE_CODE (LOGGER_JSON_TEMPLATE);
+ CASE_CODE (LOGGER_TLS_STORE);
+ CASE_CODE (LOGGER_TLS);
+ CASE_CODE (LOGGER_FILE);
+ CASE_CODE (LOGGER_FILE_STORE);
+ CASE_CODE (LOGGER_JSON_FILE);
+ CASE_CODE (LOGGER_TCP_DATA);
+ CASE_CODE (LOGGER_JSON_FLOW);
+ CASE_CODE (LOGGER_JSON_NETFLOW);
+ CASE_CODE (LOGGER_STATS);
+ CASE_CODE (LOGGER_JSON_STATS);
+ CASE_CODE (LOGGER_PRELUDE);
+ default:
+ return "UNKNOWN";
+ }
+}
#ifdef UNITTESTS
} \
}
+#define PACKET_PROFILING_LOGGER_START(p, id) \
+ if (profiling_packets_enabled && (p)->profile != NULL) { \
+ if ((id) < LOGGER_SIZE) { \
+ (p)->profile->logger[(id)].ticks_start = UtilCpuGetTicks(); \
+ } \
+ }
+
+#define PACKET_PROFILING_LOGGER_END(p, id) \
+ if (profiling_packets_enabled && (p)->profile != NULL) { \
+ if ((id) < LOGGER_SIZE) { \
+ (p)->profile->logger[(id)].ticks_end = UtilCpuGetTicks();\
+ if ((p)->profile->logger[(id)].ticks_start != 0 && \
+ (p)->profile->logger[(id)].ticks_start < (p)->profile->logger[(id)].ticks_end) { \
+ (p)->profile->logger[(id)].ticks_spent += \
+ ((p)->profile->logger[(id)].ticks_end - (p)->profile->logger[(id)].ticks_start); \
+ } \
+ } \
+ }
+
#define SGH_PROFILING_RECORD(det_ctx, sgh) \
if (profiling_sghs_enabled) { \
SCProfilingSghUpdateCounter((det_ctx), (sgh)); \
#define PACKET_PROFILING_DETECT_START(p, id)
#define PACKET_PROFILING_DETECT_END(p, id)
+#define PACKET_PROFILING_LOGGER_START(p, id)
+#define PACKET_PROFILING_LOGGER_END(p, id)
+
#define SGH_PROFILING_RECORD(det_ctx, sgh)
#define FLOWWORKER_PROFILING_START(p, id)