diff --git a/CHANGELOG.md b/CHANGELOG.md index 50566faaf..829675f3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ changes. - JSON RPC: `getroute` `fuzzpercent` and `pay` `maxfeepercent` can now be > 100. - Protocol: fix occasional deadlock when both peers flood with gossip. - Protocol: fix occasional long delay on sending `reply_short_channel_ids_end`. +- Protocol: re-send `node_announcement` when address/alias/color etc change. ### Security diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index 505f65890..dd8822b26 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -1803,6 +1803,10 @@ static struct io_plan *gossip_init(struct daemon_conn *master, /* Now disable all local channels, they can't be connected yet. */ gossip_disable_local_channels(daemon); + /* If that announced channels, we can announce ourselves (options + * or addresses might have changed!) */ + maybe_send_own_node_announce(daemon); + new_reltimer(&daemon->timers, daemon, time_from_sec(daemon->rstate->prune_timeout/4), gossip_refresh_network, daemon); diff --git a/tests/test_gossip.py b/tests/test_gossip.py index f47480c5a..6db3e66bf 100644 --- a/tests/test_gossip.py +++ b/tests/test_gossip.py @@ -842,7 +842,6 @@ def test_gossip_store_load(node_factory): assert not l1.daemon.is_in_log('gossip_store.*truncating') -@pytest.mark.xfail(strict=True) def test_node_reannounce(node_factory, bitcoind): "Test that we reannounce a node when parameters change" l1, l2, l3 = node_factory.line_graph(3, opts={'may_reconnect': True})