Project

General

Profile

Bug #4109 » ethernet-metadata-packet-context.patch

Sascha Steinbiss, 11/08/2020 12:03 PM

View differences:

src/output-json.c
}
}
int CreateJSONEther(JsonBuilder *parent, const Packet *p, const MacSet *ms);
int CreateJSONEther(JsonBuilder *parent, const Packet *p, const Flow *f);
void EveAddCommonOptions(const OutputJsonCommonSettings *cfg,
const Packet *p, const Flow *f, JsonBuilder *js)
......
EveAddMetadata(p, f, js);
}
if (cfg->include_ethernet) {
MacSet *ms = FlowGetStorageById((Flow*) f, MacSetGetFlowStorageID());
if (ms != NULL)
CreateJSONEther(js, p, ms);
CreateJSONEther(js, p, f);
}
if (cfg->include_community_id && f != NULL) {
CreateEveCommunityFlowId(js, f, cfg->community_id_seed);
......
return 0;
}
int CreateJSONEther(JsonBuilder *js, const Packet *p, const MacSet *ms)
int CreateJSONEther(JsonBuilder *js, const Packet *p, const Flow *f)
{
jb_open_object(js, "ether");
if (unlikely(js == NULL))
return 0;
/* start new EVE sub-object */
jb_open_object(js, "ether");
if (p == NULL) {
MacSet *ms = NULL;
/* ensure we have a flow */
if (unlikely(f == NULL)) {
jb_close(js);
return 0;
}
/* we are creating an ether object in a flow context, so we need to
append to arrays */
if (MacSetSize(ms) > 0) {
ms = FlowGetStorageById((Flow*) f, MacSetGetFlowStorageID());
if (ms != NULL && MacSetSize(ms) > 0) {
JSONMACAddrInfo info;
info.dst = jb_new_array();
info.src = jb_new_array();
......
/* should not happen, JSONFlowAppendMACAddrs is sane */
jb_free(info.dst);
jb_free(info.src);
jb_close(js);
return ret;
}
jb_close(info.dst);
(5-5/8)