|
@ -28,6 +28,7 @@ static bool node_eq(const struct node *n, const secp256k1_pubkey *key) |
|
|
{ |
|
|
{ |
|
|
return structeq(&n->id.pubkey, key); |
|
|
return structeq(&n->id.pubkey, key); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
HTABLE_DEFINE_TYPE(struct node, keyof_node, hash_key, node_eq, node_map); |
|
|
HTABLE_DEFINE_TYPE(struct node, keyof_node, hash_key, node_eq, node_map); |
|
|
|
|
|
|
|
|
struct node_map *empty_node_map(struct lightningd_state *dstate) |
|
|
struct node_map *empty_node_map(struct lightningd_state *dstate) |
|
@ -69,6 +70,26 @@ struct node *new_node(struct lightningd_state *dstate, |
|
|
return n; |
|
|
return n; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
struct node *add_node( |
|
|
|
|
|
struct lightningd_state *dstate, |
|
|
|
|
|
const struct pubkey *pk, |
|
|
|
|
|
char *hostname, |
|
|
|
|
|
int port) |
|
|
|
|
|
{ |
|
|
|
|
|
struct node *n = get_node(dstate, pk); |
|
|
|
|
|
if (!n) { |
|
|
|
|
|
n = new_node(dstate, pk); |
|
|
|
|
|
log_debug_struct(dstate->base_log, "Creating new node %s", |
|
|
|
|
|
struct pubkey, pk); |
|
|
|
|
|
} else { |
|
|
|
|
|
log_debug_struct(dstate->base_log, "Update existing node %s", |
|
|
|
|
|
struct pubkey, pk); |
|
|
|
|
|
} |
|
|
|
|
|
n->hostname = tal_steal(n, hostname); |
|
|
|
|
|
n->port = port; |
|
|
|
|
|
return n; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
static bool remove_conn_from_array(struct node_connection ***conns, |
|
|
static bool remove_conn_from_array(struct node_connection ***conns, |
|
|
struct node_connection *nc) |
|
|
struct node_connection *nc) |
|
|
{ |
|
|
{ |
|
|