You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.8 KiB

From 712ca27bdbbe4f38550d5431b400dfa9e70de744 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Fri, 18 Apr 2014 14:42:03 +0200
Subject: [LIBREPORT PATCH 38/38] stop using deprecated json-c functions
Resolves: #1125743
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/plugins/ureport.c | 44 +++++++++++++++++---------------------------
1 file changed, 17 insertions(+), 27 deletions(-)
diff --git a/src/plugins/ureport.c b/src/plugins/ureport.c
index 39d27f6..59554f4 100644
--- a/src/plugins/ureport.c
+++ b/src/plugins/ureport.c
@@ -157,16 +157,13 @@ static char *parse_solution_from_json_list(struct json_object *list, GList **rep
if (!list_elem)
continue;
- struct_elem = json_object_object_get(list_elem, "cause");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "cause", &struct_elem))
continue;
cause = json_object_get_string(struct_elem);
- if (!cause)
continue;
- struct_elem = json_object_object_get(list_elem, "note");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "note", &struct_elem))
continue;
note = json_object_get_string(struct_elem);
@@ -176,8 +173,7 @@ static char *parse_solution_from_json_list(struct json_object *list, GList **rep
empty = false;
strbuf_append_strf(solution_buf, one_format, cause, note);
- struct_elem = json_object_object_get(list_elem, "url");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "url", &struct_elem))
continue;
url = json_object_get_string(struct_elem);
@@ -216,24 +212,21 @@ static GList *parse_reported_to_from_json_list(struct json_object *list)
if (!list_elem)
continue;
- struct_elem = json_object_object_get(list_elem, "reporter");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "reporter", &struct_elem))
continue;
reporter = json_object_get_string(struct_elem);
if (!reporter)
continue;
- struct_elem = json_object_object_get(list_elem, "value");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "value", &struct_elem))
continue;
value = json_object_get_string(struct_elem);
if (!value)
continue;
- struct_elem = json_object_object_get(list_elem, "type");
- if (!struct_elem)
+ if (!json_object_object_get_ex(list_elem, "type", &struct_elem))
continue;
type = json_object_get_string(struct_elem);
@@ -265,9 +258,8 @@ static GList *parse_reported_to_from_json_list(struct json_object *list)
*/
static struct ureport_server_response *ureport_server_parse_json(json_object *json)
{
- json_object *obj = json_object_object_get(json, "error");
-
- if (obj)
+ json_object *obj = NULL;
+ if (json_object_object_get_ex(json, "error", &obj))
{
struct ureport_server_response *out_response = xzalloc(sizeof(*out_response));
out_response->is_error = true;
@@ -279,27 +271,25 @@ static struct ureport_server_response *ureport_server_parse_json(json_object *js
return out_response;
}
- obj = json_object_object_get(json, "result");
-
- if (obj)
+ if (json_object_object_get_ex(json, "result", &obj))
{
struct ureport_server_response *out_response = xzalloc(sizeof(*out_response));
out_response->value = xstrdup(json_object_get_string(obj));
- json_object *message = json_object_object_get(json, "message");
- if (message)
+ json_object *message = NULL;
+ if (json_object_object_get_ex(json, "message", &message))
out_response->message = xstrdup(json_object_get_string(message));
- json_object *bthash = json_object_object_get(json, "bthash");
- if (bthash)
+ json_object *bthash = NULL;
+ if (json_object_object_get_ex(json, "bthash", &bthash))
out_response->bthash = xstrdup(json_object_get_string(bthash));
- json_object *reported_to_list = json_object_object_get(json, "reported_to");
- if (reported_to_list)
+ json_object *reported_to_list = NULL;
+ if (json_object_object_get_ex(json, "reported_to", &reported_to_list))
out_response->reported_to_list = parse_reported_to_from_json_list(reported_to_list);
- json_object *solutions = json_object_object_get(json, "solutions");
- if (solutions)
+ json_object *solutions = NULL;
+ if (json_object_object_get_ex(json, "solutions", &solutions))
out_response->solution = parse_solution_from_json_list(solutions, &(out_response->reported_to_list));
return out_response;
--
1.8.3.1