From 85eaa2276cc106447f6713d657505695072c1619 Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Fri, 10 Jul 2020 15:42:41 -0600 Subject: [PATCH] scripts/dnp3-gen: update to generate JsonBuilder code --- scripts/dnp3-gen/dnp3-gen.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/scripts/dnp3-gen/dnp3-gen.py b/scripts/dnp3-gen/dnp3-gen.py index c9c9064dba..c522dfadbc 100755 --- a/scripts/dnp3-gen/dnp3-gen.py +++ b/scripts/dnp3-gen/dnp3-gen.py @@ -157,7 +157,7 @@ output_json_dnp3_objects_template = """/* Copyright (C) 2015 Open Information Se #include "output-json-dnp3-objects.h" #include "output-json.h" -void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, +void OutputJsonDNP3SetItem(JsonBuilder *js, DNP3Object *object, DNP3Point *point) { @@ -167,20 +167,17 @@ void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, DNP3ObjectG{{object.group}}V{{object.variation}} *data = point->data; {% for field in object.fields %} {% if is_integer_type(field.type) %} - json_object_set_new(js, "{{field.name}}", - json_integer(data->{{field.name}})); + jb_set_uint(js, "{{field.name}}", data->{{field.name}}); {% elif field.type in ["flt32", "flt64"] %} - json_object_set_new(js, "{{field.name}}", - json_real(data->{{field.name}})); + jb_set_float(js, "{{field.name}}", data->{{field.name}}); {% elif field.type == "bytearray" %} unsigned long {{field.name}}_b64_len = data->{{field.len_field}} * 2; uint8_t {{field.name}}_b64[{{field.name}}_b64_len]; Base64Encode(data->{{field.name}}, data->{{field.len_field}}, {{field.name}}_b64, &{{field.name}}_b64_len); - json_object_set_new(js, "data->{{field.name}}", - json_string((char *){{field.name}}_b64)); + jb_set_string(js, "data->{{field.name}}", (char *){{field.name}}_b64); {% elif field.type == "vstr4" %} - json_object_set_new(js, "data->{{field.name}}", SCJsonString(data->{{field.name}})); + jb_set_string(js, "data->{{field.name}}", data->{{field.name}}); {% elif field.type == "chararray" %} if (data->{{field.len_field}} > 0) { /* First create a null terminated string as not all versions @@ -188,14 +185,13 @@ void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, char tmpbuf[data->{{field.len_field}} + 1]; memcpy(tmpbuf, data->{{field.name}}, data->{{field.len_field}}); tmpbuf[data->{{field.len_field}}] = '\\0'; - json_object_set_new(js, "{{field.name}}", SCJsonString(tmpbuf)); + jb_set_string(js, "{{field.name}}", tmpbuf); } else { - json_object_set_new(js, "{{field.name}}", json_string("")); + jb_set_string(js, "{{field.name}}", ""); } {% elif field.type == "bstr8" %} {% for field in field.fields %} - json_object_set_new(js, "{{field.name}}", - json_integer(data->{{field.name}})); + jb_set_uint(js, "{{field.name}}", data->{{field.name}}); {% endfor %} {% else %} {{ raise("Unhandled datatype: %s" % (field.type)) }}