g_assert (ret == 0);
}
+void _wapi_error_cleanup (void)
+{
+ int ret;
+
+ ret = pthread_key_delete (error_key);
+ g_assert (ret == 0);
+}
+
/**
* GetLastError:
*
gchar *msg;
switch (code) {
+ case 0: result = ERROR_SUCCESS; break;
case EACCES: result = WSAEACCES; break;
case EADDRINUSE: result = WSAEADDRINUSE; break;
case EAFNOSUPPORT: result = WSAEAFNOSUPPORT; break;
#endif
/*FIXME: case EROFS: result = WSAE????; break; */
case ESOCKTNOSUPPORT: result = WSAESOCKTNOSUPPORT; break;
- case ETIMEDOUT: result = WSAENETDOWN; break;
+ case ETIMEDOUT: result = WSAETIMEDOUT; break;
case EWOULDBLOCK: result = WSAEWOULDBLOCK; break;
case EADDRNOTAVAIL: result = WSAEADDRNOTAVAIL; break;
+ /* This might happen with unix sockets */
+ case ENOENT: result = WSAECONNREFUSED; break;
+ case EDESTADDRREQ: result = WSAEDESTADDRREQ; break;
default:
sys_error = strerror (code);
msg = g_locale_to_utf8 (sys_error, strlen (sys_error), NULL, NULL, NULL);
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;
}