X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=be6080e07ad97b8002f681b37cadae7537cd51ff;hp=b5af2241f51b189b8fafd8268aa6c63112cee8f5;hb=b834d67d7cc7d7f5d8b729b340ec0c809c7d54b6;hpb=0200d3cd5d773d9b101c33264532d2a301c2af32 diff --git a/src/graph.c b/src/graph.c index b5af2241..be6080e0 100644 --- a/src/graph.c +++ b/src/graph.c @@ -101,7 +101,13 @@ void mst_kruskal(void) /* Starting point */ - ((edge_t *) edge_weight_tree->head->data)->from->status.visited = true; + for(node = edge_weight_tree->head; node; node = node->next) { + e = node->data; + if(e->from->status.reachable) { + e->from->status.visited = true; + break; + } + } /* Add safe edges */ @@ -307,8 +313,8 @@ void sssp_bfs(void) void graph(void) { - mst_kruskal(); sssp_bfs(); + mst_kruskal(); graph_changed = true; } @@ -364,9 +370,10 @@ void dump_graph(void) fprintf(file, "}\n"); - fclose(file); - - if(filename[0] != '|') { + if(filename[0] == '|') { + pclose(file); + } else { + fclose(file); rename(tmpname, filename); free(tmpname); }