X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet_packet.c;h=4df8d9750277fe2cf03e5fe3e2478f4285d0873f;hb=6bcd03c2027636f82ab7228566717d112df7bc6d;hp=4e651555e4ccb88f8c8a56f00850ce88d25eaaec;hpb=153abaa4d940bf2bc9bd7275d5efe5c01c354190;p=tinc diff --git a/src/net_packet.c b/src/net_packet.c index 4e651555..4df8d975 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -252,6 +252,9 @@ static void receive_packet(node_t *n, vpn_packet_t *packet) { } static bool try_mac(node_t *n, const vpn_packet_t *inpkt) { + if(n->status.sptps) + return sptps_verify_datagram(&n->sptps, (char *)inpkt->data - 4, inpkt->len); + if(!digest_active(&n->indigest) || inpkt->len < sizeof inpkt->seqno + digest_length(&n->indigest)) return false; @@ -265,7 +268,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt) { vpn_packet_t *outpkt = pkt[0]; size_t outlen; - if(experimental && OPTION_VERSION(n->options) >= 2) { + if(n->status.sptps) { sptps_receive_data(&n->sptps, (char *)inpkt->data - 4, inpkt->len); return; } @@ -435,7 +438,7 @@ static void send_udppacket(node_t *n, vpn_packet_t *origpkt) { return; } - if(experimental && OPTION_VERSION(n->options) >= 2) { + if(n->status.sptps) { uint8_t type = 0; if(!(inpkt->data[12] | inpkt->data[13])) type = PKT_PROBE;