Hans Leidekker : winsock: Fix two Windows to Unix mapping issues.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Feb 27 09:33:07 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 4a8961ce3dc3321fbdea0bcd3fa8423586df552d
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=4a8961ce3dc3321fbdea0bcd3fa8423586df552d

Author: Hans Leidekker <hans at it.vu.nl>
Date:   Sat Feb 25 20:31:32 2006 +0100

winsock: Fix two Windows to Unix mapping issues.
Handle wildcard address family hint in getaddrinfo.
Convert flags too in getnameinfo.

---

 dlls/winsock/socket.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c
index 8ca3a3e..11672bc 100644
--- a/dlls/winsock/socket.c
+++ b/dlls/winsock/socket.c
@@ -3146,7 +3146,10 @@ int WINAPI WS_getaddrinfo(LPCSTR nodenam
 
         memset(&unixhints, 0, sizeof(unixhints));
         punixhints->ai_flags    = convert_aiflag_w2u(hints->ai_flags);
-        punixhints->ai_family   = convert_af_w2u(hints->ai_family);
+        if (hints->ai_family == 0) /* wildcard, specific to getaddrinfo() */
+            punixhints->ai_family = 0;
+        else
+            punixhints->ai_family = convert_af_w2u(hints->ai_family);
         if (hints->ai_socktype == 0) /* wildcard, specific to getaddrinfo() */
             punixhints->ai_socktype = 0;
         else
@@ -3252,7 +3255,7 @@ int WINAPI WS_getnameinfo(const SOCKADDR
         WSASetLastError(WSAEFAULT);
         return WSA_NOT_ENOUGH_MEMORY;
     }
-    ret = getnameinfo(sa_u, size, host, hostlen, serv, servlen, flags);
+    ret = getnameinfo(sa_u, size, host, hostlen, serv, servlen, convert_aiflag_w2u(flags));
 
     ws_sockaddr_free(sa_u, sa);
     return convert_eai_u2w(ret);




More information about the wine-cvs mailing list