X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=3720e14abc64c0bf9eeb7cf71fcb927feb55f691;hb=d78e24a1f77084f2395b7f344533fc1819b0b3b0;hp=c17d9e8214b9b196c30b4725c2a456e204142a1e;hpb=8c8b506da9ce578fe6e6e406a91bbd21af13f7a3;p=meshlink diff --git a/src/protocol_auth.c b/src/protocol_auth.c index c17d9e82..3720e14a 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -298,7 +298,7 @@ static void send_everything(meshlink_handle_t *mesh, connection_t *c) { /* Send all known subnets and edges */ for splay_each(node_t, n, mesh->nodes) { - for splay_each(edge_t, e, n->edge_tree) { + for inner_splay_each(edge_t, e, n->edge_tree) { send_add_edge(mesh, c, e, 0); } } @@ -370,6 +370,10 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { logger(mesh, MESHLINK_INFO, "Connection with %s activated", c->name); + if(mesh->meta_status_cb) { + mesh->meta_status_cb(mesh, (meshlink_node_t *)n, true); + } + /* Send him everything we know */ send_everything(mesh, c); @@ -385,6 +389,7 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { c->edge->weight = mesh->dev_class_traits[devclass].edge_weight; c->edge->connection = c; + node_add_recent_address(mesh, n, &c->address); edge_add(mesh, c->edge); /* Notify everyone of the new edge */