forked from Mirrors/wine-wine
wininet: Handle http_proxy variable entirely in Unicode.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>stable
parent
86f43b693a
commit
cadad89d10
|
@ -541,7 +541,7 @@ static LONG INTERNET_LoadProxySettings( proxyinfo_t *lpwpi )
|
||||||
{
|
{
|
||||||
HKEY key;
|
HKEY key;
|
||||||
DWORD type, len;
|
DWORD type, len;
|
||||||
LPCSTR envproxy;
|
const WCHAR *envproxy;
|
||||||
LONG ret;
|
LONG ret;
|
||||||
|
|
||||||
memset( lpwpi, 0, sizeof(*lpwpi) );
|
memset( lpwpi, 0, sizeof(*lpwpi) );
|
||||||
|
@ -573,7 +573,7 @@ static LONG INTERNET_LoadProxySettings( proxyinfo_t *lpwpi )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(envproxy = getenv( "http_proxy" )) || lpwpi->proxyEnabled)
|
if (!(envproxy = _wgetenv( L"http_proxy" )) || lpwpi->proxyEnabled)
|
||||||
{
|
{
|
||||||
/* figure out how much memory the proxy setting takes */
|
/* figure out how much memory the proxy setting takes */
|
||||||
if (!RegQueryValueExW( key, szProxyServer, NULL, &type, NULL, &len ) && len && (type == REG_SZ))
|
if (!RegQueryValueExW( key, szProxyServer, NULL, &type, NULL, &len ) && len && (type == REG_SZ))
|
||||||
|
@ -615,18 +615,8 @@ static LONG INTERNET_LoadProxySettings( proxyinfo_t *lpwpi )
|
||||||
}
|
}
|
||||||
else if (envproxy)
|
else if (envproxy)
|
||||||
{
|
{
|
||||||
WCHAR *envproxyW;
|
|
||||||
|
|
||||||
len = MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, NULL, 0 );
|
|
||||||
if (!(envproxyW = heap_alloc(len * sizeof(WCHAR))))
|
|
||||||
{
|
|
||||||
RegCloseKey( key );
|
|
||||||
return ERROR_OUTOFMEMORY;
|
|
||||||
}
|
|
||||||
MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, envproxyW, len );
|
|
||||||
|
|
||||||
FreeProxyInfo( lpwpi );
|
FreeProxyInfo( lpwpi );
|
||||||
if (parse_proxy_url( lpwpi, envproxyW ))
|
if (parse_proxy_url( lpwpi, envproxy ))
|
||||||
{
|
{
|
||||||
TRACE("http proxy (from environment) = %s\n", debugstr_w(lpwpi->proxy));
|
TRACE("http proxy (from environment) = %s\n", debugstr_w(lpwpi->proxy));
|
||||||
lpwpi->proxyEnabled = 1;
|
lpwpi->proxyEnabled = 1;
|
||||||
|
@ -634,19 +624,18 @@ static LONG INTERNET_LoadProxySettings( proxyinfo_t *lpwpi )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WARN("failed to parse http_proxy value %s\n", debugstr_w(envproxyW));
|
WARN("failed to parse http_proxy value %s\n", debugstr_w(envproxy));
|
||||||
lpwpi->proxyEnabled = 0;
|
lpwpi->proxyEnabled = 0;
|
||||||
lpwpi->proxy = NULL;
|
lpwpi->proxy = NULL;
|
||||||
lpwpi->proxyBypass = NULL;
|
lpwpi->proxyBypass = NULL;
|
||||||
}
|
}
|
||||||
heap_free( envproxyW );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpwpi->proxyEnabled)
|
if (lpwpi->proxyEnabled)
|
||||||
{
|
{
|
||||||
TRACE("Proxy is enabled.\n");
|
TRACE("Proxy is enabled.\n");
|
||||||
|
|
||||||
if (!(envproxy = getenv( "no_proxy" )))
|
if (!(envproxy = _wgetenv( L"no_proxy" )))
|
||||||
{
|
{
|
||||||
/* figure out how much memory the proxy setting takes */
|
/* figure out how much memory the proxy setting takes */
|
||||||
if (!RegQueryValueExW( key, szProxyOverride, NULL, &type, NULL, &len ) && len && (type == REG_SZ))
|
if (!RegQueryValueExW( key, szProxyOverride, NULL, &type, NULL, &len ) && len && (type == REG_SZ))
|
||||||
|
@ -677,13 +666,12 @@ static LONG INTERNET_LoadProxySettings( proxyinfo_t *lpwpi )
|
||||||
{
|
{
|
||||||
WCHAR *envproxyW;
|
WCHAR *envproxyW;
|
||||||
|
|
||||||
len = MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, NULL, 0 );
|
if (!(envproxyW = heap_alloc(lstrlenW(envproxy) * sizeof(WCHAR))))
|
||||||
if (!(envproxyW = heap_alloc(len * sizeof(WCHAR))))
|
|
||||||
{
|
{
|
||||||
RegCloseKey( key );
|
RegCloseKey( key );
|
||||||
return ERROR_OUTOFMEMORY;
|
return ERROR_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, envproxyW, len );
|
lstrcpyW( envproxyW, envproxy );
|
||||||
|
|
||||||
heap_free( lpwpi->proxyBypass );
|
heap_free( lpwpi->proxyBypass );
|
||||||
lpwpi->proxyBypass = envproxyW;
|
lpwpi->proxyBypass = envproxyW;
|
||||||
|
|
Loading…
Reference in New Issue