Module: wine Branch: master Commit: 100bd11ae5e65bea9cdaecf4ce75a2aa8ba3ac2e URL: http://source.winehq.org/git/wine.git/?a=commit;h=100bd11ae5e65bea9cdaecf4ce...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Feb 16 11:16:39 2015 +0100
wininet: Use GetAddrInfoW in GetAddress.
---
dlls/wininet/utility.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-)
diff --git a/dlls/wininet/utility.c b/dlls/wininet/utility.c index ec82779..16447e4 100644 --- a/dlls/wininet/utility.c +++ b/dlls/wininet/utility.c @@ -125,20 +125,12 @@ time_t ConvertTimeString(LPCWSTR asctime) }
-BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort, - struct sockaddr *psa, socklen_t *sa_len) +BOOL GetAddress(const WCHAR *name, INTERNET_PORT port, struct sockaddr *psa, socklen_t *sa_len) { - struct addrinfo *res, hints; - char *name; - int sz; + ADDRINFOW *res, hints; int ret;
- TRACE("%s\n", debugstr_w(lpszServerName)); - - sz = WideCharToMultiByte( CP_UNIXCP, 0, lpszServerName, -1, NULL, 0, NULL, NULL ); - if (!(name = heap_alloc(sz + 1))) return FALSE; - WideCharToMultiByte( CP_UNIXCP, 0, lpszServerName, -1, name, sz, NULL, NULL ); - name[sz] = 0; + TRACE("%s\n", debugstr_w(name));
memset( &hints, 0, sizeof(hints) ); /* Prefer IPv4 to IPv6 addresses, since some servers do not listen on @@ -146,23 +138,22 @@ BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort, */ hints.ai_family = AF_INET;
- ret = getaddrinfo( name, NULL, &hints, &res ); + ret = GetAddrInfoW(name, NULL, &hints, &res); if (ret != 0) { - TRACE("failed to get IPv4 address of %s, retrying with IPv6\n", debugstr_w(lpszServerName)); + TRACE("failed to get IPv4 address of %s, retrying with IPv6\n", debugstr_w(name)); hints.ai_family = AF_INET6; - ret = getaddrinfo( name, NULL, &hints, &res ); + ret = GetAddrInfoW(name, NULL, &hints, &res); } - heap_free( name ); if (ret != 0) { - TRACE("failed to get address of %s\n", debugstr_w(lpszServerName)); + TRACE("failed to get address of %s\n", debugstr_w(name)); return FALSE; } if (*sa_len < res->ai_addrlen) { WARN("address too small\n"); - freeaddrinfo( res ); + FreeAddrInfoW(res); return FALSE; } *sa_len = res->ai_addrlen; @@ -171,14 +162,14 @@ BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort, switch (res->ai_family) { case AF_INET: - ((struct sockaddr_in *)psa)->sin_port = htons(nServerPort); + ((struct sockaddr_in *)psa)->sin_port = htons(port); break; case AF_INET6: - ((struct sockaddr_in6 *)psa)->sin6_port = htons(nServerPort); + ((struct sockaddr_in6 *)psa)->sin6_port = htons(port); break; }
- freeaddrinfo( res ); + FreeAddrInfoW(res); return TRUE; }