13#include <gvm/util/mqtt.h>
14#include <gvm/util/uuidutils.h>
15#include <json-glib/json-glib.h>
21#define G_LOG_DOMAIN "lib misc"
37 gchar **package_list = NULL;
39 json_builder_set_member_name (builder,
"package_list");
40 json_builder_begin_array (builder);
42 package_list = g_strsplit (packages,
"\n", 0);
43 if (package_list && package_list[0])
46 for (i = 0; package_list[i]; i++)
47 json_builder_add_string_value (builder, package_list[i]);
50 json_builder_end_array (builder);
51 g_strfreev (package_list);
74 const char *os_release,
75 const char *package_list)
83 builder = json_builder_new ();
85 json_builder_begin_object (builder);
87 json_builder_set_member_name (builder,
"message_id");
88 builder = json_builder_add_string_value (builder, gvm_uuid_make ());
90 json_builder_set_member_name (builder,
"group_id");
91 builder = json_builder_add_string_value (builder, gvm_uuid_make ());
93 json_builder_set_member_name (builder,
"message_type");
94 builder = json_builder_add_string_value (builder,
"scan.start");
96 json_builder_set_member_name (builder,
"created");
97 builder = json_builder_add_int_value (builder, time (NULL));
99 json_builder_set_member_name (builder,
"scan_id");
100 builder = json_builder_add_string_value (builder,
scan_id);
102 json_builder_set_member_name (builder,
"host_ip");
103 json_builder_add_string_value (builder, ip_str);
105 json_builder_set_member_name (builder,
"host_name");
106 json_builder_add_string_value (builder,
hostname);
108 json_builder_set_member_name (builder,
"os_release");
109 json_builder_add_string_value (builder, os_release);
113 json_builder_end_object (builder);
115 gen = json_generator_new ();
116 root = json_builder_get_root (builder);
117 json_generator_set_root (gen, root);
118 json_str = json_generator_to_data (gen, NULL);
120 json_node_free (root);
121 g_object_unref (gen);
122 g_object_unref (builder);
124 if (json_str == NULL)
125 g_warning (
"%s: Error while creating JSON.", __func__);
146 const char *host_ip,
const char *json,
150 JsonReader *reader = NULL;
155 parser = json_parser_new ();
156 if (!json_parser_load_from_data (parser, json,
len, &err))
161 reader = json_reader_new (json_parser_get_root (parser));
164 if (!json_reader_read_member (reader,
"scan_id"))
168 if (g_strcmp0 (json_reader_get_string_value (reader),
scan_id))
172 json_reader_end_member (reader);
175 if (!json_reader_read_member (reader,
"host_ip"))
179 if (g_strcmp0 (json_reader_get_string_value (reader), host_ip))
183 json_reader_end_member (reader);
186 if (!json_reader_read_member (reader,
"status"))
190 ret = g_strdup (json_reader_get_string_value (reader));
192 json_reader_end_member (reader);
196 g_object_unref (reader);
197 g_object_unref (parser);
200 g_warning (
"%s: Unable to parse json. Reason: %s", __func__,
gchar * get_status_of_table_driven_lsc_from_json(const char *scan_id, const char *host_ip, const char *json, int len)
Get the status of table driven lsc from json object.
static JsonBuilder * add_packages_str_to_list(JsonBuilder *builder, const gchar *packages)
Split the package list string and creates a json array.
gchar * make_table_driven_lsc_info_json_str(const char *scan_id, const char *ip_str, const char *hostname, const char *os_release, const char *package_list)
Build a json object with data necessary to start a table drive LSC.