Browse Source

refactor: Moving legacy sync method out of routing

This was the only time we actually reference non-routing structs in
routing, so moving this out should allow us to get it working in the
new subdaemons.
ppa-0.6.1
Christian Decker 8 years ago
committed by Rusty Russell
parent
commit
2c06524165
  1. 22
      daemon/peer.c
  2. 20
      daemon/routing.c
  3. 4
      daemon/routing.h

22
daemon/peer.c

@ -702,6 +702,28 @@ static bool open_theiranchor_pkt_in(struct peer *peer, const Pkt *pkt)
return true; return true;
} }
/* Dump all known channels and nodes to the peer. Used when a new
* connection was established. */
static void sync_routing_table(struct lightningd_state *dstate, struct peer *peer)
{
struct node *n;
struct node_map_iter it;
int i;
struct node_connection *nc;
for (n = node_map_first(dstate->rstate->nodes, &it); n; n = node_map_next(dstate->rstate->nodes, &it)) {
size_t num_edges = tal_count(n->out);
for (i = 0; i < num_edges; i++) {
nc = n->out[i];
if (nc->channel_announcement)
queue_pkt_nested(peer, WIRE_CHANNEL_ANNOUNCEMENT, nc->channel_announcement);
if (nc->channel_update)
queue_pkt_nested(peer, WIRE_CHANNEL_UPDATE, nc->channel_update);
}
if (n->node_announcement && num_edges > 0)
queue_pkt_nested(peer, WIRE_NODE_ANNOUNCEMENT, n->node_announcement);
}
}
static bool open_wait_pkt_in(struct peer *peer, const Pkt *pkt) static bool open_wait_pkt_in(struct peer *peer, const Pkt *pkt)
{ {
Pkt *err; Pkt *err;

20
daemon/routing.c

@ -554,26 +554,6 @@ static void json_add_route(struct command *cmd,
command_success(cmd, null_response(cmd)); command_success(cmd, null_response(cmd));
} }
void sync_routing_table(struct lightningd_state *dstate, struct peer *peer)
{
struct node *n;
struct node_map_iter it;
int i;
struct node_connection *nc;
for (n = node_map_first(dstate->rstate->nodes, &it); n; n = node_map_next(dstate->rstate->nodes, &it)) {
size_t num_edges = tal_count(n->out);
for (i = 0; i < num_edges; i++) {
nc = n->out[i];
if (nc->channel_announcement)
queue_pkt_nested(peer, WIRE_CHANNEL_ANNOUNCEMENT, nc->channel_announcement);
if (nc->channel_update)
queue_pkt_nested(peer, WIRE_CHANNEL_UPDATE, nc->channel_update);
}
if (n->node_announcement && num_edges > 0)
queue_pkt_nested(peer, WIRE_NODE_ANNOUNCEMENT, n->node_announcement);
}
}
static const struct json_command dev_add_route_command = { static const struct json_command dev_add_route_command = {
"dev-add-route", "dev-add-route",
json_add_route, json_add_route,

4
daemon/routing.h

@ -149,8 +149,4 @@ struct node_map *empty_node_map(const tal_t *ctx);
char *opt_add_route(const char *arg, struct lightningd_state *dstate); char *opt_add_route(const char *arg, struct lightningd_state *dstate);
/* Dump all known channels and nodes to the peer. Used when a new connection was established. */
//FIXME(cdecker) Not used in the gossip subdaemon, remove once old daemon is retired
void sync_routing_table(struct lightningd_state *dstate, struct peer *peer);
#endif /* LIGHTNING_DAEMON_ROUTING_H */ #endif /* LIGHTNING_DAEMON_ROUTING_H */

Loading…
Cancel
Save