Juan Lang : winhttp: Honor WINHTTP_ACCESS_TYPE_DEFAULT_PROXY in WinHttpOpen .

Alexandre Julliard julliard at winehq.org
Wed Jul 15 09:46:57 CDT 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Tue Jul 14 13:01:48 2009 -0700

winhttp: Honor WINHTTP_ACCESS_TYPE_DEFAULT_PROXY in WinHttpOpen.

---

 dlls/winhttp/session.c |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c
index 8a9a039..c26e577 100644
--- a/dlls/winhttp/session.c
+++ b/dlls/winhttp/session.c
@@ -168,13 +168,35 @@ HINTERNET WINAPI WinHttpOpen( LPCWSTR agent, DWORD access, LPCWSTR proxy, LPCWST
     session->hdr.vtbl = &session_vtbl;
     session->hdr.flags = flags;
     session->hdr.refs = 1;
-    session->access = access;
     session->hdr.redirect_policy = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP;
     list_init( &session->cookie_cache );
 
     if (agent && !(session->agent = strdupW( agent ))) goto end;
-    if (proxy && !(session->proxy_server = strdupW( proxy ))) goto end;
-    if (bypass && !(session->proxy_bypass = strdupW( bypass ))) goto end;
+    if (access == WINHTTP_ACCESS_TYPE_DEFAULT_PROXY)
+    {
+        WINHTTP_PROXY_INFO info;
+
+        WinHttpGetDefaultProxyConfiguration( &info );
+        session->access = info.dwAccessType;
+        if (info.lpszProxy && !(session->proxy_server = strdupW( info.lpszProxy )))
+        {
+            GlobalFree( (LPWSTR)info.lpszProxy );
+            GlobalFree( (LPWSTR)info.lpszProxyBypass );
+            goto end;
+        }
+        if (info.lpszProxyBypass && !(session->proxy_bypass = strdupW( info.lpszProxyBypass )))
+        {
+            GlobalFree( (LPWSTR)info.lpszProxy );
+            GlobalFree( (LPWSTR)info.lpszProxyBypass );
+            goto end;
+        }
+    }
+    else if (access == WINHTTP_ACCESS_TYPE_NAMED_PROXY)
+    {
+        session->access = access;
+        if (proxy && !(session->proxy_server = strdupW( proxy ))) goto end;
+        if (bypass && !(session->proxy_bypass = strdupW( bypass ))) goto end;
+    }
 
     if (!(handle = alloc_handle( &session->hdr ))) goto end;
     session->hdr.handle = handle;




More information about the wine-cvs mailing list