mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 18:11:28 +01:00
gossipd: fix premature towire_reply_short_channel_ids_end if no node_announcement.
Our "are we finished?" logic was wrong: it tested if there are no more node_announcements, but it's possible that there were no node_announcements for either end of the channel whose information we sent. This is actually quite unusual on the real network: looking at mainnet statis from last May, 4301 of 4337 nodes have node_announcements. However, with query flags it's much more likely, since they might not ask for node announcements at all. (Found by gossip protocol tests) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
af645b38c8
commit
0ec8304901
@ -1576,7 +1576,9 @@ static void maybe_create_next_scid_reply(struct peer *peer)
|
||||
peer->scid_query_nodes_idx = i;
|
||||
|
||||
/* All finished? */
|
||||
if (peer->scid_queries && peer->scid_query_nodes_idx == num) {
|
||||
if (peer->scid_queries
|
||||
&& peer->scid_query_idx == tal_count(peer->scid_queries)
|
||||
&& peer->scid_query_nodes_idx == num) {
|
||||
/* BOLT #7:
|
||||
*
|
||||
* - MUST follow these responses with
|
||||
|
Loading…
Reference in New Issue
Block a user