Skip to content

Commit

Permalink
lightningd: add --dev-allow-shutdown-destination-change to unstick ex…
Browse files Browse the repository at this point in the history
…isting nodes.

This will solve the problem for users who already hit the bug fixed by
the previous patch!

Signed-off-by: Rusty Russell <[email protected]>
  • Loading branch information
rustyrussell authored and cdecker committed Feb 16, 2024
1 parent eb6e6bd commit 4c5c53c
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lightningd/closing_control.c
Original file line number Diff line number Diff line change
Expand Up @@ -692,7 +692,8 @@ static struct command_result *json_close(struct command *cmd,
if (close_to_script) {
bool is_p2sh;

if (!tal_arr_eq(close_to_script, channel->shutdown_scriptpubkey[LOCAL])) {
if (!tal_arr_eq(close_to_script, channel->shutdown_scriptpubkey[LOCAL])
&& !cmd->ld->dev_allow_shutdown_destination_change) {
const u8 *defp2tr, *defp2wpkh;
/* We cannot change the closing script once we've
* started shutdown: onchaind relies on it for output
Expand Down
1 change: 1 addition & 0 deletions lightningd/lightningd.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ static struct lightningd *new_lightningd(const tal_t *ctx)
ld->dev_disable_commit = -1;
ld->dev_no_ping_timer = false;
ld->dev_any_channel_type = false;
ld->dev_allow_shutdown_destination_change = false;

/*~ This is a CCAN list: an embedded double-linked list. It's not
* really typesafe, but relies on convention to access the contents.
Expand Down
3 changes: 3 additions & 0 deletions lightningd/lightningd.h
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ struct lightningd {
/* Tell openingd/dualopend to accept all, allow sending any. */
bool dev_any_channel_type;

/* Allow changing of shutdown output point even if dangerous */
bool dev_allow_shutdown_destination_change;

/* tor support */
struct wireaddr *proxyaddr;
bool always_use_proxy;
Expand Down
4 changes: 4 additions & 0 deletions lightningd/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -911,6 +911,10 @@ static void dev_register_opts(struct lightningd *ld)
opt_set_bool,
&ld->dev_any_channel_type,
"Allow sending any channel type, and accept any");
clnopt_noarg("--dev-allow-shutdown-destination-change", OPT_DEV,
opt_set_bool,
&ld->dev_allow_shutdown_destination_change,
"Allow destination override on close, even if risky");
}

static const struct config testnet_config = {
Expand Down

0 comments on commit 4c5c53c

Please sign in to comment.