mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-20 07:34:24 +01:00
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:
@@ -265,6 +265,7 @@ static const struct json_command *cmdlist[] = {
|
|||||||
&signcommit_command,
|
&signcommit_command,
|
||||||
&output_command,
|
&output_command,
|
||||||
&add_route_command,
|
&add_route_command,
|
||||||
|
&routefail_command,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void json_help(struct command *cmd,
|
static void json_help(struct command *cmd,
|
||||||
|
|||||||
@@ -71,4 +71,5 @@ extern const struct json_command signcommit_command;
|
|||||||
extern const struct json_command output_command;
|
extern const struct json_command output_command;
|
||||||
extern const struct json_command accept_payment_command;
|
extern const struct json_command accept_payment_command;
|
||||||
extern const struct json_command add_route_command;
|
extern const struct json_command add_route_command;
|
||||||
|
extern const struct json_command routefail_command;
|
||||||
#endif /* LIGHTNING_DAEMON_JSONRPC_H */
|
#endif /* LIGHTNING_DAEMON_JSONRPC_H */
|
||||||
|
|||||||
@@ -204,6 +204,7 @@ static struct lightningd_state *lightningd_state(void)
|
|||||||
list_head_init(&dstate->bitcoin_req);
|
list_head_init(&dstate->bitcoin_req);
|
||||||
list_head_init(&dstate->wallet);
|
list_head_init(&dstate->wallet);
|
||||||
list_head_init(&dstate->payments);
|
list_head_init(&dstate->payments);
|
||||||
|
dstate->dev_never_routefail = false;
|
||||||
dstate->bitcoin_req_running = false;
|
dstate->bitcoin_req_running = false;
|
||||||
dstate->nodes = empty_node_map(dstate);
|
dstate->nodes = empty_node_map(dstate);
|
||||||
return dstate;
|
return dstate;
|
||||||
|
|||||||
@@ -96,5 +96,8 @@ struct lightningd_state {
|
|||||||
|
|
||||||
/* All known nodes. */
|
/* All known nodes. */
|
||||||
struct node_map *nodes;
|
struct node_map *nodes;
|
||||||
|
|
||||||
|
/* For testing: don't fail if we can't route. */
|
||||||
|
bool dev_never_routefail;
|
||||||
};
|
};
|
||||||
#endif /* LIGHTNING_DAEMON_LIGHTNING_H */
|
#endif /* LIGHTNING_DAEMON_LIGHTNING_H */
|
||||||
|
|||||||
@@ -299,3 +299,35 @@ const struct json_command add_route_command = {
|
|||||||
"Returns an empty result on success"
|
"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"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user