/**
* \brief Add top-level metadata to the eve json object.
*/
-static void JsonAddMetadata(const Packet *p, const Flow *f, json_t *js)
+void JsonAddMetadata(const Packet *p, const Flow *f, json_t *js)
{
if ((p && p->pktvar) || (f && f->flowvar)) {
json_t *js_vars = json_object();
/* 5-tuple */
JsonFiveTuple(p, direction_sensitive, js);
- /* Metadata. */
- JsonAddMetadata(p, f, js);
-
/* icmp */
switch (p->proto) {
case IPPROTO_ICMP:
}
}
+ /* Check if top-level metadata should be logged. */
+ const ConfNode *metadata = ConfNodeLookupChild(conf, "metadata");
+ if (metadata && metadata->val && ConfValIsFalse(metadata->val)) {
+ SCLogConfig("Disabling eve metadata logging.");
+ json_ctx->include_metadata = false;
+ } else {
+ json_ctx->include_metadata = true;
+ }
+
json_ctx->file_ctx->type = json_ctx->json_out;
}
int OutputJSONMemBufferCallback(const char *str, size_t size, void *data);
void JsonAddVars(const Packet *p, const Flow *f, json_t *js);
+void JsonAddMetadata(const Packet *p, const Flow *f, json_t *js);
void CreateJSONFlowId(json_t *js, const Flow *f);
void JsonTcpFlags(uint8_t flags, json_t *js);
void JsonFiveTuple(const Packet *, int, json_t *);
typedef struct OutputJsonCtx_ {
LogFileCtx *file_ctx;
enum LogFileType json_out;
+ bool include_metadata;
} OutputJsonCtx;
json_t *SCJsonBool(int val);
# pipelining:
# enabled: yes ## set enable to yes to enable query pipelining
# batch-size: 10 ## number of entry to keep in buffer
+
+ # Include top level metadata. Default yes.
+ #metadata: no
+
types:
- alert:
# payload: yes # enable dumping payload in Base64