diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index e8ba5fa77..b702c9358 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -86,10 +86,12 @@ void peer_supplied_good_gossip(struct daemon *daemon, /* Queue a gossip message for the peer: connectd simply forwards it to * the peer. */ -void queue_peer_msg(struct peer *peer, const u8 *msg TAKES) +void queue_peer_msg(struct daemon *daemon, + const struct node_id *peer, + const u8 *msg TAKES) { - u8 *outermsg = towire_gossipd_send_gossip(NULL, &peer->id, msg); - daemon_conn_send(peer->daemon->connectd, take(outermsg)); + u8 *outermsg = towire_gossipd_send_gossip(NULL, peer, msg); + daemon_conn_send(daemon->connectd, take(outermsg)); if (taken(msg)) tal_free(msg); @@ -100,7 +102,8 @@ void queue_peer_from_store(struct peer *peer, const struct broadcastable *bcast) { struct gossip_store *gs = peer->daemon->rstate->gs; - queue_peer_msg(peer, take(gossip_store_get(NULL, gs, bcast->index))); + queue_peer_msg(peer->daemon, &peer->id, + take(gossip_store_get(NULL, gs, bcast->index))); } /*~ We don't actually keep node_announcements in memory; we keep them in @@ -494,7 +497,7 @@ static void handle_recv_gossip(struct daemon *daemon, const u8 *outermsg) handled_msg: if (err) - queue_peer_msg(peer, take(err)); + queue_peer_msg(peer->daemon, &peer->id, take(err)); } /*~ connectd's input handler is very simple. */ diff --git a/gossipd/gossipd.h b/gossipd/gossipd.h index 62f1a393f..258f101ef 100644 --- a/gossipd/gossipd.h +++ b/gossipd/gossipd.h @@ -129,7 +129,9 @@ struct peer *next_random_peer(struct daemon *daemon, /* Queue a gossip message for the peer: the subdaemon on the other end simply * forwards it to the peer. */ -void queue_peer_msg(struct peer *peer, const u8 *msg TAKES); +void queue_peer_msg(struct daemon *daemon, + const struct node_id *peer, + const u8 *msg TAKES); /* Queue a gossip_store message for the peer: the subdaemon on the * other end simply forwards it to the peer. */ diff --git a/gossipd/queries.c b/gossipd/queries.c index 61d70293a..027485b2a 100644 --- a/gossipd/queries.c +++ b/gossipd/queries.c @@ -147,7 +147,7 @@ bool query_short_channel_ids(struct daemon *daemon, msg = towire_query_short_channel_ids(NULL, &chainparams->genesis_blockhash, encoded, tlvs); - queue_peer_msg(peer, take(msg)); + queue_peer_msg(daemon, &peer->id, take(msg)); peer->scid_query_outstanding = true; peer->scid_query_cb = cb; @@ -320,7 +320,7 @@ static void send_reply_channel_range(struct peer *peer, first_blocknum, number_of_blocks, final, encoded_scids, tlvs); - queue_peer_msg(peer, take(msg)); + queue_peer_msg(peer->daemon, &peer->id, take(msg)); } /* Helper to get non-signature, non-timestamp parts of (valid!) channel_update */ @@ -617,7 +617,7 @@ const u8 *handle_query_channel_range(struct peer *peer, const u8 *msg) &chain_hash)); u8 *end = towire_reply_channel_range(NULL, &chain_hash, first_blocknum, number_of_blocks, false, NULL, NULL); - queue_peer_msg(peer, take(end)); + queue_peer_msg(peer->daemon, &peer->id, take(end)); return NULL; } @@ -1052,7 +1052,7 @@ static bool maybe_send_query_responses_peer(struct peer *peer) u8 *end = towire_reply_short_channel_ids_end(peer, &chainparams->genesis_blockhash, true); - queue_peer_msg(peer, take(end)); + queue_peer_msg(peer->daemon, &peer->id, take(end)); /* We're done! Clean up so we simply pass-through next time. */ peer->scid_queries = tal_free(peer->scid_queries); @@ -1107,7 +1107,7 @@ bool query_channel_range(struct daemon *daemon, msg = towire_query_channel_range(NULL, &chainparams->genesis_blockhash, first_blocknum, number_of_blocks, tlvs); - queue_peer_msg(peer, take(msg)); + queue_peer_msg(peer->daemon, &peer->id, take(msg)); peer->range_first_blocknum = first_blocknum; peer->range_end_blocknum = first_blocknum + number_of_blocks; peer->range_blocks_outstanding = number_of_blocks; diff --git a/gossipd/seeker.c b/gossipd/seeker.c index 159b0a2c1..a6bb23feb 100644 --- a/gossipd/seeker.c +++ b/gossipd/seeker.c @@ -204,7 +204,7 @@ static void disable_gossip_stream(struct seeker *seeker, struct peer *peer) &chainparams->genesis_blockhash, UINT32_MAX, UINT32_MAX); - queue_peer_msg(peer, take(msg)); + queue_peer_msg(peer->daemon, &peer->id, take(msg)); } static void enable_gossip_stream(struct seeker *seeker, struct peer *peer) @@ -226,7 +226,7 @@ static void enable_gossip_stream(struct seeker *seeker, struct peer *peer) &chainparams->genesis_blockhash, start, UINT32_MAX); - queue_peer_msg(peer, take(msg)); + queue_peer_msg(peer->daemon, &peer->id, take(msg)); } static void normal_gossip_start(struct seeker *seeker, struct peer *peer) diff --git a/gossipd/test/run-crc32_of_update.c b/gossipd/test/run-crc32_of_update.c index c14c5f360..980274279 100644 --- a/gossipd/test/run-crc32_of_update.c +++ b/gossipd/test/run-crc32_of_update.c @@ -75,7 +75,9 @@ void queue_peer_from_store(struct peer *peer UNNEEDED, const struct broadcastable *bcast UNNEEDED) { fprintf(stderr, "queue_peer_from_store called!\n"); abort(); } /* Generated stub for queue_peer_msg */ -void queue_peer_msg(struct peer *peer UNNEEDED, const u8 *msg TAKES UNNEEDED) +void queue_peer_msg(struct daemon *daemon UNNEEDED, + const struct node_id *peer UNNEEDED, + const u8 *msg TAKES UNNEEDED) { fprintf(stderr, "queue_peer_msg called!\n"); abort(); } /* Generated stub for status_fmt */ void status_fmt(enum log_level level UNNEEDED, diff --git a/gossipd/test/run-extended-info.c b/gossipd/test/run-extended-info.c index b38d990d7..11d53e861 100644 --- a/gossipd/test/run-extended-info.c +++ b/gossipd/test/run-extended-info.c @@ -79,7 +79,9 @@ void queue_peer_from_store(struct peer *peer UNNEEDED, const struct broadcastable *bcast UNNEEDED) { fprintf(stderr, "queue_peer_from_store called!\n"); abort(); } /* Generated stub for queue_peer_msg */ -void queue_peer_msg(struct peer *peer UNNEEDED, const u8 *msg TAKES UNNEEDED) +void queue_peer_msg(struct daemon *daemon UNNEEDED, + const struct node_id *peer UNNEEDED, + const u8 *msg TAKES UNNEEDED) { fprintf(stderr, "queue_peer_msg called!\n"); abort(); } /* Generated stub for towire_warningfmt */ u8 *towire_warningfmt(const tal_t *ctx UNNEEDED, diff --git a/gossipd/test/run-next_block_range.c b/gossipd/test/run-next_block_range.c index dfebada2e..62b8db773 100644 --- a/gossipd/test/run-next_block_range.c +++ b/gossipd/test/run-next_block_range.c @@ -62,7 +62,9 @@ bool query_short_channel_ids(struct daemon *daemon UNNEEDED, void (*cb)(struct peer *peer_ UNNEEDED, bool complete)) { fprintf(stderr, "query_short_channel_ids called!\n"); abort(); } /* Generated stub for queue_peer_msg */ -void queue_peer_msg(struct peer *peer UNNEEDED, const u8 *msg TAKES UNNEEDED) +void queue_peer_msg(struct daemon *daemon UNNEEDED, + const struct node_id *peer UNNEEDED, + const u8 *msg TAKES UNNEEDED) { fprintf(stderr, "queue_peer_msg called!\n"); abort(); } /* Generated stub for random_select */ bool random_select(double weight UNNEEDED, double *tot_weight UNNEEDED)