Added patch to implement ws2_32.InetPtonA/W functions.

This commit is contained in:
Sebastian Lackner 2015-10-03 00:42:19 +02:00
parent 6a06b1710e
commit 8f08951d14
5 changed files with 97 additions and 1 deletions

View File

@ -34,7 +34,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [17]:**
**Bug fixes and features included in the next upcoming release [18]:**
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
* Add implementation for msidb commandline tool
@ -45,6 +45,7 @@ Included bug fixes and improvements
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
* Implement additional stub functions in authz.dll
* Implement ws2_32.InetPtonA/W functions
* Make ddraw1 and ddraw_surface1 vtable as writable
* Pass cookie by reference to msvcrt_local_unwind4 in _seh_longjmp_unwind4 ([Wine Bug #39356](https://bugs.winehq.org/show_bug.cgi?id=39356))
* Protect TVM_GETITEM from invalid item pointers ([Wine Bug #33001](https://bugs.winehq.org/show_bug.cgi?id=33001))

1
debian/changelog vendored
View File

@ -28,6 +28,7 @@ wine-staging (1.7.52) UNRELEASED; urgency=low
* Added patch to mark WritePrivateProfileStringA as hotpatchable.
* Added patch to make ddraw1 and ddraw_surface1 vtable as writable.
* Added patch for implementation of mfplat.MFTEnum.
* Added patch to implement ws2_32.InetPtonA/W functions.
* Removed patch to fix possible memory leak in netprofm init_networks (fixed
upstream).
* Removed patch for stub of dwmapi.DwmUpdateThumbnailProperties (accepted

View File

@ -328,6 +328,7 @@ patch_enable_all ()
enable_wpcap_Dynamic_Linking="$1"
enable_ws2_32_APC_Performance="$1"
enable_ws2_32_Connect_Time="$1"
enable_ws2_32_InetPtonW="$1"
enable_ws2_32_TransmitFile="$1"
enable_ws2_32_WSACleanup="$1"
enable_ws2_32_WSAPoll="$1"
@ -1086,6 +1087,9 @@ patch_enable ()
ws2_32-Connect_Time)
enable_ws2_32_Connect_Time="$2"
;;
ws2_32-InetPtonW)
enable_ws2_32_InetPtonW="$2"
;;
ws2_32-TransmitFile)
enable_ws2_32_TransmitFile="$2"
;;
@ -6576,6 +6580,18 @@ if test "$enable_ws2_32_Connect_Time" -eq 1; then
) >> "$patchlist"
fi
# Patchset ws2_32-InetPtonW
# |
# | Modified files:
# | * dlls/ws2_32/socket.c, dlls/ws2_32/ws2_32.spec
# |
if test "$enable_ws2_32_InetPtonW" -eq 1; then
patch_apply ws2_32-InetPtonW/0001-ws2_32-Implement-InetPtonA-W.patch
(
echo '+ { "Michael Müller", "ws2_32: Implement InetPtonA/W.", 1 },';
) >> "$patchlist"
fi
# Patchset ws2_32-TransmitFile
# |
# | This patchset fixes the following Wine bugs:

View File

@ -0,0 +1,77 @@
From 2147c0778c3a31e9f2e16facdf49dedbf7257cf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 3 Oct 2015 00:38:08 +0200
Subject: ws2_32: Implement InetPtonA/W.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Michael Müller <michael@fds-team.de>
---
dlls/ws2_32/socket.c | 30 ++++++++++++++++++++++++++++++
dlls/ws2_32/ws2_32.spec | 4 +++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index 5cf3e0f..4c2428d 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -7456,6 +7456,36 @@ INT WINAPI WS_inet_pton( INT family, PCSTR addr, PVOID buffer)
#endif
}
+/***********************************************************************
+* InetPtonW (WS2_32.@)
+*/
+INT WINAPI InetPtonW(INT family, PCWSTR addr, PVOID buffer)
+{
+ char *addrA;
+ int len;
+ INT ret;
+
+ TRACE("family %d, addr '%s', buffer (%p)\n", family, addr ? debugstr_w(addr) : "(null)", buffer);
+
+ if (!addr)
+ {
+ SetLastError(WSAEFAULT);
+ return SOCKET_ERROR;
+ }
+
+ len = WideCharToMultiByte(CP_ACP, 0, addr, -1, NULL, 0, NULL, NULL);
+ if (!(addrA = HeapAlloc(GetProcessHeap(), 0, len)))
+ {
+ SetLastError(WSA_NOT_ENOUGH_MEMORY);
+ return SOCKET_ERROR;
+ }
+ WideCharToMultiByte(CP_ACP, 0, addr, -1, addrA, len, NULL, NULL);
+
+ ret = WS_inet_pton(family, addrA, buffer);
+
+ HeapFree(GetProcessHeap(), 0, addrA);
+ return ret;
+}
/***********************************************************************
* WSAStringToAddressA (WS2_32.80)
diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec
index f7c6c2d..95c7da1 100644
--- a/dlls/ws2_32/ws2_32.spec
+++ b/dlls/ws2_32/ws2_32.spec
@@ -53,6 +53,8 @@
@ stdcall FreeAddrInfoW(ptr)
@ stdcall GetAddrInfoW(wstr wstr ptr ptr)
@ stdcall GetNameInfoW(ptr long ptr long ptr long long)
+@ stdcall InetPtonA(long str ptr) WS_inet_pton
+@ stdcall InetPtonW(long wstr ptr)
@ stdcall WSApSetPostRoutine(ptr)
@ stdcall WPUCompleteOverlappedRequest(long ptr long long ptr)
@ stdcall WSAAccept(long ptr ptr ptr long)
@@ -121,4 +123,4 @@
@ stdcall getaddrinfo(str str ptr ptr) WS_getaddrinfo
@ stdcall getnameinfo(ptr long ptr long ptr long long) WS_getnameinfo
@ stdcall inet_ntop(long ptr ptr long) WS_inet_ntop
-@ stdcall inet_pton(long ptr ptr) WS_inet_pton
+@ stdcall inet_pton(long str ptr) WS_inet_pton
--
2.5.1

View File

@ -0,0 +1 @@
Fixes: Implement ws2_32.InetPtonA/W functions