Skip to content

Commit e86093a

Browse files
rustyrussellcdecker
authored andcommitted
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 <[email protected]>
1 parent b3439a1 commit e86093a

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

gossipd/gossmap_manage.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -871,12 +871,15 @@ const char *gossmap_manage_channel_update(const tal_t *ctx,
871871
}
872872

873873
static void process_node_announcement(struct gossmap_manage *gm,
874+
struct gossmap *gossmap,
874875
const struct gossmap_node *node,
875876
u32 timestamp,
876877
const struct node_id *node_id,
877878
const u8 *nannounce,
878879
const struct node_id *source_peer)
879880
{
881+
u64 offset;
882+
880883
/* Do we have a later one? If so, ignore */
881884
if (gossmap_node_announced(node)) {
882885
u32 prev_timestamp
@@ -888,7 +891,13 @@ static void process_node_announcement(struct gossmap_manage *gm,
888891
}
889892

890893
/* OK, apply the new one */
891-
gossip_store_add(gm->daemon->gs, nannounce, timestamp);
894+
offset = gossip_store_add(gm->daemon->gs, nannounce, timestamp);
895+
/* If all channels are dying, make sure this is marked too. */
896+
if (all_node_channels_dying(gossmap, node, NULL)) {
897+
gossip_store_set_flag(gm->daemon->gs, offset,
898+
GOSSIP_STORE_DYING_BIT,
899+
WIRE_NODE_ANNOUNCEMENT);
900+
}
892901

893902
/* Now delete old */
894903
if (gossmap_node_announced(node))
@@ -982,7 +991,7 @@ const char *gossmap_manage_node_announcement(const tal_t *ctx,
982991
return NULL;
983992
}
984993

985-
process_node_announcement(gm, node, timestamp, &node_id, nannounce, source_peer);
994+
process_node_announcement(gm, gossmap, node, timestamp, &node_id, nannounce, source_peer);
986995
return NULL;
987996
}
988997

@@ -1090,7 +1099,7 @@ static void reprocess_queued_msgs(struct gossmap_manage *gm)
10901099
continue;
10911100
}
10921101

1093-
process_node_announcement(gm, node,
1102+
process_node_announcement(gm, gossmap, node,
10941103
pnas[i]->timestamp,
10951104
&pnas[i]->node_id,
10961105
pnas[i]->nannounce,

0 commit comments

Comments
 (0)