X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fgraph.c;h=caf33f5e064921ad66f87e1f2bd0e55b0be244f7;hb=76c7550c8ab0e9c0ee14a9c396baa008cfb9bc42;hp=3cf458937074c5945251e85f7b34e1d895e576eb;hpb=a1b50920b9a52f86ca6e33fcb24d7fa34313a1ee;p=meshlink diff --git a/src/graph.c b/src/graph.c index 3cf45893..caf33f5e 100644 --- a/src/graph.c +++ b/src/graph.c @@ -67,7 +67,7 @@ static void mst_kruskal(meshlink_handle_t *mesh) { for list_each(connection_t, c, mesh->connections) c->status.mst = false; - logger(DEBUG_SCARY_THINGS, LOG_DEBUG, "Running Kruskal's algorithm:"); + logger(mesh, MESHLINK_DEBUG, "Running Kruskal's algorithm:"); /* Clear visited status on nodes */ @@ -102,7 +102,7 @@ static void mst_kruskal(meshlink_handle_t *mesh) { if(e->reverse->connection) e->reverse->connection->status.mst = true; - logger(DEBUG_SCARY_THINGS, LOG_DEBUG, " Adding edge %s - %s weight %d", e->from->name, e->to->name, e->weight); + logger(mesh, MESHLINK_DEBUG, " Adding edge %s - %s weight %d", e->from->name, e->to->name, e->weight); if(skipped) { skipped = false; @@ -139,7 +139,7 @@ static void sssp_bfs(meshlink_handle_t *mesh) { /* Loop while todo_list is filled */ for list_each(node_t, n, todo_list) { /* "n" is the node from which we start */ - logger(DEBUG_SCARY_THINGS, LOG_DEBUG, " Examining edges from %s", n->name); + logger(mesh, MESHLINK_DEBUG, " Examining edges from %s", n->name); if(n->distance < 0) abort(); @@ -150,11 +150,11 @@ static void sssp_bfs(meshlink_handle_t *mesh) { /* Situation: - / - / + / + / ----->(n)---e-->(e->to) - \ - \ + \ + \ Where e is an edge, (n) and (e->to) are nodes. n->address is set to the e->address of the edge left of n to n. @@ -168,8 +168,8 @@ static void sssp_bfs(meshlink_handle_t *mesh) { bool indirect = n->status.indirect || e->options & OPTION_INDIRECT; if(e->to->status.visited - && (!e->to->status.indirect || indirect) - && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight)) + && (!e->to->status.indirect || indirect) + && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight)) continue; e->to->status.visited = true; @@ -202,11 +202,11 @@ static void check_reachability(meshlink_handle_t *mesh) { n->last_state_change = mesh->loop.now.tv_sec; if(n->status.reachable) { - logger(DEBUG_TRAFFIC, LOG_DEBUG, "Node %s (%s) became reachable", - n->name, n->hostname); + logger(mesh, MESHLINK_DEBUG, "Node %s (%s) became reachable", + n->name, n->hostname); } else { - logger(DEBUG_TRAFFIC, LOG_DEBUG, "Node %s (%s) became unreachable", - n->name, n->hostname); + logger(mesh, MESHLINK_DEBUG, "Node %s (%s) became unreachable", + n->name, n->hostname); } /* TODO: only clear status.validkey if node is unreachable? */ @@ -223,11 +223,11 @@ static void check_reachability(meshlink_handle_t *mesh) { timeout_del(&mesh->loop, &n->mtutimeout); - //TODO: callback to application to inform of this node going up/down + update_node_status(mesh, n); if(!n->status.reachable) { update_node_udp(mesh, n, NULL); - memset(&n->status, 0, sizeof n->status); + memset(&n->status, 0, sizeof(n)->status); n->options = 0; } else if(n->connection) { if(n->connection->outgoing)