+ if(n->status.sptps) {
+ if(!memcmp(&spkt->dstid, &nullid, sizeof nullid)) {
+ direct = true;
+ from = n;
+ to = myself;
+ } else {
+ from = lookup_node_id(&spkt->srcid);
+ to = lookup_node_id(&spkt->dstid);
+ }
+ if(!from || !to) {
+ logger(DEBUG_PROTOCOL, LOG_WARNING, "Received UDP packet from %s (%s) with unknown source and/or destination ID", n->name, n->hostname);
+ return;
+ }
+
+ spkt->len -= sizeof spkt->dstid + sizeof spkt->srcid;
+ if(to != myself) {
+ send_sptps_data_priv(to, n, 0, spkt->data, spkt->len);
+ return;
+ }
+ } else {
+ direct = true;
+ from = n;
+ }
+
+ if(!receive_udppacket(from, &pkt))