wininet(8/10): Support IPv6 addresses in HTTP_ResolveName and HTTP_OpenConnection

Juan Lang juan.lang at gmail.com
Thu Jul 9 13:59:30 CDT 2009


--Juan
-------------- next part --------------
From 4f898b45f44fc957b7c290ab3e93eff95b407f4b Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Thu, 9 Jul 2009 11:42:25 -0700
Subject: [PATCH 12/14] 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);
-- 
1.6.3.2


More information about the wine-patches mailing list