} AlertJsonOutputCtx;
typedef struct JsonAlertLogThread_ {
- /** LogFileCtx has the pointer to the file and a mutex to allow multithreading */
- LogFileCtx* file_ctx;
- MemBuffer *json_buffer;
MemBuffer *payload_buffer;
AlertJsonOutputCtx* json_output_ctx;
+ OutputJsonThreadCtx *ctx;
} JsonAlertLogThread;
/* Callback function to pack payload contents from a stream into a buffer
if (unlikely(jb == NULL))
return TM_ECODE_OK;
- MemBufferReset(aft->json_buffer);
/* alert */
AlertJsonHeader(json_output_ctx, p, pa, jb, json_output_ctx->flags,
jb_set_string(jb, "xff", xff_buffer);
}
- OutputJsonBuilderBuffer(jb, aft->file_ctx, &aft->json_buffer);
+ OutputJsonBuilderBuffer(jb, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(jb);
}
if ((p->flags & PKT_HAS_TAG) && (json_output_ctx->flags &
LOG_JSON_TAGGED_PACKETS)) {
- MemBufferReset(aft->json_buffer);
JsonBuilder *packetjs =
CreateEveHeader(p, LOG_DIR_PACKET, "packet", NULL, json_output_ctx->eve_ctx);
if (unlikely(packetjs != NULL)) {
EvePacket(p, packetjs, 0);
- OutputJsonBuilderBuffer(packetjs, aft->file_ctx, &aft->json_buffer);
+ OutputJsonBuilderBuffer(packetjs, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(packetjs);
}
}
CreateIsoTimeString(&p->ts, timebuf, sizeof(timebuf));
for (int i = 0; i < p->alerts.cnt; i++) {
- MemBufferReset(aft->json_buffer);
-
const PacketAlert *pa = &p->alerts.alerts[i];
if (unlikely(pa->s == NULL)) {
continue;
AlertJsonHeader(json_output_ctx, p, pa, jb, json_output_ctx->flags, NULL);
- OutputJsonBuilderBuffer(jb, aft->file_ctx, &aft->json_buffer);
+ OutputJsonBuilderBuffer(jb, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(jb);
}
goto error_exit;
}
- aft->json_buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->json_buffer == NULL) {
- goto error_exit;
- }
-
/** Use the Output Context (file pointer and mutex) */
AlertJsonOutputCtx *json_output_ctx = ((OutputCtx *)initdata)->data;
if (aft->payload_buffer == NULL) {
goto error_exit;
}
- aft->file_ctx = LogFileEnsureExists(json_output_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, json_output_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->json_buffer != NULL) {
- MemBufferFree(aft->json_buffer);
- }
if (aft->payload_buffer != NULL) {
MemBufferFree(aft->payload_buffer);
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->json_buffer);
MemBufferFree(aft->payload_buffer);
+ FreeEveThreadCtx(aft->ctx);
/* clear memory */
memset(aft, 0, sizeof(JsonAlertLogThread));
} AnomalyJsonOutputCtx;
typedef struct JsonAnomalyLogThread_ {
- /** LogFileCtx has the pointer to the file and a mutex to allow multithreading */
- LogFileCtx* file_ctx;
- MemBuffer *json_buffer;
AnomalyJsonOutputCtx* json_output_ctx;
+ OutputJsonThreadCtx *ctx;
} JsonAnomalyLogThread;
/*
if (!is_decode && !log_stream)
continue;
- MemBufferReset(aft->json_buffer);
-
JsonBuilder *js = CreateEveHeader(
p, LOG_DIR_PACKET, ANOMALY_EVENT_TYPE, NULL, aft->json_output_ctx->eve_ctx);
if (unlikely(js == NULL)) {
EvePacket(p, js, GET_PKT_LEN(p) < 32 ? GET_PKT_LEN(p) : 32);
}
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->json_buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(js);
}
tx_id != TX_ID_UNUSED ? "tx" : "no-tx");
for (int i = decoder_events->event_last_logged; i < decoder_events->cnt; i++) {
- MemBufferReset(aft->json_buffer);
-
JsonBuilder *js;
if (tx_id != TX_ID_UNUSED) {
js = CreateEveHeaderWithTxId(p, LOG_DIR_PACKET, ANOMALY_EVENT_TYPE, NULL, tx_id,
/* anomaly */
jb_close(js);
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->json_buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(js);
/* Current implementation assumes a single owner for this value */
goto error_exit;
}
- aft->json_buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->json_buffer == NULL) {
- goto error_exit;
- }
-
/** Use the Output Context (file pointer and mutex) */
AnomalyJsonOutputCtx *json_output_ctx = ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(json_output_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, json_output_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
aft->json_output_ctx = json_output_ctx;
return TM_ECODE_OK;
error_exit:
- if (aft->json_buffer != NULL) {
- MemBufferFree(aft->json_buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->json_buffer);
+ FreeEveThreadCtx(aft->ctx);
/* clear memory */
memset(aft, 0, sizeof(JsonAnomalyLogThread));
typedef struct LogDHCPLogThread_ {
LogDHCPFileCtx *dhcplog_ctx;
- MemBuffer *buffer;
- LogFileCtx *file_ctx;
+ OutputJsonThreadCtx *thread;
} LogDHCPLogThread;
static int JsonDHCPLogger(ThreadVars *tv, void *thread_data,
rs_dhcp_logger_log(ctx->rs_logger, tx, js);
- MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(js, thread->thread->file_ctx, &thread->thread->buffer);
jb_free(js);
return TM_ECODE_OK;
return result;
}
-
static TmEcode JsonDHCPLogThreadInit(ThreadVars *t, const void *initdata, void **data)
{
LogDHCPLogThread *thread = SCCalloc(1, sizeof(*thread));
if (unlikely(thread == NULL)) {
return TM_ECODE_FAILED;
}
-
- if (initdata == NULL) {
- SCLogDebug("Error getting context for EveLogDHCP. \"initdata\" is NULL.");
- goto error_exit;
- }
-
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
- goto error_exit;
- }
-
- thread->dhcplog_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->dhcplog_ctx->eve_ctx->file_ctx, t->id);
- if (!thread->file_ctx) {
- goto error_exit;
+ LogDHCPFileCtx *ctx = ((OutputCtx *)initdata)->data;
+ thread->dhcplog_ctx = ctx;
+ thread->thread = CreateEveThreadCtx(t, ctx->eve_ctx);
+ if (thread->thread == NULL) {
+ SCFree(thread);
+ return TM_ECODE_FAILED;
}
*data = (void *)thread;
return TM_ECODE_OK;
-
-error_exit:
- if (unlikely(thread->buffer != NULL)) {
- MemBufferFree(thread->buffer);
- }
- SCFree(thread);
- return TM_ECODE_FAILED;
}
static TmEcode JsonDHCPLogThreadDeinit(ThreadVars *t, void *data)
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->thread);
SCFree(thread);
return TM_ECODE_OK;
}
} LogDNP3FileCtx;
typedef struct LogDNP3LogThread_ {
- LogFileCtx *file_ctx;
LogDNP3FileCtx *dnp3log_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} LogDNP3LogThread;
static void JsonDNP3LogLinkControl(JsonBuilder *js, uint8_t lc)
LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
DNP3Transaction *tx = vtx;
- MemBuffer *buffer = (MemBuffer *)thread->buffer;
+ MemBuffer *buffer = (MemBuffer *)thread->ctx->buffer;
MemBufferReset(buffer);
if (tx->has_request && tx->request_done) {
jb_open_object(js, "dnp3");
JsonDNP3LogRequest(js, tx);
jb_close(js);
- OutputJsonBuilderBuffer(js, thread->file_ctx, &buffer);
+ OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &buffer);
jb_free(js);
}
LogDNP3LogThread *thread = (LogDNP3LogThread *)thread_data;
DNP3Transaction *tx = vtx;
- MemBuffer *buffer = (MemBuffer *)thread->buffer;
+ MemBuffer *buffer = (MemBuffer *)thread->ctx->buffer;
MemBufferReset(buffer);
if (tx->has_response && tx->response_done) {
jb_open_object(js, "dnp3");
JsonDNP3LogResponse(js, tx);
jb_close(js);
- OutputJsonBuilderBuffer(js, thread->file_ctx, &buffer);
+ OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &buffer);
jb_free(js);
}
goto error_exit;
}
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
- goto error_exit;
- }
-
thread->dnp3log_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->dnp3log_ctx->eve_ctx->file_ctx, t->id);
- if (!thread->file_ctx) {
+ thread->ctx = CreateEveThreadCtx(t, thread->dnp3log_ctx->eve_ctx);
+ if (thread->ctx == NULL) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
SCFree(thread);
return TM_ECODE_FAILED;
}
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->ctx);
SCFree(thread);
return TM_ECODE_OK;
}
typedef struct LogDnsLogThread_ {
LogDnsFileCtx *dnslog_ctx;
- /** LogFileCtx has the pointer to the file and a mutex to allow multithreading */
- LogFileCtx *file_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} LogDnsLogThread;
static bool v1_deprecation_warned = false;
}
jb_close(jb);
- MemBufferReset(td->buffer);
- OutputJsonBuilderBuffer(jb, td->file_ctx, &td->buffer);
+ OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
jb_free(jb);
}
jb_open_object(jb, "dns");
rs_dns_log_json_answer(txptr, td->dnslog_ctx->flags, jb);
jb_close(jb);
- MemBufferReset(td->buffer);
- OutputJsonBuilderBuffer(jb, td->file_ctx, &td->buffer);
+ OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
jb_free(jb);
}
} else {
jb_set_object(jb, "dns", answer);
jb_free(answer);
- MemBufferReset(td->buffer);
- OutputJsonBuilderBuffer(jb, td->file_ctx, &td->buffer);
+ OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
jb_free(jb);
}
/* Log authorities. */
jb_set_object(jb, "dns", answer);
jb_free(answer);
- MemBufferReset(td->buffer);
- OutputJsonBuilderBuffer(jb, td->file_ctx, &td->buffer);
+ OutputJsonBuilderBuffer(jb, td->ctx->file_ctx, &td->ctx->buffer);
jb_free(jb);
}
}
goto error_exit;
}
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
- goto error_exit;
- }
-
/* Use the Ouptut Context (file pointer and mutex) */
- aft->dnslog_ctx= ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(aft->dnslog_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->dnslog_ctx = ((OutputCtx *)initdata)->data;
+ aft->ctx = CreateEveThreadCtx(t, aft->dnslog_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
if (aft == NULL) {
return TM_ECODE_OK;
}
+ FreeEveThreadCtx(aft->ctx);
- MemBufferFree(aft->buffer);
/* clear memory */
memset(aft, 0, sizeof(LogDnsLogThread));
} JsonDropOutputCtx;
typedef struct JsonDropLogThread_ {
- LogFileCtx *file_ctx;
JsonDropOutputCtx *drop_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonDropLogThread;
/* default to true as this has been the default behavior for a long time */
jb_open_object(js, "drop");
- /* reset */
- MemBufferReset(aft->buffer);
-
uint16_t proto = 0;
if (PKT_IS_IPV4(p)) {
jb_set_uint(js, "len", IPV4_GET_IPLEN(p));
}
}
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(js);
return TM_ECODE_OK;
goto error_exit;
}
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
- goto error_exit;
- }
-
/** Use the Ouptut Context (file pointer and mutex) */
aft->drop_ctx = ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(aft->drop_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, aft->drop_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->buffer);
+ FreeEveThreadCtx(aft->ctx);
/* clear memory */
memset(aft, 0, sizeof(*aft));
} OutputJsonEmailCtx;
typedef struct JsonEmailLogThread_ {
- LogFileCtx *file_ctx;
OutputJsonEmailCtx *emaillog_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonEmailLogThread;
TmEcode EveEmailLogJson(JsonEmailLogThread *aft, JsonBuilder *js, const Packet *p, Flow *f, void *state, void *vtx, uint64_t tx_id);
typedef struct JsonFileLogThread_ {
OutputFileCtx *filelog_ctx;
- LogFileCtx *file_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonFileLogThread;
JsonBuilder *JsonBuildFileInfoRecord(const Packet *p, const File *ff, const bool stored,
return;
}
- MemBufferReset(aft->buffer);
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(js);
}
goto error_exit;
}
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
- goto error_exit;
- }
-
/* Use the Ouptut Context (file pointer and mutex) */
aft->filelog_ctx = ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(aft->filelog_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, aft->filelog_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->buffer);
+ FreeEveThreadCtx(aft->ctx);
+
/* clear memory */
memset(aft, 0, sizeof(JsonFileLogThread));
typedef struct JsonHttpLogThread_ {
LogHttpFileCtx *httplog_ctx;
- LogFileCtx *file_ctx;
- /** LogFileCtx has the pointer to the file and a mutex to allow multithreading */
uint32_t uri_cnt;
-
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonHttpLogThread;
#define MAX_SIZE_HEADER_NAME 256
SCLogDebug("got a HTTP request and now logging !!");
- /* reset */
- MemBufferReset(jhl->buffer);
-
EveHttpLogJSON(jhl, js, tx, tx_id);
HttpXFFCfg *xff_cfg = jhl->httplog_ctx->xff_cfg != NULL ?
jhl->httplog_ctx->xff_cfg : jhl->httplog_ctx->parent_xff_cfg;
}
}
- OutputJsonBuilderBuffer(js, jhl->file_ctx, &jhl->buffer);
+ OutputJsonBuilderBuffer(js, jhl->ctx->file_ctx, &jhl->ctx->buffer);
jb_free(js);
SCReturnInt(TM_ECODE_OK);
/* Use the Output Context (file pointer and mutex) */
aft->httplog_ctx = ((OutputCtx *)initdata)->data; //TODO
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
- goto error_exit;
- }
-
- aft->file_ctx = LogFileEnsureExists(aft->httplog_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, aft->httplog_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->buffer);
+ FreeEveThreadCtx(aft->ctx);
+
/* clear memory */
memset(aft, 0, sizeof(JsonHttpLogThread));
typedef struct JsonHttp2LogThread_ {
OutputHttp2Ctx *http2log_ctx;
- LogFileCtx *file_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonHttp2LogThread;
if (unlikely(js == NULL))
return 0;
- /* reset */
- MemBufferReset(aft->buffer);
-
jb_open_object(js, "http");
if (!rs_http2_log_json(txptr, js)) {
goto end;
}
jb_close(js);
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
end:
jb_free(js);
return 0;
/* Use the Output Context (file pointer and mutex) */
aft->http2log_ctx = ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(aft->http2log_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
- goto error_exit;
- }
-
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
+ aft->ctx = CreateEveThreadCtx(t, aft->http2log_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->buffer);
+ FreeEveThreadCtx(aft->ctx);
/* clear memory */
memset(aft, 0, sizeof(JsonHttp2LogThread));
} LogIKEFileCtx;
typedef struct LogIKELogThread_ {
- LogFileCtx *file_ctx;
LogIKEFileCtx *ikelog_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} LogIKELogThread;
bool EveIKEAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
goto error;
}
- MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(jb, thread->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(jb, thread->ctx->file_ctx, &thread->ctx->buffer);
jb_free(jb);
return TM_ECODE_OK;
goto error_exit;
}
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
- goto error_exit;
- }
-
thread->ikelog_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->ikelog_ctx->eve_ctx->file_ctx, t->id);
- if (!thread->file_ctx) {
+ thread->ctx = CreateEveThreadCtx(t, thread->ikelog_ctx->eve_ctx);
+ if (!thread->ctx) {
goto error_exit;
}
return TM_ECODE_OK;
error_exit:
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
SCFree(thread);
return TM_ECODE_FAILED;
}
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->ctx);
SCFree(thread);
return TM_ECODE_OK;
}
typedef struct LogMQTTLogThread_ {
LogMQTTFileCtx *mqttlog_ctx;
uint32_t count;
- MemBuffer *buffer;
- LogFileCtx *file_ctx;
+ OutputJsonThreadCtx *ctx;
} LogMQTTLogThread;
bool JsonMQTTAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
if (!rs_mqtt_logger_log(state, tx, thread->mqttlog_ctx->flags, js))
goto error;
- MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(js, thread->mqttlog_ctx->eve_ctx->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
jb_free(js);
return TM_ECODE_OK;
return TM_ECODE_FAILED;
}
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
+ thread->mqttlog_ctx = ((OutputCtx *)initdata)->data;
+ thread->ctx = CreateEveThreadCtx(t, thread->mqttlog_ctx->eve_ctx);
+ if (unlikely(thread->ctx == NULL)) {
SCFree(thread);
return TM_ECODE_FAILED;
}
- thread->mqttlog_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->mqttlog_ctx->eve_ctx->file_ctx, t->id);
-
*data = (void *)thread;
return TM_ECODE_OK;
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->ctx);
SCFree(thread);
return TM_ECODE_OK;
}
if (unlikely(jb == NULL))
return TM_ECODE_OK;
- /* reset */
- MemBufferReset(jhl->buffer);
-
jb_open_object(jb, "smtp");
EveSmtpDataLogger(f, state, tx, tx_id, jb);
jb_close(jb);
if (EveEmailLogJson(jhl, jb, p, f, state, tx, tx_id) == TM_ECODE_OK) {
- OutputJsonBuilderBuffer(jb, jhl->file_ctx, &jhl->buffer);
+ OutputJsonBuilderBuffer(jb, jhl->ctx->file_ctx, &jhl->ctx->buffer);
}
jb_free(jb);
/* Use the Output Context (file pointer and mutex) */
aft->emaillog_ctx = ((OutputCtx *)initdata)->data;
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
+ aft->ctx = CreateEveThreadCtx(t, aft->emaillog_ctx->eve_ctx);
+ if (aft->ctx == NULL) {
goto error_exit;
}
- aft->file_ctx = LogFileEnsureExists(aft->emaillog_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
- goto error_exit;
- }
*data = (void *)aft;
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
if (aft == NULL) {
return TM_ECODE_OK;
}
+ FreeEveThreadCtx(aft->ctx);
- MemBufferFree(aft->buffer);
/* clear memory */
memset(aft, 0, sizeof(JsonEmailLogThread));
typedef struct LogTemplateLogThread_ {
LogTemplateFileCtx *templatelog_ctx;
- LogFileCtx *file_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} LogTemplateLogThread;
static int JsonTemplateLogger(ThreadVars *tv, void *thread_data,
}
jb_close(js);
- MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
jb_free(js);
return TM_ECODE_OK;
goto error_exit;
}
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
- goto error_exit;
- }
-
thread->templatelog_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->templatelog_ctx->eve_ctx->file_ctx, t->id);
- if (!thread->file_ctx) {
+ thread->ctx = CreateEveThreadCtx(t, thread->templatelog_ctx->eve_ctx);
+ if (!thread->ctx) {
goto error_exit;
}
*data = (void *)thread;
return TM_ECODE_OK;
error_exit:
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
SCFree(thread);
return TM_ECODE_FAILED;
}
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->ctx);
SCFree(thread);
return TM_ECODE_OK;
}
} LogTemplateFileCtx;
typedef struct LogTemplateLogThread_ {
- LogFileCtx *file_ctx;
LogTemplateFileCtx *templatelog_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} LogTemplateLogThread;
static int JsonTemplateLogger(ThreadVars *tv, void *thread_data,
/* Close template. */
jb_close(js);
- MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(js, thread->ctx->file_ctx, &thread->ctx->buffer);
jb_free(js);
return TM_ECODE_OK;
goto error_exit;
}
- thread->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (unlikely(thread->buffer == NULL)) {
- goto error_exit;
- }
-
thread->templatelog_ctx = ((OutputCtx *)initdata)->data;
- thread->file_ctx = LogFileEnsureExists(thread->templatelog_ctx->eve_ctx->file_ctx, t->id);
- if (!thread->file_ctx) {
+ thread->ctx = CreateEveThreadCtx(t, thread->templatelog_ctx->eve_ctx);
+ if (!thread->ctx) {
goto error_exit;
}
*data = (void *)thread;
return TM_ECODE_OK;
error_exit:
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
SCFree(thread);
return TM_ECODE_FAILED;
}
if (thread == NULL) {
return TM_ECODE_OK;
}
- if (thread->buffer != NULL) {
- MemBufferFree(thread->buffer);
- }
+ FreeEveThreadCtx(thread->ctx);
SCFree(thread);
return TM_ECODE_OK;
}
typedef struct JsonTlsLogThread_ {
- LogFileCtx *file_ctx;
OutputTlsCtx *tlslog_ctx;
- MemBuffer *buffer;
+ OutputJsonThreadCtx *ctx;
} JsonTlsLogThread;
static void JsonTlsLogSubject(JsonBuilder *js, SSLState *ssl_state)
jb_open_object(js, "tls");
- /* reset */
- MemBufferReset(aft->buffer);
-
/* log custom fields */
if (tls_ctx->flags & LOG_TLS_CUSTOM) {
JsonTlsLogJSONCustom(tls_ctx, js, ssl_state);
/* Close the tls object. */
jb_close(js);
- OutputJsonBuilderBuffer(js, aft->file_ctx, &aft->buffer);
+ OutputJsonBuilderBuffer(js, aft->ctx->file_ctx, &aft->ctx->buffer);
jb_free(js);
return 0;
goto error_exit;
}
- aft->buffer = MemBufferCreateNew(JSON_OUTPUT_BUFFER_SIZE);
- if (aft->buffer == NULL) {
- goto error_exit;
- }
-
/* use the Output Context (file pointer and mutex) */
aft->tlslog_ctx = ((OutputCtx *)initdata)->data;
- aft->file_ctx = LogFileEnsureExists(aft->tlslog_ctx->eve_ctx->file_ctx, t->id);
- if (!aft->file_ctx) {
+ aft->ctx = CreateEveThreadCtx(t, aft->tlslog_ctx->eve_ctx);
+ if (!aft->ctx) {
goto error_exit;
}
*data = (void *)aft;
return TM_ECODE_OK;
error_exit:
- if (aft->buffer != NULL) {
- MemBufferFree(aft->buffer);
- }
SCFree(aft);
return TM_ECODE_FAILED;
}
return TM_ECODE_OK;
}
- MemBufferFree(aft->buffer);
+ FreeEveThreadCtx(aft->ctx);
/* clear memory */
memset(aft, 0, sizeof(JsonTlsLogThread));