Juan Lang : wininet: Simplify GetAddress when using getaddrinfo.
Alexandre Julliard
julliard at winehq.org
Fri Jul 10 08:52:03 CDT 2009
Module: wine
Branch: master
Commit: f0dde6b673905f2229ca09c9e153ac879b614c6d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f0dde6b673905f2229ca09c9e153ac879b614c6d
Author: Juan Lang <juan.lang at gmail.com>
Date: Thu Jul 9 10:55:18 2009 -0700
wininet: Simplify GetAddress when using getaddrinfo.
---
dlls/wininet/utility.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/wininet/utility.c b/dlls/wininet/utility.c
index 2c443bf..e2eee46 100644
--- a/dlls/wininet/utility.c
+++ b/dlls/wininet/utility.c
@@ -187,17 +187,21 @@ BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort,
TRACE("failed to get address of %s (%s)\n", debugstr_w(lpszServerName), gai_strerror(ret));
return FALSE;
}
- if (*sa_len < sizeof(struct sockaddr_in))
+ if (*sa_len < res->ai_addrlen)
{
WARN("address too small\n");
freeaddrinfo( res );
return FALSE;
}
- *sa_len = sizeof(struct sockaddr_in);
- memset( psa, 0, sizeof(struct sockaddr_in) );
- memcpy( &((struct sockaddr_in *)psa)->sin_addr, &((struct sockaddr_in *)res->ai_addr)->sin_addr, sizeof(struct in_addr) );
- ((struct sockaddr_in *)psa)->sin_family = res->ai_family;
- ((struct sockaddr_in *)psa)->sin_port = htons(nServerPort);
+ *sa_len = res->ai_addrlen;
+ memcpy( psa, res->ai_addr, res->ai_addrlen );
+ /* Copy port */
+ switch (res->ai_family)
+ {
+ case AF_INET:
+ ((struct sockaddr_in *)psa)->sin_port = htons(nServerPort);
+ break;
+ }
freeaddrinfo( res );
#else
More information about the wine-cvs
mailing list