projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not access e->to->prevedge if not defined
[tinc]
/
src
/
graph.c
diff --git
a/src/graph.c
b/src/graph.c
index
70d6573
..
56ebb61
100644
(file)
--- a/
src/graph.c
+++ b/
src/graph.c
@@
-173,7
+173,7
@@
static void sssp_bfs(void) {
if(e->to->status.visited
&& (!e->to->status.indirect || indirect)
if(e->to->status.visited
&& (!e->to->status.indirect || indirect)
- && (e->to->
distance != n->distance + 1 || e->weight >= e->to->prevedge->weight
))
+ && (e->to->
prevedge && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight)
))
continue;
// Only update nexthop if it doesn't increase the path length
continue;
// Only update nexthop if it doesn't increase the path length
@@
-238,10
+238,11
@@
static void check_reachability(void) {
n->status.udp_confirmed = false;
n->maxmtu = MTU;
n->status.udp_confirmed = false;
n->maxmtu = MTU;
+ n->maxrecentlen = 0;
n->minmtu = 0;
n->mtuprobes = 0;
n->minmtu = 0;
n->mtuprobes = 0;
- timeout_del(&n->
mtu
timeout);
+ timeout_del(&n->
udp_ping_
timeout);
char *name;
char *address;
char *name;
char *address;
@@
-275,6
+276,10
@@
static void check_reachability(void) {
update_node_udp(n, NULL);
memset(&n->status, 0, sizeof n->status);
n->options = 0;
update_node_udp(n, NULL);
memset(&n->status, 0, sizeof n->status);
n->options = 0;
+ } else if(n->connection) {
+ // Speed up UDP probing by sending our key.
+ if(!n->status.sptps)
+ send_ans_key(n);
}
}
}
}