wininet fixes

John Lightsey john at wazzim.com
Thu Jul 4 00:11:01 CDT 2002


This corrects some problems wininet/InternetOpenUrlA was 
giving me when creating HTTP requests on URLs with
;<params>?<query> in them.  It was simply discarding
everything after the first semicolon.

John Lightsey  <john at wazzim.com>
---

? wine/tools/winelauncher
Index: wine/dlls/wininet/internet.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/internet.c,v
retrieving revision 1.35
diff -u -r1.35 internet.c
--- wine/dlls/wininet/internet.c	21 Jun 2002 23:59:49 -0000	1.35
+++ wine/dlls/wininet/internet.c	4 Jul 2002 09:11:08 -0000
@@ -574,7 +574,7 @@
     }
 
     /* Parse <params> */
-    lpszParam = strpbrk(lpszap, ";?");
+    lpszParam = strpbrk(lpszap, ";");
     if (lpszParam != NULL)
     {
         if (!SetUrlComponentValue(&lpUrlComponents->lpszExtraInfo,
@@ -582,7 +582,9 @@
         {
 	    return FALSE;
         }
-        }
+    } else {
+	lpUrlComponents->dwExtraInfoLength=0;
+    }
 
     if (bIsAbsolute) /* Parse <protocol>:[//<net_loc>] */
         {
@@ -1276,7 +1278,13 @@
     client = InternetConnectA(hInternet, hostName, urlComponents.nPort, userName, password, INTERNET_SERVICE_HTTP, dwFlags, dwContext);
     if(client == NULL)
       return NULL;
-    client1 = HttpOpenRequestA(hInternet, NULL, path, NULL, NULL, accept, dwFlags, dwContext);
+    char pathextra[3073];
+    strcpy(pathextra,path);
+    if (urlComponents.dwExtraInfoLength) {
+      strcat(pathextra,";");
+      strcat(pathextra,extra);
+    }
+    client1 = HttpOpenRequestA(client, NULL, pathextra, NULL, NULL, accept, dwFlags, dwContext);
     if(client1 == NULL) {
       InternetCloseHandle(client);
       return NULL;




More information about the wine-patches mailing list