- struct receiver_node *rn = container_of(t, struct receiver_node, task);
- struct private_udp_recv_data *purd = rn->private_data;
+ if (sz < FEC_EOF_PACKET_LEN)
+ return 0;
+ if (iov[0].iov_len >= FEC_EOF_PACKET_LEN) {
+ if (memcmp(iov[0].iov_base, FEC_EOF_PACKET,
+ FEC_EOF_PACKET_LEN) != 0)
+ return 0;
+ return -E_RECV_EOF;
+ }
+ if (memcmp(iov[0].iov_base, FEC_EOF_PACKET, iov[0].iov_len) != 0)
+ return 0;
+ if (memcmp(iov[1].iov_base, &FEC_EOF_PACKET[iov[0].iov_len],
+ FEC_EOF_PACKET_LEN - iov[0].iov_len) != 0)
+ return 0;
+ return -E_RECV_EOF;
+}
+
+static int udp_recv_post_select(__a_unused struct sched *s, void *context)
+{
+ struct receiver_node *rn = context;