Don't assume sa.sa_family is a short int.
[tinc] / src / graph.c
index 690f4bd..e570feb 100644 (file)
@@ -149,7 +149,7 @@ static void sssp_bfs(void) {
                        abort();
 
                for splay_each(edge_t, e, n->edge_tree) {       /* "e" is the edge connected to "from" */
-                       if(!e->reverse)
+                       if(!e->reverse || e->to == myself)
                                continue;
 
                        /* Situation:
@@ -238,10 +238,11 @@ static void check_reachability(void) {
 
                        n->status.udp_confirmed = false;
                        n->maxmtu = MTU;
+                       n->maxrecentlen = 0;
                        n->minmtu = 0;
                        n->mtuprobes = 0;
 
-                       timeout_del(&n->mtutimeout);
+                       timeout_del(&n->udp_ping_timeout);
 
                        char *name;
                        char *address;
@@ -276,12 +277,9 @@ static void check_reachability(void) {
                                memset(&n->status, 0, sizeof n->status);
                                n->options = 0;
                        } else if(n->connection) {
-                               if(n->status.sptps) {
-                                       if(n->connection->outgoing)
-                                               send_req_key(n);
-                               } else {
+                               // Speed up UDP probing by sending our key.
+                               if(!n->status.sptps)
                                        send_ans_key(n);
-                               }
                        }
                }