diff options
Diffstat (limited to 'util/oslib-win32.c')
-rw-r--r-- | util/oslib-win32.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/util/oslib-win32.c b/util/oslib-win32.c index b735163..b9ce2f9 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -177,25 +177,22 @@ static int socket_error(void) } } -void qemu_socket_set_block(int fd) +bool qemu_set_blocking(int fd, bool block, Error **errp) { - unsigned long opt = 0; - qemu_socket_unselect(fd, NULL); - ioctlsocket(fd, FIONBIO, &opt); -} + unsigned long opt = block ? 0 : 1; + + if (block) { + qemu_socket_unselect(fd, NULL); + } -int qemu_socket_try_set_nonblock(int fd) -{ - unsigned long opt = 1; if (ioctlsocket(fd, FIONBIO, &opt) != NO_ERROR) { - return -socket_error(); + error_setg_errno(errp, socket_error(), + "Can't set file descriptor %d %s", fd, + block ? "blocking" : "non-blocking"); + return false; } - return 0; -} -void qemu_socket_set_nonblock(int fd) -{ - (void)qemu_socket_try_set_nonblock(fd); + return true; } int socket_set_fast_reuse(int fd) |