From f0ed8c337e97df0c82858ac6612223e5090fc5b5 Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Sun, 20 Dec 2020 02:59:32 +0100 Subject: [PATCH] UI/updater: Enable HTTP2 and TLS 1.3 Unfortunately WinHTTP doesn't support multiplexing with HTTP2, but there is still some minor benefit to enabling it. Windows 10 21H1 will enable TLS 1.3 client support in Schannel, so let's get ready for it. --- UI/win-update/updater/updater.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/UI/win-update/updater/updater.cpp b/UI/win-update/updater/updater.cpp index ced9b8e76..815fde033 100644 --- a/UI/win-update/updater/updater.cpp +++ b/UI/win-update/updater/updater.cpp @@ -339,7 +339,10 @@ static inline void CleanupPartialUpdates() bool DownloadWorkerThread() { - const DWORD tlsProtocols = WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2; + const DWORD tlsProtocols = WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 | + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3; + + const DWORD enableHTTP2Flag = WINHTTP_PROTOCOL_FLAG_HTTP2; HttpHandle hSession = WinHttpOpen(L"OBS Studio Updater/2.1", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, @@ -354,6 +357,9 @@ bool DownloadWorkerThread() WinHttpSetOption(hSession, WINHTTP_OPTION_SECURE_PROTOCOLS, (LPVOID)&tlsProtocols, sizeof(tlsProtocols)); + WinHttpSetOption(hSession, WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL, + (LPVOID)&enableHTTP2Flag, sizeof(enableHTTP2Flag)); + HttpHandle hConnect = WinHttpConnect(hSession, L"cdn-fastly.obsproject.com", INTERNET_DEFAULT_HTTPS_PORT, 0); -- GitLab