[PATCH] ws2_32: Implement InetNtopW
Philipp Hoppermann
plata at mailbox.org
Fri Jul 22 15:16:53 CDT 2016
Fixes https://bugs.winehq.org/show_bug.cgi?id=40999
Signed-off-by: Philipp Hoppermann <plata at mailbox.org>
---
dlls/ws2_32/socket.c | 27 +++++++++++++++++++++++++++
dlls/ws2_32/ws2_32.spec | 1 +
2 files changed, 28 insertions(+)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index b0af3d7..95410b2 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -7934,6 +7934,33 @@ INT WINAPI InetPtonW(INT family, PCWSTR addr, PVOID buffer)
}
/***********************************************************************
+ * InetNtopW (WS2_32.@)
+ */
+PCWSTR WINAPI InetNtopW(INT family, PVOID addr, PWSTR buffer, SIZE_T buffer_len)
+{
+ char *bufferA;
+ PCWSTR ret;
+
+ TRACE("family %d, addr %s, buffer (%p), buffer_len %ld\n", family, debugstr_w(addr), buffer, buffer_len);
+
+ if (!(bufferA = HeapAlloc(GetProcessHeap(), 0, buffer_len)))
+ {
+ SetLastError(WSA_NOT_ENOUGH_MEMORY);
+ return NULL;
+ }
+
+ ret = WS_inet_ntop(family, addr, bufferA, buffer_len);
+ if (ret != NULL)
+ {
+ MultiByteToWideChar(CP_ACP, 0, bufferA, -1, buffer, buffer_len);
+ }
+
+ HeapFree(GetProcessHeap(), 0, bufferA);
+
+ return ret;
+}
+
+/***********************************************************************
* WSAStringToAddressA (WS2_32.80)
*/
INT WINAPI WSAStringToAddressA(LPSTR AddressString,
diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec
index 7625f38..5dd7138 100644
--- a/dlls/ws2_32/ws2_32.spec
+++ b/dlls/ws2_32/ws2_32.spec
@@ -55,6 +55,7 @@
@ stdcall GetAddrInfoW(wstr wstr ptr ptr)
@ stdcall GetNameInfoW(ptr long ptr long ptr long long)
@ stdcall InetPtonW(long wstr ptr)
+@ stdcall InetNtopW(long ptr ptr long)
@ stdcall WSApSetPostRoutine(ptr)
@ stdcall WPUCompleteOverlappedRequest(long ptr long long ptr)
@ stdcall WSAAccept(long ptr ptr ptr long)
--
2.7.4
More information about the wine-patches
mailing list