connectd: hold peer until we're interested.

Either because lightningd tells us it wants to talk, or because the peer
says something about a channel.

We also introduce a behavior change: we disconnect after a failed open.
We might want to modify this later, but we it's a side-effect of openingd
not holding onto idle connections.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2022-03-23 06:57:29 +10:30
parent 77b1087cdf
commit 2424b7dea8
24 changed files with 429 additions and 148 deletions

View File

@@ -87,6 +87,9 @@ struct funding_channel {
/* Whether or not this is in the middle of getting funded */
bool inflight;
/* Initial openingd_funder_start msg */
const u8 *open_msg;
/* Any commands trying to cancel us. */
struct command **cancels;
@@ -95,8 +98,7 @@ struct funding_channel {
struct peer_fd *peer_fd;
};
struct uncommitted_channel *
new_uncommitted_channel(struct peer *peer);
struct uncommitted_channel *new_uncommitted_channel(struct peer *peer);
void opend_channel_errmsg(struct uncommitted_channel *uc,
struct peer_fd *peer_fd,