Browse Source

lightningd: fix fundchannel_complete race.

If we already have a fundchannel_complete, don't attach another one.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
pull/2938/head
Rusty Russell 5 years ago
committed by neil saitug
parent
commit
4b1a300ee3
  1. 7
      lightningd/opening_control.c

7
lightningd/opening_control.c

@ -312,6 +312,9 @@ static void funding_started_success(struct funding_channel *fc,
scriptPubkey);
if (out)
json_add_string(response, "funding_address", out);
/* Clear this so cancel doesn't think it's still in progress */
fc->cmd = NULL;
was_pending(command_success(cmd, response));
}
@ -1133,8 +1136,10 @@ static struct command_result *json_fund_channel_complete(struct command *cmd,
if (!peer->uncommitted_channel->fc || !peer->uncommitted_channel->fc->inflight)
return command_fail(cmd, LIGHTNINGD, "No channel funding in progress.");
if (peer->uncommitted_channel->fc->cmd)
return command_fail(cmd, LIGHTNINGD, "Channel funding in progress.");
/* Update the cmd to the new cmd */
/* Set the cmd to this new cmd */
peer->uncommitted_channel->fc->cmd = cmd;
msg = towire_opening_funder_complete(NULL,
funding_txid,

Loading…
Cancel
Save