mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
gossipd: apply private updates to announce channel.
We trade channel_update before channel_announce makes the channel public, and currently forget them when we finally get the channel_announce. We should instead apply them, and not rely on retransmission (which we remove in the next patch!). This earlier channel_update means test_gossip_jsonrpc triggers too early, so have that wait for node_announcement. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
66105e83ea
commit
16e16a725e
2 changed files with 11 additions and 6 deletions
|
@ -753,11 +753,16 @@ bool routing_add_channel_announcement(struct routing_state *rstate,
|
|||
/* Channel is now public. */
|
||||
chan->channel_announce = tal_dup_arr(chan, u8, msg, tal_count(msg), 0);
|
||||
|
||||
/* Clear any private updates: new updates will trigger broadcast of
|
||||
* this channel_announce. */
|
||||
for (size_t i = 0; i < ARRAY_SIZE(chan->half); i++)
|
||||
chan->half[i].channel_update
|
||||
= tal_free(chan->half[i].channel_update);
|
||||
/* Apply any private updates. */
|
||||
for (size_t i = 0; i < ARRAY_SIZE(chan->half); i++) {
|
||||
const u8 *update = chan->half[i].channel_update;
|
||||
if (!update)
|
||||
continue;
|
||||
|
||||
/* Remove from channel, otherwise it will be freed! */
|
||||
chan->half[i].channel_update = NULL;
|
||||
routing_add_channel_update(rstate, take(update));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -282,7 +282,7 @@ def test_gossip_jsonrpc(node_factory):
|
|||
'peer_in WIRE_ANNOUNCEMENT_SIGNATURES'])
|
||||
|
||||
# Just wait for the update to kick off and then check the effect
|
||||
needle = "Received channel_update for channel"
|
||||
needle = "Received node_announcement for node"
|
||||
l1.daemon.wait_for_log(needle)
|
||||
l2.daemon.wait_for_log(needle)
|
||||
# Need to increase timeout, intervals cannot be shortened with DEVELOPER=0
|
||||
|
|
Loading…
Add table
Reference in a new issue