From 0546ca446d4d1df7a8a39a099fd50d8317964c32 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Wed, 30 May 2018 19:24:56 +0200 Subject: [PATCH] gossip: Pass routing_state to the gossip_store We'll need it later to annotate the raw gossip messages, e.g., the capacity of a channel. Signed-off-by: Christian Decker --- gossipd/gossip_store.c | 5 +++++ gossipd/gossip_store.h | 1 + gossipd/routing.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gossipd/gossip_store.c b/gossipd/gossip_store.c index 871edcf0b..2ac306982 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 0cddbee01..64319ea73 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 066b62ef2..678f01ee1 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);