Juan Lang : wininet: Support IPv6 addresses in HTTP_ResolveName and HTTP_OpenConnection.

Alexandre Julliard julliard at winehq.org
Fri Jul 10 08:52:04 CDT 2009


Module: wine
Branch: master
Commit: 481c9b895d4d9ce92e5db4da25317d885dd5b0a9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=481c9b895d4d9ce92e5db4da25317d885dd5b0a9

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Jul  9 11:42:25 2009 -0700

wininet: Support IPv6 addresses in HTTP_ResolveName and HTTP_OpenConnection.

---

 dlls/wininet/http.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 9573f6f..5832a5c 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -1448,9 +1448,13 @@ static BOOL HTTP_DealWithProxy( LPWININETAPPINFOW hIC,
     return TRUE;
 }
 
+#ifndef INET6_ADDRSTRLEN
+#define INET6_ADDRSTRLEN 46
+#endif
+
 static BOOL HTTP_ResolveName(LPWININETHTTPREQW lpwhr)
 {
-    char szaddr[32];
+    char szaddr[INET6_ADDRSTRLEN];
     LPWININETHTTPSESSIONW lpwhs = lpwhr->lpHttpSession;
     const void *addr;
 
@@ -1472,6 +1476,9 @@ static BOOL HTTP_ResolveName(LPWININETHTTPREQW lpwhr)
     case AF_INET:
         addr = &((struct sockaddr_in *)&lpwhs->socketAddress)->sin_addr;
         break;
+    case AF_INET6:
+        addr = &((struct sockaddr_in6 *)&lpwhs->socketAddress)->sin6_addr;
+        break;
     default:
         WARN("unsupported family %d\n", lpwhs->socketAddress.ss_family);
         INTERNET_SetLastError(ERROR_INTERNET_NAME_NOT_RESOLVED);
@@ -4117,7 +4124,7 @@ static BOOL HTTP_OpenConnection(LPWININETHTTPREQW lpwhr)
     BOOL bSuccess = FALSE;
     LPWININETHTTPSESSIONW lpwhs;
     LPWININETAPPINFOW hIC = NULL;
-    char szaddr[32];
+    char szaddr[INET6_ADDRSTRLEN];
     const void *addr;
 
     TRACE("-->\n");
@@ -4144,6 +4151,9 @@ static BOOL HTTP_OpenConnection(LPWININETHTTPREQW lpwhr)
     case AF_INET:
         addr = &((struct sockaddr_in *)&lpwhs->socketAddress)->sin_addr;
         break;
+    case AF_INET6:
+        addr = &((struct sockaddr_in6 *)&lpwhs->socketAddress)->sin6_addr;
+        break;
     default:
         WARN("unsupported family %d\n", lpwhs->socketAddress.ss_family);
         INTERNET_SetLastError(ERROR_INTERNET_NAME_NOT_RESOLVED);




More information about the wine-cvs mailing list