Hans Leidekker : winhttp: Set WINHTTP_FLAG_SECURE if the scheme is https.

Alexandre Julliard julliard at winehq.org
Tue Jul 26 11:37:56 CDT 2011


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Jul 26 09:26:34 2011 +0200

winhttp: Set WINHTTP_FLAG_SECURE if the scheme is https.

---

 dlls/winhttp/request.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 611e8e0..3ae8dbc 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -2429,6 +2429,7 @@ static HRESULT WINAPI winhttp_request_Open(
 {
     static const WCHAR typeW[] = {'*','/','*',0};
     static const WCHAR *acceptW[] = {typeW, NULL};
+    static const WCHAR httpsW[] = {'h','t','t','p','s'};
     static const WCHAR user_agentW[] = {
         'M','o','z','i','l','l','a','/','4','.','0',' ','(','c','o','m','p','a','t','i','b','l','e',';',' ',
         'W','i','n','3','2',';',' ','W','i','n','H','t','t','p','.','W','i','n','H','t','t','p',
@@ -2437,7 +2438,7 @@ static HRESULT WINAPI winhttp_request_Open(
     HINTERNET hsession = NULL, hconnect = NULL, hrequest;
     URL_COMPONENTS uc;
     WCHAR *hostname, *path;
-    DWORD err, flags = 0;
+    DWORD err, len, flags = 0, request_flags = 0;
 
     TRACE("%p, %s, %s, %s\n", request, debugstr_w(method), debugstr_w(url),
           debugstr_variant(&async));
@@ -2446,6 +2447,7 @@ static HRESULT WINAPI winhttp_request_Open(
 
     memset( &uc, 0, sizeof(uc) );
     uc.dwStructSize = sizeof(uc);
+    uc.dwSchemeLength   = ~0u;
     uc.dwHostNameLength = ~0u;
     uc.dwUrlPathLength  = ~0u;
     if (!WinHttpCrackUrl( url, 0, 0, &uc )) return HRESULT_FROM_WIN32( get_last_error() );
@@ -2472,7 +2474,12 @@ static HRESULT WINAPI winhttp_request_Open(
         err = get_last_error();
         goto error;
     }
-    if (!(hrequest = WinHttpOpenRequest( hconnect, method, path, NULL, NULL, acceptW, 0 )))
+    len = sizeof(httpsW) / sizeof(WCHAR);
+    if (uc.dwSchemeLength == len && !memcmp( uc.lpszScheme, httpsW, len * sizeof(WCHAR) ))
+    {
+        request_flags |= WINHTTP_FLAG_SECURE;
+    }
+    if (!(hrequest = WinHttpOpenRequest( hconnect, method, path, NULL, NULL, acceptW, request_flags )))
     {
         err = get_last_error();
         goto error;




More information about the wine-cvs mailing list