X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Ferror.c;h=7dea6633bbec7ba1daa3b2909d2b5ae466b1286e;hb=5ddbdcaf34c27c374b9cd1c459bdbdbfafa2632e;hp=d3e652cf22660b198efa2de63f38bf712ac292ab;hpb=37804ce823e2ce5f2f862160663c7ac5f34548f6;p=mono.git diff --git a/mono/io-layer/error.c b/mono/io-layer/error.c index d3e652cf226..7dea6633bbe 100644 --- a/mono/io-layer/error.c +++ b/mono/io-layer/error.c @@ -26,6 +26,14 @@ static void error_init(void) g_assert (ret == 0); } +void _wapi_error_cleanup (void) +{ + int ret; + + ret = pthread_key_delete (error_key); + g_assert (ret == 0); +} + /** * GetLastError: * @@ -70,6 +78,7 @@ errno_to_WSA (guint32 code, const gchar *function_name) 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; @@ -113,9 +122,12 @@ errno_to_WSA (guint32 code, const gchar *function_name) #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);