@@ -56,6 +56,11 @@ static QemuOptsList dummy_opts = {
},
};
+void set_errno(int e)
+{
+ errno = e;
+}
+
static int inet_getport(struct addrinfo *e)
{
struct sockaddr_in *i4;
@@ -8,6 +8,7 @@
#include <ws2tcpip.h>
#define socket_error() WSAGetLastError()
+#define set_socket_error(e) WSASetLastError(e)
#undef EINTR
#define EWOULDBLOCK WSAEWOULDBLOCK
#define EINTR WSAEINTR
@@ -25,7 +26,10 @@ int inet_aton(const char *cp, struct in_addr *ia);
#include <netdb.h>
#include <sys/un.h>
+void set_errno(int e);
+
#define socket_error() errno
+#define set_socket_error(e) set_errno(e)
#define closesocket(s) close(s)
#endif /* !_WIN32 */
Introduce set_socket_error() to set the errno, use WSASetLastError() for win32. Sometimes, clean work would rewrite errno in error path, we can use this function to restore real errno. Changes from V5: - create a function to set errno Signed-off-by: Amos Kong <akong@redhat.com>