From f5ff243a8b4264c34a362f88dbcfa04a830e2721 Mon Sep 17 00:00:00 2001 From: Sean McNamara Date: Fri, 27 Mar 2009 12:24:28 -0400 Subject: More debugging for Win32 ioctlsocket: complain if it's not a Winsock socket, because there is no ioctl for non-sockets on Windows --- src/utils.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 8b1c902c4..a6a468974 100644 --- a/src/utils.c +++ b/src/utils.c @@ -105,9 +105,18 @@ char *parsePath(char *path) int set_nonblocking(int fd) { #ifdef WIN32 - u_long val = 0; - - return ioctlsocket(fd, FIONBIO, &val) == 0 ? 0 : -1; + u_long val = 1; + int retval; + int lasterr = 0; + retval = ioctlsocket(fd, FIONBIO, &val); + if(retval == SOCKET_ERROR) + g_error("Error: ioctlsocket could not set FIONBIO;" + " Error %d on socket %d", lasterr = WSAGetLastError(), fd); + if(lasterr == 10038) + g_debug("Code-up error! Attempt to set non-blocking I/O on " + "something that is not a Winsock2 socket. This can't " + "be done on Windows!\n"); + return retval; #else int ret, flags; -- cgit v1.2.3