Added error code parameter to command_fail

Until now, `command_fail()` reported an error code of -1 for all uses.
This PR adds an `int code` parameter to `command_fail()`, requiring the
caller to explicitly include the error code.

This is part of #1464.

The majority of the calls are used during parameter validation and
their error code is now JSONRPC2_INVALID_PARAMS.

The rest of the calls report an error code of LIGHTNINGD, which I defined to
-1 in `jsonrpc_errors.h`.  The intention here is that as we improve our error
reporting, all occurenaces of LIGHTNINGD will go away and we can eventually
remove it.

I also converted calls to `command_fail_detailed()` that took a `NULL` `data`
parameter to use the new `command_fail()`.

The only difference from an end user perspecive is that bad input errors that
used to be -1 will now be -32602 (JSONRPC2_INVALID_PARAMS).
This commit is contained in:
Mark Beckwith
2018-05-24 16:40:18 -05:00
committed by Christian Decker
parent c20e859f05
commit 7f437715d5
19 changed files with 303 additions and 198 deletions

View File

@@ -15,6 +15,7 @@
#include <fcntl.h>
#include <inttypes.h>
#include <lightningd/jsonrpc.h>
#include <lightningd/jsonrpc_errors.h>
#include <lightningd/lightningd.h>
#include <lightningd/options.h>
#include <signal.h>
@@ -664,7 +665,7 @@ static void json_getlog(struct command *cmd,
if (!level)
minlevel = LOG_INFORM;
else if (!json_tok_loglevel(buffer, level, &minlevel)) {
command_fail(cmd, "Invalid level param");
command_fail(cmd, JSONRPC2_INVALID_PARAMS, "Invalid level param");
return;
}