diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp index c2914117dbaf2d8074e5d57630efd0280876af9d..9c223dd32f89e1a31d25c2240df8f23eccedb36e 100644 --- a/src/network/access/qnetworkaccessbackend.cpp +++ b/src/network/access/qnetworkaccessbackend.cpp @@ -385,15 +385,11 @@ bool QNetworkAccessBackend::start() // Session not ready, but can skip for loopback connections // This is not ideal. - const QString host = reply->url.host(); - - if (host == QLatin1String("localhost") || - QHostAddress(host).isLoopback() || - reply->url.isLocalFile()) { - // Don't need an open session for localhost access. - } else { - // need to wait for session to be opened - return false; + // Don't need an open session for localhost access. + if (!reply->url.isLocalFile()) { + const QString host = reply->url.host(); + if (host != QLatin1String("localhost") && !QHostAddress(host).isLoopback()) + return false; // need to wait for session to be opened } } } diff --git a/src/network/access/qnetworkcookiejar.cpp b/src/network/access/qnetworkcookiejar.cpp index 1ae49aeee9797a00e767a6450566fcf198057dec..412b8d859d06e1d66f55f184eb972b07f1f03c50 100644 --- a/src/network/access/qnetworkcookiejar.cpp +++ b/src/network/access/qnetworkcookiejar.cpp @@ -331,7 +331,8 @@ bool QNetworkCookieJar::deleteCookie(const QNetworkCookie &cookie) bool QNetworkCookieJar::validateCookie(const QNetworkCookie &cookie, const QUrl &url) const { QString domain = cookie.domain(); - if (!(isParentDomain(domain, url.host()) || isParentDomain(url.host(), domain))) + const QString host = url.host(); + if (!isParentDomain(domain, host) && !isParentDomain(host, domain)) return false; // not accepted // the check for effective TLDs makes the "embedded dot" rule from RFC 2109 section 4.3.2 diff --git a/src/network/access/qnetworkreplyfileimpl.cpp b/src/network/access/qnetworkreplyfileimpl.cpp index bd896596892b0329e8504ca4bdc08ea0c7d0ae7a..36bc4b41df9624cdd140cbf64af5930b9512fdfd 100644 --- a/src/network/access/qnetworkreplyfileimpl.cpp +++ b/src/network/access/qnetworkreplyfileimpl.cpp @@ -88,11 +88,12 @@ QNetworkReplyFileImpl::QNetworkReplyFileImpl(QObject *parent, const QNetworkRequ QString fileName = url.toLocalFile(); if (fileName.isEmpty()) { - if (url.scheme() == QLatin1String("qrc")) { + const QString scheme = url.scheme(); + if (scheme == QLatin1String("qrc")) { fileName = QLatin1Char(':') + url.path(); } else { #if defined(Q_OS_ANDROID) - if (url.scheme() == QLatin1String("assets")) + if (scheme == QLatin1String("assets")) fileName = QLatin1String("assets:") + url.path(); else #endif diff --git a/src/network/kernel/qnetworkproxy_generic.cpp b/src/network/kernel/qnetworkproxy_generic.cpp index 272d6dfe8d1974aac877fa0719501dd7f27b372e..db1083f3e09d5db6e976d250e3df9b6108fd9f96 100644 --- a/src/network/kernel/qnetworkproxy_generic.cpp +++ b/src/network/kernel/qnetworkproxy_generic.cpp @@ -112,16 +112,17 @@ QList<QNetworkProxy> QNetworkProxyFactory::systemProxyForQuery(const QNetworkPro if (!proxy_env.isEmpty()) { QUrl url = QUrl(QString::fromLocal8Bit(proxy_env)); - if (url.scheme() == QLatin1String("socks5")) { + const QString scheme = url.scheme(); + if (scheme == QLatin1String("socks5")) { QNetworkProxy proxy(QNetworkProxy::Socks5Proxy, url.host(), url.port() ? url.port() : 1080, url.userName(), url.password()); proxyList << proxy; - } else if (url.scheme() == QLatin1String("socks5h")) { + } else if (scheme == QLatin1String("socks5h")) { QNetworkProxy proxy(QNetworkProxy::Socks5Proxy, url.host(), url.port() ? url.port() : 1080, url.userName(), url.password()); proxy.setCapabilities(QNetworkProxy::HostNameLookupCapability); proxyList << proxy; - } else if ((url.scheme() == QLatin1String("http") || url.scheme().isEmpty()) + } else if ((scheme.isEmpty() || scheme == QLatin1String("http")) && query.queryType() != QNetworkProxyQuery::UdpSocket && query.queryType() != QNetworkProxyQuery::TcpServer) { QNetworkProxy proxy(QNetworkProxy::HttpProxy, url.host(),