aboutsummaryrefslogtreecommitdiff
path: root/util/oslib-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/oslib-posix.c')
-rw-r--r--util/oslib-posix.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 4ff577e..14cf94a 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -250,21 +250,19 @@ void qemu_anon_ram_free(void *ptr, size_t size)
#endif
}
-void qemu_socket_set_block(int fd)
+bool qemu_set_blocking(int fd, bool block, Error **errp)
{
- g_unix_set_fd_nonblocking(fd, false, NULL);
-}
+ g_autoptr(GError) err = NULL;
-int qemu_socket_try_set_nonblock(int fd)
-{
- return g_unix_set_fd_nonblocking(fd, true, NULL) ? 0 : -errno;
-}
+ if (!g_unix_set_fd_nonblocking(fd, !block, &err)) {
+ error_setg_errno(errp, errno,
+ "Can't set file descriptor %d %s: %s", fd,
+ block ? "blocking" : "non-blocking",
+ err->message);
+ return false;
+ }
-void qemu_socket_set_nonblock(int fd)
-{
- int f;
- f = qemu_socket_try_set_nonblock(fd);
- assert(f == 0);
+ return true;
}
int socket_set_fast_reuse(int fd)