From cbba65f9cec2f9316a50156965b3f4035d5dd9a6 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 2 May 2024 10:24:45 -0700 Subject: [PATCH] QNetworkProxy/libproxy: don't overwrite the user-provided protocol tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, we always query for "tcp://somehost" even when the user provided a tag like "https", which has a reasonable chance of being resolved. Change-Id: I262c3499666e4f4fbcfbfffd17cbbbe74346b167 Reviewed-by: MÃ¥rten Nordheim --- src/network/kernel/qnetworkproxy_libproxy.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qnetworkproxy_libproxy.cpp b/src/network/kernel/qnetworkproxy_libproxy.cpp index 248a8d2456..da1e8fdbd4 100644 --- a/src/network/kernel/qnetworkproxy_libproxy.cpp +++ b/src/network/kernel/qnetworkproxy_libproxy.cpp @@ -166,13 +166,15 @@ QList QNetworkProxyFactory::systemProxyForQuery(const QNetworkPro break; // fake URLs to get libproxy to tell us the SOCKS proxy case QNetworkProxyQuery::TcpSocket: - queryUrl.setScheme(QStringLiteral("tcp")); + if (queryUrl.scheme().isEmpty()) + queryUrl.setScheme(QStringLiteral("tcp")); queryUrl.setHost(query.peerHostName()); queryUrl.setPort(query.peerPort()); requiredCapabilities |= QNetworkProxy::TunnelingCapability; break; case QNetworkProxyQuery::UdpSocket: - queryUrl.setScheme(QStringLiteral("udp")); + if (queryUrl.scheme().isEmpty()) + queryUrl.setScheme(QStringLiteral("udp")); queryUrl.setHost(query.peerHostName()); queryUrl.setPort(query.peerPort()); requiredCapabilities |= QNetworkProxy::UdpTunnelingCapability;