Remove useless variable 'hard' from try_harder().
[oweals/tinc.git] / src / net_packet.c
index 054679e9aa0c75bca437e96443336a21d7ee53e4..905b944cd4eebd8327bcca77d3e374da7d5fa0c0 100644 (file)
@@ -650,7 +650,7 @@ void broadcast_packet(const node_t *from, vpn_packet_t *packet) {
                        for(node = node_udp_tree->head; node; node = node->next) {
                                n = node->data;
 
-                               if(n->status.reachable && ((n->via == myself && n->nexthop == n) || n->via == n))
+                               if(n->status.reachable && n != myself && ((n->via == myself && n->nexthop == n) || n->via == n))
                                        send_packet(n, packet);
                        }
                        break;
@@ -664,7 +664,6 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) {
        avl_node_t *node;
        edge_t *e;
        node_t *n = NULL;
-       bool hard = false;
        static time_t last_hard_try = 0;
 
        for(node = edge_weight_tree->head; node; node = node->next) {
@@ -673,11 +672,8 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) {
                if(e->to == myself)
                        continue;
 
-               if(sockaddrcmp_noport(from, &e->address)) {
-                       if(last_hard_try == now)
-                               continue;
-                       hard = true;
-               }
+               if(last_hard_try == now && sockaddrcmp_noport(from, &e->address))
+                       continue;
 
                if(!try_mac(e->to, pkt))
                        continue;
@@ -686,9 +682,6 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) {
                break;
        }
 
-       if(hard)
-               last_hard_try = now;
-
        last_hard_try = now;
        return n;
 }