[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 09/21] io: add missing EWOULDBLOCK checks in Win3
From: |
Daniel P. Berrange |
Subject: |
[Qemu-devel] [PATCH v1 09/21] io: add missing EWOULDBLOCK checks in Win32 I/O code paths |
Date: |
Wed, 9 Mar 2016 17:28:12 +0000 |
On Win32 EWOULDBLOCK is not the same as EAGAIN, so we must
check both errnos after send/recv. Some places already
checked both, a couple of cases were previously missed.
Signed-off-by: Daniel P. Berrange <address@hidden>
---
io/channel-socket.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 5f087e6..1de5cc0 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -559,7 +559,8 @@ static ssize_t qio_channel_socket_readv(QIOChannel *ioc,
iov[i].iov_len,
0);
if (ret < 0) {
- if (socket_error() == EAGAIN) {
+ if (socket_error() == EAGAIN ||
+ socket_error() == EWOULDBLOCK) {
if (done) {
return done;
} else {
@@ -601,7 +602,8 @@ static ssize_t qio_channel_socket_writev(QIOChannel *ioc,
iov[i].iov_len,
0);
if (ret < 0) {
- if (socket_error() == EAGAIN) {
+ if (socket_error() == EAGAIN ||
+ socket_error() == EWOULDBLOCK) {
if (done) {
return done;
} else {
--
2.5.0
- [Qemu-devel] [PATCH v1 02/21] io: use bind() to check for IPv4/6 availability, (continued)
- [Qemu-devel] [PATCH v1 02/21] io: use bind() to check for IPv4/6 availability, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 03/21] io: initialize sockets in test program, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 01/21] osdep: fix socket_error() to work with Mingw64, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 04/21] io: bind to socket before creating QIOChannelSocket, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 05/21] io: wait for incoming client in socket test, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 06/21] io: set correct error object in background reader test thread, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 07/21] io: assert errors before asserting content in I/O test, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 08/21] io: fix copy+paste mistake in socket error message, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 09/21] io: add missing EWOULDBLOCK checks in Win32 I/O code paths,
Daniel P. Berrange <=
- [Qemu-devel] [PATCH v1 10/21] io: pass HANDLE to g_source_add_poll on Win32, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 11/21] io: introduce qio_channel_create_socket_watch, Daniel P. Berrange, 2016/03/09
- [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Daniel P. Berrange, 2016/03/09
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Paolo Bonzini, 2016/03/09
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Eric Blake, 2016/03/09
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Paolo Bonzini, 2016/03/09
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Daniel P. Berrange, 2016/03/10
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Paolo Bonzini, 2016/03/10
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Eric Blake, 2016/03/10
- Re: [Qemu-devel] [PATCH v1 12/21] io: implement socket watch for win32 using WSAEventSelect+select, Daniel P. Berrange, 2016/03/10