diff --git a/common.c b/common.c index 2bebc63b9b36010354629c3f8ad25536365ea7f9..7d5a3cd9159504daa016957a57a212ceef640b6c 100644 --- a/common.c +++ b/common.c @@ -6,7 +6,7 @@ int print_to_ubus(struct json_object *parsed_response, struct ubus_context *ctx, memset(&bb, 0, sizeof(bb)); blob_buf_init(&bb, 0); - bb = json_to_blob(parsed_response, bb); + json_to_blob(parsed_response, &bb); ubus_send_reply(ctx, req, bb.head); blob_buf_free(&bb); @@ -14,7 +14,7 @@ int print_to_ubus(struct json_object *parsed_response, struct ubus_context *ctx, return 0; } -struct blob_buf json_to_blob(struct json_object *response, struct blob_buf bb) +void json_to_blob(struct json_object *response, struct blob_buf *bb) { void *arr, *obj; int i; @@ -24,32 +24,30 @@ struct blob_buf json_to_blob(struct json_object *response, struct blob_buf bb) switch (val_type) { case json_type_int: - blobmsg_add_u32(&bb, key, json_object_get_int(val)); + blobmsg_add_u32(bb, key, json_object_get_int(val)); break; case json_type_double: - blobmsg_add_double(&bb, key, json_object_get_double(val)); + blobmsg_add_double(bb, key, json_object_get_double(val)); break; case json_type_string: - blobmsg_add_string(&bb, key, json_object_get_string(val)); + blobmsg_add_string(bb, key, json_object_get_string(val)); break; case json_type_array: - arr = blobmsg_open_array(&bb, key); + arr = blobmsg_open_array(bb, key); for (i = 0; i < json_object_array_length(val); i++) { - // add open table - bb = json_to_blob(json_object_array_get_idx(val, i), bb); - // add close table + // add open table? + json_to_blob(json_object_array_get_idx(val, i), bb); + // add close table? } - blobmsg_close_array(&bb, arr); + blobmsg_close_array(bb, arr); break; case json_type_object: - obj = blobmsg_open_table(&bb, key); - bb = json_to_blob(val, bb); - blobmsg_close_table(&bb, obj); + obj = blobmsg_open_table(bb, key); + json_to_blob(val, bb); + blobmsg_close_table(bb, obj); break; } } - - return bb; } struct json_object *get_json_string_object_by_key(json_object *json_obj, char *string) diff --git a/common.h b/common.h index 5410559f2d0bd22f3de62a3266f53b9f829932a8..2bb6c43b3a22864c24c7048acffe3136e34c4862 100644 --- a/common.h +++ b/common.h @@ -68,12 +68,10 @@ int print_to_ubus(struct json_object *parsed_response, struct ubus_context *ctx, * * Parameters: * response - json_object pointer to be replicated in a blob buffer. - * bb - The blob buffer to hold the results. + * bb - The blob buffer pointer to hold the results. * - * Returns: - * Blob buffer containing the replicated json_object. */ -struct blob_buf json_to_blob(struct json_object *response, struct blob_buf bb); +void json_to_blob(struct json_object *response, struct blob_buf *bb); char *xml_parser(struct write_result *result, char *tag); struct json_object *xml_to_json_converter(struct write_result *result);