From 0546728819efba3384a7d5db68593f6fdcc93612 Mon Sep 17 00:00:00 2001 From: darosior Date: Tue, 28 Jan 2020 18:30:27 +0100 Subject: [PATCH] libplugin: use json_stream helpers for handle_getmanifest --- plugins/libplugin.c | 51 +++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/plugins/libplugin.c b/plugins/libplugin.c index 0a88babe1..7354b31f1 100644 --- a/plugins/libplugin.c +++ b/plugins/libplugin.c @@ -568,50 +568,47 @@ send_outreq_(struct plugin *plugin, static struct command_result * handle_getmanifest(struct command *getmanifest_cmd) { - struct json_out *params = json_out_new(tmpctx); + struct json_stream *params = jsonrpc_stream_success(getmanifest_cmd); struct plugin *p = getmanifest_cmd->plugin; - json_out_start(params, NULL, '{'); - json_out_start(params, "options", '['); + json_array_start(params, "options"); for (size_t i = 0; i < tal_count(p->opts); i++) { - json_out_start(params, NULL, '{'); - json_out_addstr(params, "name", p->opts[i].name); - json_out_addstr(params, "type", p->opts[i].type); - json_out_addstr(params, "description", p->opts[i].description); - json_out_end(params, '}'); + json_object_start(params, NULL); + json_add_string(params, "name", p->opts[i].name); + json_add_string(params, "type", p->opts[i].type); + json_add_string(params, "description", p->opts[i].description); + json_object_end(params); } - json_out_end(params, ']'); + json_array_end(params); - json_out_start(params, "rpcmethods", '['); + json_object_start(params, "rpcmethods"); for (size_t i = 0; i < p->num_commands; i++) { - json_out_start(params, NULL, '{'); - json_out_addstr(params, "name", p->commands[i].name); - json_out_addstr(params, "usage", + json_object_start(params, NULL); + json_add_string(params, "name", p->commands[i].name); + json_add_string(params, "usage", strmap_get(&p->usagemap, p->commands[i].name)); - json_out_addstr(params, "description", p->commands[i].description); + json_add_string(params, "description", p->commands[i].description); if (p->commands[i].long_description) - json_out_addstr(params, "long_description", + json_add_string(params, "long_description", p->commands[i].long_description); - json_out_end(params, '}'); + json_object_end(params); } - json_out_end(params, ']'); + json_array_end(params); - json_out_start(params, "subscriptions", '['); + json_array_start(params, "subscriptions"); for (size_t i = 0; i < p->num_notif_subs; i++) - json_out_addstr(params, NULL, p->notif_subs[i].name); - json_out_end(params, ']'); + json_add_string(params, NULL, p->notif_subs[i].name); + json_array_end(params); - json_out_start(params, "hooks", '['); + json_array_start(params, "hooks"); for (size_t i = 0; i < p->num_hook_subs; i++) - json_out_addstr(params, NULL, p->hook_subs[i].name); - json_out_end(params, ']'); + json_add_string(params, NULL, p->hook_subs[i].name); + json_array_end(params); - json_out_addstr(params, "dynamic", + json_add_string(params, "dynamic", p->restartability == PLUGIN_RESTARTABLE ? "true" : "false"); - json_out_end(params, '}'); - json_out_finished(params); - return command_success(getmanifest_cmd, params); + return command_finished(getmanifest_cmd, params); } static void rpc_conn_finished(struct io_conn *conn,