From b9f867b1dddc1cf18aa7fb742fa7a520ef505821 Mon Sep 17 00:00:00 2001 From: niftynei Date: Thu, 21 Jan 2021 16:30:26 -0600 Subject: [PATCH] connectd: check for re-connected unsaved channels --- lightningd/connect_control.c | 3 +++ lightningd/peer_control.c | 2 ++ lightningd/test/run-invoice-select-inchan.c | 3 +++ 3 files changed, 8 insertions(+) diff --git a/lightningd/connect_control.c b/lightningd/connect_control.c index 08879267b..1a52d74e8 100644 --- a/lightningd/connect_control.c +++ b/lightningd/connect_control.c @@ -137,6 +137,9 @@ static struct command_result *json_connect(struct command *cmd, if (peer) { struct channel *channel = peer_active_channel(peer); + if (!channel) + channel = peer_unsaved_channel(peer); + if (peer->uncommitted_channel || (channel && channel->connected)) { return connect_cmd_succeed(cmd, peer); diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 6a3ddacb3..533838986 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -1323,6 +1323,8 @@ static void json_add_peer(struct lightningd *ld, connected = true; else { channel = peer_active_channel(p); + if (!channel) + channel = peer_unsaved_channel(p); connected = channel && channel->connected; } json_add_bool(response, "connected", connected); diff --git a/lightningd/test/run-invoice-select-inchan.c b/lightningd/test/run-invoice-select-inchan.c index fa8599168..0706cc067 100644 --- a/lightningd/test/run-invoice-select-inchan.c +++ b/lightningd/test/run-invoice-select-inchan.c @@ -549,6 +549,9 @@ void peer_start_openingd(struct peer *peer UNNEEDED, struct per_peer_state *pps UNNEEDED, const u8 *msg UNNEEDED) { fprintf(stderr, "peer_start_openingd called!\n"); abort(); } +/* Generated stub for peer_unsaved_channel */ +struct channel *peer_unsaved_channel(struct peer *peer UNNEEDED) +{ fprintf(stderr, "peer_unsaved_channel called!\n"); abort(); } /* Generated stub for per_peer_state_set_fds */ void per_peer_state_set_fds(struct per_peer_state *pps UNNEEDED, int peer_fd UNNEEDED, int gossip_fd UNNEEDED, int gossip_store_fd UNNEEDED)