From f0231b0e6f7adc035cb2a8f4c46db63350b8a873 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 17 May 2018 14:39:58 +0930 Subject: [PATCH] channeld: don't send temporary announcements more than once. Signed-off-by: Rusty Russell --- channeld/channel.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/channeld/channel.c b/channeld/channel.c index eaea98196..9edf87d0e 100644 --- a/channeld/channel.c +++ b/channeld/channel.c @@ -160,6 +160,7 @@ struct peer { u8 channel_flags; bool announce_depth_reached; + bool sent_temporary_announce; /* Make sure timestamps move forward. */ u32 last_update_timestamp; @@ -505,11 +506,13 @@ static void channel_announcement_negotiate(struct peer *peer) if (!peer->funding_locked[LOCAL] || !peer->funding_locked[REMOTE]) return; - /* If we haven't reached announce depth yet, we can only send * a local update */ if (!peer->announce_depth_reached) { - send_temporary_announcement(peer); + if (!peer->sent_temporary_announce) { + send_temporary_announcement(peer); + peer->sent_temporary_announce = true; + } return; } @@ -2588,6 +2591,7 @@ int main(int argc, char *argv[]) peer->commit_timer = NULL; peer->have_sigs[LOCAL] = peer->have_sigs[REMOTE] = false; peer->announce_depth_reached = false; + peer->sent_temporary_announce = false; msg_queue_init(&peer->from_master, peer); msg_queue_init(&peer->from_gossipd, peer); msg_queue_init(&peer->peer_out, peer);