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>
This commit is contained in:
Rusty Russell 2019-06-12 15:53:24 +09:30 committed by neil saitug
parent 13dbe6e74b
commit 4b1a300ee3

View file

@ -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,