X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=5dfbb72eb9824140f9267e9e3d39abe4d7c28244;hp=eadb36a7c9d8f6c9f40684943b4ecdbda68d30d5;hb=e9576632dc4b780b867044269d06cc50f76d8c05;hpb=0d1ac68c59db87141616f69bcd3d79c705b1ecd0 diff --git a/src/graph.c b/src/graph.c index eadb36a7..5dfbb72e 100644 --- a/src/graph.c +++ b/src/graph.c @@ -1,6 +1,6 @@ /* graph.c -- graph algorithms - Copyright (C) 2001-2006 Guus Sliepen , + Copyright (C) 2001-2007 Guus Sliepen , 2001-2005 Ivo Timmermans This program is free software; you can redistribute it and/or modify @@ -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; } @@ -368,6 +374,9 @@ void dump_graph(void) pclose(file); } else { fclose(file); +#ifdef HAVE_MINGW + unlink(filename); +#endif rename(tmpname, filename); free(tmpname); }