QNetworkProxy/libproxy: don't overwrite the user-provided protocol tag

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 <marten.nordheim@qt.io>
bb10
Thiago Macieira 2024-05-02 10:24:45 -07:00
parent d44d19dd98
commit cbba65f9ce
1 changed files with 4 additions and 2 deletions

View File

@ -166,13 +166,15 @@ QList<QNetworkProxy> 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;