X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet_packet.c;h=abfb55c411435af0e07d56ab021d9c7c01bbb742;hb=f417271ea1447589ea05901f54fbb0377e7afaf9;hp=ac63f62803e53cf11a6b5568c54ba5cc9995c08a;hpb=742f7bb04e72d93f2c4a858534144a599b3fc14d;p=tinc diff --git a/src/net_packet.c b/src/net_packet.c index ac63f628..abfb55c4 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -773,7 +773,7 @@ void broadcast_packet(const node_t *from, vpn_packet_t *packet) { if(from != myself) break; - for(node = node_udp_tree->head; node; node = node->next) { + for(node = node_tree->head; node; node = node->next) { n = node->data; if(n->status.reachable && ((n->via == myself && n->nexthop == n) || n->via == n)) @@ -797,7 +797,7 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) { for(node = edge_weight_tree->head; node; node = node->next) { e = node->data; - if(e->to == myself) + if(!e->to->status.reachable || e->to == myself) continue; if(sockaddrcmp_noport(from, &e->address)) { @@ -823,7 +823,7 @@ static node_t *try_harder(const sockaddr_t *from, const vpn_packet_t *pkt) { void handle_incoming_vpn_data(int sock, short events, void *data) { vpn_packet_t pkt; char *hostname; - sockaddr_t from; + sockaddr_t from = {{0}}; socklen_t fromlen = sizeof from; node_t *n; int len;