diff --git a/gossipd/gossip_store.c b/gossipd/gossip_store.c index 871edcf0b393..2ac306982b00 100644 --- a/gossipd/gossip_store.c +++ b/gossipd/gossip_store.c @@ -28,6 +28,9 @@ struct gossip_store { * gossip_store */ struct broadcast_state *broadcast; + /* Handle to the routing_state to retrieve additional information, + * should it be needed */ + struct routing_state *rstate; }; static void gossip_store_destroy(struct gossip_store *gs) @@ -36,12 +39,14 @@ static void gossip_store_destroy(struct gossip_store *gs) } struct gossip_store *gossip_store_new(const tal_t *ctx, + struct routing_state *rstate, struct broadcast_state *broadcast) { struct gossip_store *gs = tal(ctx, struct gossip_store); gs->count = 0; gs->fd = open(GOSSIP_STORE_FILENAME, O_RDWR|O_APPEND|O_CREAT, 0600); gs->broadcast = broadcast; + gs->rstate = rstate; tal_add_destructor(gs, gossip_store_destroy); diff --git a/gossipd/gossip_store.h b/gossipd/gossip_store.h index 0cddbee01394..64319ea73bfc 100644 --- a/gossipd/gossip_store.h +++ b/gossipd/gossip_store.h @@ -15,6 +15,7 @@ struct gossip_store; struct routing_state; struct gossip_store *gossip_store_new(const tal_t *ctx, + struct routing_state *rstate, struct broadcast_state *broadcast); /** diff --git a/gossipd/routing.c b/gossipd/routing.c index 066b62ef2549..678f01ee12d4 100644 --- a/gossipd/routing.c +++ b/gossipd/routing.c @@ -96,7 +96,7 @@ struct routing_state *new_routing_state(const tal_t *ctx, rstate->chain_hash = *chain_hash; rstate->local_id = *local_id; rstate->prune_timeout = prune_timeout; - rstate->store = gossip_store_new(rstate, rstate->broadcasts); + rstate->store = gossip_store_new(rstate, rstate, rstate->broadcasts); rstate->dev_allow_localhost = dev_allow_localhost; rstate->local_channel_announced = false; list_head_init(&rstate->pending_cannouncement);