X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=9592f98010defd40dbaea395b71ae7081e8af948;hp=edea91bf0d11b6d6e0753ae9c4628faa8e7c559b;hb=8d64561dbc0542e7e1185591b8ecde3e56e1bfca;hpb=6685f2c8afc4775c3656dccc5a37286c01c0e854 diff --git a/src/graph.c b/src/graph.c index edea91bf..9592f980 100644 --- a/src/graph.c +++ b/src/graph.c @@ -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;