daemon: add dev-routefail command.

We're about to change the code so that if it can't route, it will fail
the HTLC.  The current low-level tests will hate this, so have a dev switch
to turn that off.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2016-06-30 09:08:10 +09:30
parent bf3acfab62
commit f4f0c1aa18
5 changed files with 38 additions and 0 deletions

View File

@ -265,6 +265,7 @@ static const struct json_command *cmdlist[] = {
&signcommit_command,
&output_command,
&add_route_command,
&routefail_command,
};
static void json_help(struct command *cmd,

View File

@ -71,4 +71,5 @@ extern const struct json_command signcommit_command;
extern const struct json_command output_command;
extern const struct json_command accept_payment_command;
extern const struct json_command add_route_command;
extern const struct json_command routefail_command;
#endif /* LIGHTNING_DAEMON_JSONRPC_H */

View File

@ -204,6 +204,7 @@ static struct lightningd_state *lightningd_state(void)
list_head_init(&dstate->bitcoin_req);
list_head_init(&dstate->wallet);
list_head_init(&dstate->payments);
dstate->dev_never_routefail = false;
dstate->bitcoin_req_running = false;
dstate->nodes = empty_node_map(dstate);
return dstate;

View File

@ -96,5 +96,8 @@ struct lightningd_state {
/* All known nodes. */
struct node_map *nodes;
/* For testing: don't fail if we can't route. */
bool dev_never_routefail;
};
#endif /* LIGHTNING_DAEMON_LIGHTNING_H */

View File

@ -299,3 +299,35 @@ const struct json_command add_route_command = {
"Returns an empty result on success"
};
static void json_routefail(struct command *cmd,
const char *buffer, const jsmntok_t *params)
{
jsmntok_t *enabletok;
bool enable;
if (!json_get_params(buffer, params,
"enable", &enabletok,
NULL)) {
command_fail(cmd, "Need enable");
return;
}
if (!json_tok_bool(buffer, enabletok, &enable)) {
command_fail(cmd, "enable must be true or false");
return;
}
log_debug(cmd->dstate->base_log, "dev-routefail: routefail %s",
enable ? "enabled" : "disabled");
cmd->dstate->dev_never_routefail = !enable;
command_success(cmd, null_response(cmd));
}
const struct json_command routefail_command = {
"dev-routefail",
json_routefail,
"FAIL htlcs that we can't route if {enable}",
"Returns an empty result on success"
};