lightningd: tell gossipd that peers we load from db are important.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2018-04-25 22:08:38 +09:30
parent 8c2c1fe1c2
commit a1f77cab3c
4 changed files with 13 additions and 21 deletions

View File

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

View File

@ -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 */

View File

@ -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. */

View File

@ -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(); }