diff --git a/plugins/bkpr/test/run-bkpr_db.c b/plugins/bkpr/test/run-bkpr_db.c index dae035240..70248b287 100644 --- a/plugins/bkpr/test/run-bkpr_db.c +++ b/plugins/bkpr/test/run-bkpr_db.c @@ -97,6 +97,10 @@ int htlc_state_flags(enum htlc_state state UNNEEDED) /* Generated stub for htlc_state_name */ const char *htlc_state_name(enum htlc_state s UNNEEDED) { fprintf(stderr, "htlc_state_name called!\n"); abort(); } +/* Generated stub for json_get_id */ +const char *json_get_id(const tal_t *ctx UNNEEDED, + const char *buffer UNNEEDED, const jsmntok_t *obj UNNEEDED) +{ fprintf(stderr, "json_get_id called!\n"); abort(); } /* Generated stub for json_get_member */ const jsmntok_t *json_get_member(const char *buffer UNNEEDED, const jsmntok_t tok[] UNNEEDED, const char *label UNNEEDED) diff --git a/plugins/bkpr/test/run-recorder.c b/plugins/bkpr/test/run-recorder.c index 01b33af1c..a90035187 100644 --- a/plugins/bkpr/test/run-recorder.c +++ b/plugins/bkpr/test/run-recorder.c @@ -103,6 +103,10 @@ int htlc_state_flags(enum htlc_state state UNNEEDED) /* Generated stub for htlc_state_name */ const char *htlc_state_name(enum htlc_state s UNNEEDED) { fprintf(stderr, "htlc_state_name called!\n"); abort(); } +/* Generated stub for json_get_id */ +const char *json_get_id(const tal_t *ctx UNNEEDED, + const char *buffer UNNEEDED, const jsmntok_t *obj UNNEEDED) +{ fprintf(stderr, "json_get_id called!\n"); abort(); } /* Generated stub for json_get_member */ const jsmntok_t *json_get_member(const char *buffer UNNEEDED, const jsmntok_t tok[] UNNEEDED, const char *label UNNEEDED) diff --git a/plugins/libplugin.c b/plugins/libplugin.c index d9182c281..0aff78a7f 100644 --- a/plugins/libplugin.c +++ b/plugins/libplugin.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -211,7 +212,7 @@ static struct json_stream *jsonrpc_stream_start(struct command *cmd) json_object_start(js, NULL); json_add_string(js, "jsonrpc", "2.0"); - json_add_u64(js, "id", *cmd->id); + json_add_string(js, "id", cmd->id); return js; } @@ -1236,7 +1237,7 @@ struct json_stream *plugin_notify_start(struct command *cmd, const char *method) json_add_string(js, "method", method); json_object_start(js, "params"); - json_add_u64(js, "id", *cmd->id); + json_add_string(js, "id", cmd->id); return js; } @@ -1379,10 +1380,9 @@ void plugin_set_memleak_handler(struct plugin *plugin, static void ld_command_handle(struct plugin *plugin, const jsmntok_t *toks) { - const jsmntok_t *idtok, *methtok, *paramstok; + const jsmntok_t *methtok, *paramstok; struct command *cmd; - idtok = json_get_member(plugin->buffer, toks, "id"); methtok = json_get_member(plugin->buffer, toks, "method"); paramstok = json_get_member(plugin->buffer, toks, "params"); @@ -1394,16 +1394,9 @@ static void ld_command_handle(struct plugin *plugin, cmd = tal(plugin, struct command); cmd->plugin = plugin; - cmd->id = NULL; cmd->usage_only = false; cmd->methodname = json_strdup(cmd, plugin->buffer, methtok); - if (idtok) { - cmd->id = tal(cmd, u64); - if (!json_to_u64(plugin->buffer, idtok, cmd->id)) - plugin_err(plugin, "JSON id '%*.s' is not a number", - json_tok_full_len(idtok), - json_tok_full(plugin->buffer, idtok)); - } + cmd->id = json_get_id(cmd, plugin->buffer, toks); if (!plugin->manifested) { if (streq(cmd->methodname, "getmanifest")) { diff --git a/plugins/libplugin.h b/plugins/libplugin.h index c90a680c7..50c24da89 100644 --- a/plugins/libplugin.h +++ b/plugins/libplugin.h @@ -51,7 +51,7 @@ struct out_req { }; struct command { - u64 *id; + const char *id; const char *methodname; bool usage_only; struct plugin *plugin;