skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &err);
if (unlikely(!skb)) {
- log_error("skb_recv_datagram\n");
+ log_error("skb_recv_datagram failed with %d\n", err);
goto out;
}
out_free:
skb_free_datagram(sk, skb);
+ if (i == msg->msg_iovlen - 1)
+ break;
+
skb = skb_recv_datagram(sk, flags, 1, &err);
if (likely(err == -EAGAIN)) {
log_debug("No more skbs in the queue, returning...\n");