Dmitry Timoshkov : ws2_32: Add a workaround for broken versions of glibc which return EAI_SYSTEM and set errno to 0 instead returning of EAI_NONAME .
Alexandre Julliard
julliard at winehq.org
Thu Dec 26 12:23:32 CST 2013
Module: wine
Branch: master
Commit: 83a1789c559166ceb59255ed0f2c116cb5b13c96
URL: http://source.winehq.org/git/wine.git/?a=commit;h=83a1789c559166ceb59255ed0f2c116cb5b13c96
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Wed Dec 11 17:01:02 2013 +0900
ws2_32: Add a workaround for broken versions of glibc which return EAI_SYSTEM and set errno to 0 instead returning of EAI_NONAME.
---
dlls/ws2_32/socket.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index 304b0eb..79feb2b 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -5370,6 +5370,14 @@ static int convert_eai_u2w(int unixret) {
for (i=0;ws_eai_map[i][0];i++)
if (ws_eai_map[i][1] == unixret)
return ws_eai_map[i][0];
+
+ if (unixret == EAI_SYSTEM)
+ /* There are broken versions of glibc which return EAI_SYSTEM
+ * and set errno to 0 instead of returning EAI_NONAME.
+ */
+ return errno ? sock_get_error( errno ) : WS_EAI_NONAME;
+
+ FIXME("Unhandled unix EAI_xxx ret %d\n", unixret);
return unixret;
}
More information about the wine-cvs
mailing list