mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 21:17:07 +00:00
[WININET] Sync with Wine 3.0. CORE-14225
This commit is contained in:
parent
eec2e288be
commit
c95e9203e6
6 changed files with 123 additions and 171 deletions
|
@ -1625,7 +1625,7 @@ BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwF
|
|||
|
||||
if (dwFlags & ICU_DECODE)
|
||||
{
|
||||
WCHAR *url_tmp, *buffer;
|
||||
WCHAR *url_tmp;
|
||||
DWORD len = dwUrlLength + 1;
|
||||
BOOL ret;
|
||||
|
||||
|
@ -1634,24 +1634,9 @@ BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwF
|
|||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
buffer = url_tmp;
|
||||
ret = InternetCanonicalizeUrlW(url_tmp, buffer, &len, ICU_DECODE | ICU_NO_ENCODE);
|
||||
if (!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER)
|
||||
{
|
||||
buffer = heap_alloc(len * sizeof(WCHAR));
|
||||
if (!buffer)
|
||||
{
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
heap_free(url_tmp);
|
||||
return FALSE;
|
||||
}
|
||||
ret = InternetCanonicalizeUrlW(url_tmp, buffer, &len, ICU_DECODE | ICU_NO_ENCODE);
|
||||
}
|
||||
ret = InternetCanonicalizeUrlW(url_tmp, url_tmp, &len, ICU_DECODE | ICU_NO_ENCODE);
|
||||
if (ret)
|
||||
ret = InternetCrackUrlW(buffer, len, dwFlags & ~ICU_DECODE, lpUC);
|
||||
|
||||
if (buffer != url_tmp) heap_free(buffer);
|
||||
ret = InternetCrackUrlW(url_tmp, len, dwFlags & ~ICU_DECODE, lpUC);
|
||||
heap_free(url_tmp);
|
||||
return ret;
|
||||
}
|
||||
|
@ -2286,8 +2271,7 @@ static WCHAR *get_proxy_autoconfig_url(void)
|
|||
CFRelease( settings );
|
||||
return ret;
|
||||
#else
|
||||
static int once;
|
||||
if (!once++) FIXME( "no support on this platform\n" );
|
||||
FIXME( "no support on this platform\n" );
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
@ -2837,21 +2821,10 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption,
|
|||
FIXME("Option INTERNET_OPTION_DISABLE_AUTODIAL; STUB\n");
|
||||
break;
|
||||
case INTERNET_OPTION_HTTP_DECODING:
|
||||
{
|
||||
if (!lpwhh)
|
||||
{
|
||||
SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE);
|
||||
return FALSE;
|
||||
}
|
||||
if (!lpBuffer || dwBufferLength != sizeof(BOOL))
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
ret = FALSE;
|
||||
}
|
||||
else
|
||||
lpwhh->decoding = *(BOOL *)lpBuffer;
|
||||
FIXME("INTERNET_OPTION_HTTP_DECODING; STUB\n");
|
||||
SetLastError(ERROR_INTERNET_INVALID_OPTION);
|
||||
ret = FALSE;
|
||||
break;
|
||||
}
|
||||
case INTERNET_OPTION_COOKIES_3RD_PARTY:
|
||||
FIXME("INTERNET_OPTION_COOKIES_3RD_PARTY; STUB\n");
|
||||
SetLastError(ERROR_INTERNET_INVALID_OPTION);
|
||||
|
@ -2938,12 +2911,6 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption,
|
|||
ret = (res == ERROR_SUCCESS);
|
||||
break;
|
||||
}
|
||||
case INTERNET_OPTION_SETTINGS_CHANGED:
|
||||
FIXME("INTERNET_OPTION_SETTINGS_CHANGED; STUB\n");
|
||||
break;
|
||||
case INTERNET_OPTION_REFRESH:
|
||||
FIXME("INTERNET_OPTION_REFRESH; STUB\n");
|
||||
break;
|
||||
default:
|
||||
FIXME("Option %d STUB\n",dwOption);
|
||||
SetLastError(ERROR_INTERNET_INVALID_OPTION);
|
||||
|
@ -4469,6 +4436,11 @@ BOOL WINAPI InternetGetSecurityInfoByURLW(LPCWSTR lpszURL, PCCERT_CHAIN_CONTEXT
|
|||
|
||||
TRACE("(%s %p %p)\n", debugstr_w(lpszURL), ppCertChain, pdwSecureFlags);
|
||||
|
||||
if (!ppCertChain && !pdwSecureFlags) {
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
url.dwHostNameLength = 1;
|
||||
res = InternetCrackUrlW(lpszURL, 0, 0, &url);
|
||||
if(!res || url.nScheme != INTERNET_SCHEME_HTTPS) {
|
||||
|
@ -4483,15 +4455,11 @@ BOOL WINAPI InternetGetSecurityInfoByURLW(LPCWSTR lpszURL, PCCERT_CHAIN_CONTEXT
|
|||
}
|
||||
|
||||
if(server->cert_chain) {
|
||||
const CERT_CHAIN_CONTEXT *chain_dup;
|
||||
|
||||
chain_dup = CertDuplicateCertificateChain(server->cert_chain);
|
||||
if(chain_dup) {
|
||||
*ppCertChain = chain_dup;
|
||||
if(pdwSecureFlags)
|
||||
*pdwSecureFlags = server->security_flags & _SECURITY_ERROR_FLAGS_MASK;
|
||||
}else {
|
||||
|
||||
if(ppCertChain && !(*ppCertChain = CertDuplicateCertificateChain(server->cert_chain)))
|
||||
res = FALSE;
|
||||
}
|
||||
}else {
|
||||
SetLastError(ERROR_INTERNET_ITEM_NOT_FOUND);
|
||||
res = FALSE;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue