}
}
-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);