From 6d1fea9711d5062fdcfe5043091451c8aec56023 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Wed, 17 Jun 2020 00:43:22 +0200 Subject: [PATCH] ws2_32: Add FreeAddrInfoEx. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48256 Signed-off-by: Louis Lenders Signed-off-by: Alexandre Julliard --- dlls/ws2_32/socket.c | 18 ++++++++++++++++++ dlls/ws2_32/ws2_32.spec | 1 + include/ws2tcpip.h | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 87446025646..402ee86d962 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -7269,6 +7269,24 @@ void WINAPI FreeAddrInfoW(PADDRINFOW ai) } /*********************************************************************** + * FreeAddrInfoEx (WS2_32.@) + */ +void WINAPI FreeAddrInfoEx(ADDRINFOEXA *ai) +{ + TRACE("(%p)\n", ai); + + while (ai) + { + ADDRINFOEXA *next; + HeapFree(GetProcessHeap(), 0, ai->ai_canonname); + HeapFree(GetProcessHeap(), 0, ai->ai_addr); + next = ai->ai_next; + HeapFree(GetProcessHeap(), 0, ai); + ai = next; + } +} + +/*********************************************************************** * FreeAddrInfoExW (WS2_32.@) */ void WINAPI FreeAddrInfoExW(ADDRINFOEXW *ai) diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec index d3c1e6214af..87e0bdfa2f0 100644 --- a/dlls/ws2_32/ws2_32.spec +++ b/dlls/ws2_32/ws2_32.spec @@ -50,6 +50,7 @@ 500 stub WEP +@ stdcall FreeAddrInfoEx(ptr) @ stdcall FreeAddrInfoExW(ptr) @ stdcall FreeAddrInfoW(ptr) @ stdcall GetAddrInfoExCancel(ptr) diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h index 43c277fa0cb..5a444dcb5f3 100644 --- a/include/ws2tcpip.h +++ b/include/ws2tcpip.h @@ -177,7 +177,11 @@ void WINAPI WS(freeaddrinfo)(LPADDRINFO); #define FreeAddrInfoA WS(freeaddrinfo) void WINAPI FreeAddrInfoW(PADDRINFOW); #define FreeAddrInfo WINELIB_NAME_AW(FreeAddrInfo) +void WINAPI FreeAddrInfoEx(ADDRINFOEXA*); void WINAPI FreeAddrInfoExW(ADDRINFOEXW*); +#ifdef UNICODE +#define FreeAddrInfoEx FreeAddrInfoExW +#endif int WINAPI WS(getaddrinfo)(const char*,const char*,const struct WS(addrinfo)*,struct WS(addrinfo)**); #define GetAddrInfoA WS(getaddrinfo) int WINAPI GetAddrInfoW(PCWSTR,PCWSTR,const ADDRINFOW*,PADDRINFOW*); -- 2.11.4.GIT