X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=297832cda5bb8f3eeabd8cf241c3eeacfc8601f0;hp=3495f23c83a08e46b2c3ceedbb3497677456ae39;hb=63f8303a5dc1758876451a580a8317dbc3d295d6;hpb=67766d65f06854ee894d784f638c5c9cd2b50bca diff --git a/src/graph.c b/src/graph.c index 3495f23c..297832cd 100644 --- a/src/graph.c +++ b/src/graph.c @@ -49,6 +49,7 @@ #include "connection.h" #include "device.h" #include "edge.h" +#include "graph.h" #include "logger.h" #include "netutl.h" #include "node.h" @@ -65,7 +66,7 @@ static bool graph_changed = true; Please note that sorting on weight is already done by add_edge(). */ -void mst_kruskal(void) { +static void mst_kruskal(void) { avl_node_t *node, *next; edge_t *e; node_t *n; @@ -146,7 +147,7 @@ void mst_kruskal(void) { Running time: O(E) */ -void sssp_bfs(void) { +static void sssp_bfs(void) { avl_node_t *node, *next, *to; edge_t *e; node_t *n; @@ -173,6 +174,7 @@ void sssp_bfs(void) { myself->status.visited = true; myself->status.indirect = false; myself->nexthop = myself; + myself->prevedge = NULL; myself->via = myself; list_insert_head(todo_list, myself); @@ -213,6 +215,7 @@ void sssp_bfs(void) { e->to->status.visited = true; e->to->status.indirect = indirect; e->to->nexthop = (n->nexthop == myself) ? e->to : n->nexthop; + e->to->prevedge = e; e->to->via = indirect ? n->via : e->to; e->to->options = e->options;