From 0aa86d4b8b3010522e6de8842f5bd29004ba3df6 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Wed, 9 Mar 2011 09:34:56 +0100 Subject: [PATCH 1/1] Do not set indirect flag on edges from nodes with multiple addresses. Since tinc now handles UDP packets with a different source address and port than used for TCP connections, the heuristic to treat edges as indirect when tinc could detect that multiple addresses were used does not make sense anymore, and can actually reduce performance. --- src/graph.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/graph.c b/src/graph.c index 1e6043d1..8f58af4c 100644 --- a/src/graph.c +++ b/src/graph.c @@ -199,16 +199,12 @@ void sssp_bfs(void) { n->address is set to the e->address of the edge left of n to n. We are currently examining the edge e right of n from n: - - If e->reverse->address != n->address, then e->to is probably - not reachable for the nodes left of n. We do as if the indirectdata - flag is set on edge e. - If edge e provides for better reachability of e->to, update e->to and (re)add it to the todo_list to (re)examine the reachability of nodes behind it. */ - indirect = n->status.indirect || e->options & OPTION_INDIRECT - || ((n != myself) && sockaddrcmp(&n->address, &e->reverse->address)); + indirect = n->status.indirect || e->options & OPTION_INDIRECT; if(e->to->status.visited && (!e->to->status.indirect || indirect)) -- 2.20.1