Go to the documentation of this file.
24 #ifndef SURICATA_OUTPUT_JSON_H
25 #define SURICATA_OUTPUT_JSON_H
37 #define JSON_ADDR_LEN 46
38 #define JSON_PROTO_LEN 16
56 #define JSON_OUTPUT_BUFFER_SIZE 65535
93 void EveFileInfo(SCJsonBuilder *js,
const File *file,
const uint64_t tx_id,
const uint16_t
flags);
95 void EvePacket(
const Packet *p, SCJsonBuilder *js, uint32_t max_length);
void FreeEveThreadCtx(OutputJsonThreadCtx *ctx)
struct OutputJsonCommonSettings_ OutputJsonCommonSettings
json_t * SCJsonString(const char *val)
void EveFileInfo(SCJsonBuilder *js, const File *file, const uint64_t tx_id, const uint16_t flags)
OutputJsonCommonSettings cfg
struct OutputJsonCtx_ OutputJsonCtx
void CreateEveFlowId(SCJsonBuilder *js, const Flow *f)
enum LogFileType json_out
bool include_community_id
const JsonAddrInfo json_addr_info_zero
SCJsonBuilder * CreateEveHeaderWithTxId(const Packet *p, enum SCOutputJsonLogDirection dir, const char *event_type, JsonAddrInfo *addr, uint64_t tx_id, OutputJsonCtx *eve_ctx)
bool include_suricata_version
TmEcode JsonLogThreadDeinit(ThreadVars *t, void *data)
struct OutputJsonThreadCtx_ OutputJsonThreadCtx
void JsonAddrInfoInit(const Packet *p, enum SCOutputJsonLogDirection dir, JsonAddrInfo *addr)
void JSONFormatAndAddMACAddr(SCJsonBuilder *js, const char *key, const uint8_t *val, bool is_array)
Per thread variable structure.
void EvePacket(const Packet *p, SCJsonBuilder *js, uint32_t max_length)
Jsonify a packet.
int OutputJsonLogFlush(ThreadVars *tv, void *thread_data, const Packet *p)
void EveTcpFlags(uint8_t flags, SCJsonBuilder *js)
jsonify tcp flags field Only add 'true' fields in an attempt to keep things reasonably compact.
void OutputJsonFlush(OutputJsonThreadCtx *ctx)
char proto[JSON_PROTO_LEN]
void EveAddCommonOptions(const OutputJsonCommonSettings *cfg, const Packet *p, const Flow *f, SCJsonBuilder *js, enum SCOutputJsonLogDirection dir)
void EveAddMetadata(const Packet *p, const Flow *f, SCJsonBuilder *js)
void OutputJsonRegister(void)
SCJsonBuilder * CreateEveHeader(const Packet *p, enum SCOutputJsonLogDirection dir, const char *event_type, JsonAddrInfo *addr, OutputJsonCtx *eve_ctx)
char src_ip[JSON_ADDR_LEN]
struct JsonAddrInfo_ JsonAddrInfo
char dst_ip[JSON_ADDR_LEN]
OutputInitResult OutputJsonLogInitSub(SCConfNode *conf, OutputCtx *parent_ctx)
void OutputJsonBuilderBuffer(ThreadVars *tv, const Packet *p, Flow *f, SCJsonBuilder *js, OutputJsonThreadCtx *ctx)
int OutputJSONBuffer(json_t *js, LogFileCtx *file_ctx, MemBuffer **buffer)
uint16_t community_id_seed
struct OutputJSONMemBufferWrapper_ OutputJSONMemBufferWrapper
int OutputJSONMemBufferCallback(const char *str, size_t size, void *data)
Structure used to define an EVE output file type plugin.
TmEcode JsonLogThreadInit(ThreadVars *t, const void *initdata, void **data)
OutputInitResult OutputJsonInitCtx(SCConfNode *)
Create a new LogFileCtx for "fast" output style.
OutputJsonThreadCtx * CreateEveThreadCtx(ThreadVars *t, OutputJsonCtx *ctx)