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:
Vadim Zeitlin
2021-01-09 21:50:26 +01:00
parent 24c7baa07e
commit 780ce796b4

View File

@@ -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;