projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename() cannot replace existing files on Windows.
[tinc]
/
src
/
graph.c
diff --git
a/src/graph.c
b/src/graph.c
index
eadb36a
..
1f00660
100644
(file)
--- a/
src/graph.c
+++ b/
src/graph.c
@@
-101,7
+101,13
@@
void mst_kruskal(void)
/* Starting point */
/* 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 */
/* Add safe edges */
@@
-307,8
+313,8
@@
void sssp_bfs(void)
void graph(void)
{
void graph(void)
{
- mst_kruskal();
sssp_bfs();
sssp_bfs();
+ mst_kruskal();
graph_changed = true;
}
graph_changed = true;
}
@@
-368,6
+374,9
@@
void dump_graph(void)
pclose(file);
} else {
fclose(file);
pclose(file);
} else {
fclose(file);
+#ifdef HAVE_MINGW
+ unlink(filename);
+#endif
rename(tmpname, filename);
free(tmpname);
}
rename(tmpname, filename);
free(tmpname);
}