From f90f31756a719e02122f6cd8ee112a13da768dfd Mon Sep 17 00:00:00 2001 From: Michael Schuster Date: Mon, 2 Mar 2020 01:47:00 +0100 Subject: [PATCH] Fix build with older Qt: Disable http2 for now due to Qt bug, add env var (upstream) Disable http2 for now due to Qt bug but allow enabling it via env var, see: https://github.com/owncloud/client/pull/7620 and: https://github.com/nextcloud/desktop/pull/1806 Issue: https://github.com/nextcloud/desktop/issues/1503 Co-authored-by: XNG Co-authored-by: Hannah von Reth Signed-off-by: Michael Schuster --- src/libsync/accessmanager.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/libsync/accessmanager.cpp b/src/libsync/accessmanager.cpp index 6564ae0c8..8cba1a71d 100644 --- a/src/libsync/accessmanager.cpp +++ b/src/libsync/accessmanager.cpp @@ -93,12 +93,19 @@ QNetworkReply *AccessManager::createRequest(QNetworkAccessManager::Operation op, qInfo(lcAccessManager) << op << verb << newRequest.url().toString() << "has X-Request-ID" << requestId; newRequest.setRawHeader("X-Request-ID", requestId); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 4) + // only enable HTTP2 with Qt 5.9.4 because old Qt have too many bugs (e.g. QTBUG-64359 is fixed in >= Qt 5.9.4) - // Disable http2 for now due to Qt bug + /* Disable http2 for now due to Qt bug but allow enabling it via env var, see: https://github.com/owncloud/client/pull/7620 + * and: https://github.com/nextcloud/desktop/pull/1806 + * Issue: https://github.com/nextcloud/desktop/issues/1503 + */ if (newRequest.url().scheme() == "https") { // Not for "http": QTBUG-61397 - newRequest.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, false); - } + static const bool http2EnabledEnv = qEnvironmentVariableIntValue("OWNCLOUD_HTTP2_ENABLED") == 1; + newRequest.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, http2EnabledEnv); + } +#endif return QNetworkAccessManager::createRequest(op, newRequest, outgoingData); } -- 2.30.2