[Spice-devel] [PATCH spice-server v4 09/20] net-utils: Use socket compatibility layer

Frediano Ziglio fziglio at redhat.com
Wed Feb 6 13:58:45 UTC 2019


Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/net-utils.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/server/net-utils.c b/server/net-utils.c
index 802509a4..ad66a328 100644
--- a/server/net-utils.c
+++ b/server/net-utils.c
@@ -35,6 +35,7 @@
 #include <common/log.h>
 
 #include "net-utils.h"
+#include "sys-socket.h"
 
 /**
  * red_socket_set_keepalive:
@@ -101,6 +102,7 @@ bool red_socket_set_no_delay(int fd, bool no_delay)
  */
 bool red_socket_set_non_blocking(int fd, bool non_blocking)
 {
+#ifndef _WIN32
     int flags;
 
     if ((flags = fcntl(fd, F_GETFL)) == -1) {
@@ -120,6 +122,15 @@ bool red_socket_set_non_blocking(int fd, bool non_blocking)
     }
 
     return true;
+#else
+    u_long ioctl_nonblocking = 1;
+
+    if (ioctlsocket(fd, FIONBIO, &ioctl_nonblocking) != 0) {
+        spice_warning("ioctlsocket(FIONBIO) failed, %d", WSAGetLastError());
+        return false;
+    }
+    return true;
+#endif
 }
 
 /**
-- 
2.20.1



More information about the Spice-devel mailing list