Add wxWinHTTPSetOption() helper
This allows to avoid using temporary variables just to be able to pass a pointer to them to WinHttpSetOption(). No real changes, just a simplification.
This commit is contained in:
@@ -95,6 +95,12 @@ static wxString wxWinHTTPQueryOptionString(HINTERNET hInternet, DWORD dwOption)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void wxWinHTTPSetOption(HINTERNET hInternet, DWORD dwOption, DWORD dwValue)
|
||||||
|
{
|
||||||
|
::WinHttpSetOption(hInternet, dwOption, &dwValue, sizeof(dwValue));
|
||||||
|
}
|
||||||
|
|
||||||
static void CALLBACK wxRequestStatusCallback(
|
static void CALLBACK wxRequestStatusCallback(
|
||||||
HINTERNET WXUNUSED(hInternet),
|
HINTERNET WXUNUSED(hInternet),
|
||||||
DWORD_PTR dwContext,
|
DWORD_PTR dwContext,
|
||||||
@@ -484,24 +490,21 @@ bool wxWebSessionWinHTTP::Open()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Try to enable HTTP/2 (available since Win 10 1607)
|
// Try to enable HTTP/2 (available since Win 10 1607)
|
||||||
DWORD protFlags = WINHTTP_PROTOCOL_FLAG_HTTP2;
|
wxWinHTTPSetOption(m_handle, WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL,
|
||||||
::WinHttpSetOption(m_handle, WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL,
|
WINHTTP_PROTOCOL_FLAG_HTTP2);
|
||||||
&protFlags, sizeof(protFlags));
|
|
||||||
|
|
||||||
// Try to enable GZIP and DEFLATE (available since Win 8.1)
|
// Try to enable GZIP and DEFLATE (available since Win 8.1)
|
||||||
DWORD decompressFlags = WINHTTP_DECOMPRESSION_FLAG_ALL;
|
wxWinHTTPSetOption(m_handle, WINHTTP_OPTION_DECOMPRESSION,
|
||||||
::WinHttpSetOption(m_handle, WINHTTP_OPTION_DECOMPRESSION,
|
WINHTTP_DECOMPRESSION_FLAG_ALL);
|
||||||
&decompressFlags, sizeof(decompressFlags));
|
|
||||||
|
|
||||||
// Try to enable modern TLS for older Windows versions
|
// Try to enable modern TLS for older Windows versions
|
||||||
if ( !wxCheckOsVersion(6, 3) )
|
if ( !wxCheckOsVersion(6, 3) )
|
||||||
{
|
{
|
||||||
DWORD securityFlags = WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 |
|
wxWinHTTPSetOption(m_handle, WINHTTP_OPTION_SECURE_PROTOCOLS,
|
||||||
|
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 |
|
||||||
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 |
|
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 |
|
||||||
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 |
|
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 |
|
||||||
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2;
|
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2);
|
||||||
::WinHttpSetOption(m_handle, WINHTTP_OPTION_SECURE_PROTOCOLS,
|
|
||||||
&securityFlags, sizeof(securityFlags));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user