iov: handle EOF in iov_send_recv
Without this patch, iov_send_recv() never returns when do_send_recv() returns zero. Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
526eda14a6
commit
8400429017
@ -202,6 +202,12 @@ ssize_t iov_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret == 0 && !do_send) {
|
||||||
|
/* recv returns 0 when the peer has performed an orderly
|
||||||
|
* shutdown. */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Prepare for the next iteration */
|
/* Prepare for the next iteration */
|
||||||
offset += ret;
|
offset += ret;
|
||||||
total += ret;
|
total += ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user