[sheepdog] [PATCH v4 02/10] iov: handle EOF in iov_send_recv
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Fri Jul 26 08:10:44 CEST 2013
Without this patch, iov_send_recv() never returns when do_send_recv()
returns zero.
Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
util/iov.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/util/iov.c b/util/iov.c
index cc6e837..f705586 100644
--- a/util/iov.c
+++ b/util/iov.c
@@ -202,6 +202,12 @@ ssize_t iov_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt,
return -1;
}
+ if (ret == 0 && !do_send) {
+ /* recv returns 0 when the peer has performed an orderly
+ * shutdown. */
+ break;
+ }
+
/* Prepare for the next iteration */
offset += ret;
total += ret;
--
1.8.1.3.566.gaa39828
More information about the sheepdog
mailing list