winhttp(5/13): Honor WINHTTP_ACCESS_TYPE_DEFAULT_PROXY in WinHttpOpen
Juan Lang
juan.lang at gmail.com
Tue Jul 14 15:22:37 CDT 2009
--Juan
-------------- next part --------------
From 5a2602a7ebdecca9851a834c23ed439703c6ccc6 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Tue, 14 Jul 2009 13:01:48 -0700
Subject: [PATCH 05/13] 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;
--
1.6.3.2
More information about the wine-patches
mailing list