gossipd: set dying flag on node_announcements when initially created.
We accept node_announcements on dying channels, but make sure we set the dying flag it channels are alll dying. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
committed by
Christian Decker
parent
b3439a18fe
commit
e86093a944
@@ -871,12 +871,15 @@ const char *gossmap_manage_channel_update(const tal_t *ctx,
|
||||
}
|
||||
|
||||
static void process_node_announcement(struct gossmap_manage *gm,
|
||||
struct gossmap *gossmap,
|
||||
const struct gossmap_node *node,
|
||||
u32 timestamp,
|
||||
const struct node_id *node_id,
|
||||
const u8 *nannounce,
|
||||
const struct node_id *source_peer)
|
||||
{
|
||||
u64 offset;
|
||||
|
||||
/* Do we have a later one? If so, ignore */
|
||||
if (gossmap_node_announced(node)) {
|
||||
u32 prev_timestamp
|
||||
@@ -888,7 +891,13 @@ static void process_node_announcement(struct gossmap_manage *gm,
|
||||
}
|
||||
|
||||
/* OK, apply the new one */
|
||||
gossip_store_add(gm->daemon->gs, nannounce, timestamp);
|
||||
offset = gossip_store_add(gm->daemon->gs, nannounce, timestamp);
|
||||
/* If all channels are dying, make sure this is marked too. */
|
||||
if (all_node_channels_dying(gossmap, node, NULL)) {
|
||||
gossip_store_set_flag(gm->daemon->gs, offset,
|
||||
GOSSIP_STORE_DYING_BIT,
|
||||
WIRE_NODE_ANNOUNCEMENT);
|
||||
}
|
||||
|
||||
/* Now delete old */
|
||||
if (gossmap_node_announced(node))
|
||||
@@ -982,7 +991,7 @@ const char *gossmap_manage_node_announcement(const tal_t *ctx,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
process_node_announcement(gm, node, timestamp, &node_id, nannounce, source_peer);
|
||||
process_node_announcement(gm, gossmap, node, timestamp, &node_id, nannounce, source_peer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1090,7 +1099,7 @@ static void reprocess_queued_msgs(struct gossmap_manage *gm)
|
||||
continue;
|
||||
}
|
||||
|
||||
process_node_announcement(gm, node,
|
||||
process_node_announcement(gm, gossmap, node,
|
||||
pnas[i]->timestamp,
|
||||
&pnas[i]->node_id,
|
||||
pnas[i]->nannounce,
|
||||
|
||||
Reference in New Issue
Block a user