From: Jason Ish Date: Fri, 10 Jul 2020 21:43:33 +0000 (-0600) Subject: dnp3/eve: update for regenerated dnp3 object logging code X-Git-Tag: suricata-6.0.0-beta1~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c98fa452f31a50d6f46da0bbc538615af81e9d2;p=thirdparty%2Fsuricata.git dnp3/eve: update for regenerated dnp3 object logging code Migration from Jansson to JsonBuilder. --- diff --git a/src/output-json-dnp3.c b/src/output-json-dnp3.c index 71bbdc8bb6..7fe1f67e70 100644 --- a/src/output-json-dnp3.c +++ b/src/output-json-dnp3.c @@ -94,32 +94,22 @@ static void JsonDNP3LogApplicationControl(JsonBuilder *js, uint8_t ac) * * TODO: Autogenerate this function based on object definitions. */ -static json_t *JsonDNP3LogObjectItems(DNP3Object *object) +static void JsonDNP3LogObjectItems(JsonBuilder *js, DNP3Object *object) { DNP3Point *item; - json_t *jsitems; - - if (unlikely((jsitems = json_array()) == NULL)) { - return NULL; - } TAILQ_FOREACH(item, object->points, next) { - json_t *js = json_object(); - if (unlikely(js == NULL)) { - break; - } + jb_start_object(js); - json_object_set_new(js, "prefix", json_integer(item->prefix)); - json_object_set_new(js, "index", json_integer(item->index)); + jb_set_uint(js, "prefix", item->prefix); + jb_set_uint(js, "index", item->index); if (DNP3PrefixIsSize(object->prefix_code)) { - json_object_set_new(js, "size", json_integer(item->size)); + jb_set_uint(js, "size", item->size); } OutputJsonDNP3SetItem(js, object, item); - json_array_append_new(jsitems, js); + jb_close(js); } - - return jsitems; } /** @@ -144,11 +134,9 @@ static void JsonDNP3LogObjects(JsonBuilder *js, DNP3ObjectList *objects) jb_set_uint(js, "count", object->count); if (object->points != NULL && !TAILQ_EMPTY(object->points)) { - json_t *points = JsonDNP3LogObjectItems(object); - if (points != NULL) { - jb_set_jsont(js, "points", points); - json_decref(points); - } + jb_open_array(js, "points"); + JsonDNP3LogObjectItems(js, object); + jb_close(js); } jb_close(js);