case ESOCKTNOSUPPORT: result = WSAESOCKTNOSUPPORT; break;
case ETIMEDOUT: result = WSAENETDOWN; break;
case EWOULDBLOCK: result = WSAEWOULDBLOCK; break;
+ case EADDRNOTAVAIL: result = WSAEADDRNOTAVAIL; break;
+ /* This might happen with unix sockets */
+ case ENOENT: result = WSAECONNREFUSED; break;
default:
sys_error = strerror (code);
msg = g_locale_to_utf8 (sys_error, strlen (sys_error), NULL, NULL, NULL);
if (function_name == NULL)
- function_name = G_GNUC_PRETTY_FUNCTION;
+ function_name = __func__;
g_warning ("%s: Need to translate %d [%s] into winsock error",
function_name, code, msg);
break;
case ENFILE: case EMFILE:
- ret = ERROR_NO_MORE_FILES;
+ ret = ERROR_TOO_MANY_OPEN_FILES;
break;
case ENOENT: case ENOTDIR:
ret = ERROR_INVALID_HANDLE;
break;
+ case EINTR:
+ ret = ERROR_IO_PENDING; /* best match I could find */
+ break;
+
+ case EPIPE:
+ ret = ERROR_WRITE_FAULT;
+ break;
+
default:
- g_message ("Unknown errno: %s\n", strerror (err));
+ g_message ("Unknown errno: %s\n", g_strerror (err));
ret = ERROR_GEN_FAILURE;
break;
}