From a1f77cab3c151f683a27584f246ab86461e0b78c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 25 Apr 2018 22:08:38 +0930 Subject: [PATCH] lightningd: tell gossipd that peers we load from db are important. Signed-off-by: Rusty Russell --- lightningd/opening_control.c | 4 ++-- lightningd/opening_control.h | 3 +++ lightningd/peer_control.c | 23 ++++------------------- wallet/test/run-wallet.c | 4 ++++ 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index 18953540b..2f894563d 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -255,8 +255,8 @@ static void funding_broadcast_failed(struct channel *channel, exitstatus, err); } -static void tell_gossipd_peer_is_important(struct lightningd *ld, - const struct channel *channel) +void tell_gossipd_peer_is_important(struct lightningd *ld, + const struct channel *channel) { u8 *msg; diff --git a/lightningd/opening_control.h b/lightningd/opening_control.h index 82e4591db..d57b7050f 100644 --- a/lightningd/opening_control.h +++ b/lightningd/opening_control.h @@ -41,4 +41,7 @@ bool handle_opening_channel(struct lightningd *ld, void kill_uncommitted_channel(struct uncommitted_channel *uc, const char *why); + +void tell_gossipd_peer_is_important(struct lightningd *ld, + const struct channel *channel); #endif /* LIGHTNING_LIGHTNINGD_OPENING_CONTROL_H */ diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 09727c4ee..dc3dc99c0 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -1090,22 +1090,6 @@ static const struct json_command close_command = { }; AUTODATA(json_command, &close_command); -static void try_reconnect(struct peer *peer) -{ - struct lightningd *ld = peer->ld; - u8 *msg; - -#if DEVELOPER - /* Don't schedule an attempt if we disabled reconnections with - * the `--dev-no-reconnect` flag */ - if (ld->no_reconnect) - return; -#endif /* DEVELOPER */ - - msg = towire_gossipctl_reach_peer(NULL, &peer->id); - subd_send_msg(ld->gossip, take(msg)); -} - static void activate_peer(struct peer *peer) { u8 *msg; @@ -1116,10 +1100,11 @@ static void activate_peer(struct peer *peer) msg = towire_gossipctl_peer_addrhint(peer, &peer->id, &peer->addr); subd_send_msg(peer->ld->gossip, take(msg)); - /* We can only have one active channel: reconnect if not already. */ + /* We can only have one active channel: make sure gossipd + * knows to reconnect. */ channel = peer_active_channel(peer); - if (channel && !channel->owner) - try_reconnect(peer); + if (channel) + tell_gossipd_peer_is_important(ld, channel); list_for_each(&peer->channels, channel, list) { /* Watching lockin may be unnecessary, but it's harmless. */ diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 4fda1a5cd..a25938f1b 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -364,6 +364,10 @@ void subd_send_fd(struct subd *sd UNNEEDED, int fd UNNEEDED) /* Generated stub for subd_send_msg */ void subd_send_msg(struct subd *sd UNNEEDED, const u8 *msg_out UNNEEDED) { fprintf(stderr, "subd_send_msg called!\n"); abort(); } +/* Generated stub for tell_gossipd_peer_is_important */ +void tell_gossipd_peer_is_important(struct lightningd *ld UNNEEDED, + const struct channel *channel UNNEEDED) +{ fprintf(stderr, "tell_gossipd_peer_is_important called!\n"); abort(); } /* Generated stub for towire_channel_dev_reenable_commit */ u8 *towire_channel_dev_reenable_commit(const tal_t *ctx UNNEEDED) { fprintf(stderr, "towire_channel_dev_reenable_commit called!\n"); abort(); }