X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet_packet.c;h=13f132565016bbe908a66bbb01ce34939b9dacec;hb=cdbbbfabea173894bd2fb5f28135a04ddc5e3fd7;hp=aef55342353cac99096822d10d41c728f34c503e;hpb=046d83bf91e01bc7a32e66a02758caf228bc4601;p=tinc diff --git a/src/net_packet.c b/src/net_packet.c index aef55342..13f13256 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -575,6 +575,7 @@ 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) { @@ -583,12 +584,9 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) { if(sockaddrcmp_noport(from, &e->address)) { if(last_hard_try == now) continue; - last_hard_try = now; + hard = true; } - if(!n) - n = e->to; - if(!try_mac(e->to, pkt)) continue; @@ -596,6 +594,9 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) { break; } + if(hard) + last_hard_try = now; + return n; }