X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=9592f98010defd40dbaea395b71ae7081e8af948;hp=a15e5c700c95a1429c4a36bb93732c306792e86f;hb=8d64561dbc0542e7e1185591b8ecde3e56e1bfca;hpb=eb372a8c58479857f02422109d9da4f937954c61 diff --git a/src/graph.c b/src/graph.c index a15e5c70..9592f980 100644 --- a/src/graph.c +++ b/src/graph.c @@ -45,7 +45,7 @@ #include "system.h" #include "avl_tree.h" -#include "config.h" +#include "conf.h" #include "connection.h" #include "device.h" #include "edge.h" @@ -212,9 +212,13 @@ static void sssp_bfs(void) { && (!e->to->status.indirect || indirect)) continue; + // Only update nexthop the first time we visit this node. + + if(!e->to->status.visited) + e->to->nexthop = (n->nexthop == myself) ? e->to : n->nexthop; + 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;