Check for loopback address if network access is unavailable
A loopback address warrants the same exception as local files. Task-number: QTBUG-59219 Change-Id: Ie0a75faa558d6596455da38656c8749c994d0fd8 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
8bebded9ab
commit
eb2b635154
@ -71,6 +71,8 @@
|
||||
|
||||
#include "qthread.h"
|
||||
|
||||
#include <QHostInfo>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
Q_GLOBAL_STATIC(QNetworkAccessFileBackendFactory, fileBackend)
|
||||
@ -1324,10 +1326,16 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
|
||||
}
|
||||
|
||||
#ifndef QT_NO_BEARERMANAGEMENT
|
||||
|
||||
// Return a disabled network reply if network access is disabled.
|
||||
// Except if the scheme is empty or file://.
|
||||
// Except if the scheme is empty or file:// or if the host resolves to a loopback address.
|
||||
if (d->networkAccessible == NotAccessible && !isLocalFile) {
|
||||
return new QDisabledNetworkReply(this, req, op);
|
||||
QHostAddress dest;
|
||||
QString host = req.url().host().toLower();
|
||||
if (!(dest.setAddress(host) && dest.isLoopback()) && host != QLatin1String("localhost")
|
||||
&& host != QHostInfo::localHostName().toLower()) {
|
||||
return new QDisabledNetworkReply(this, req, op);
|
||||
}
|
||||
}
|
||||
|
||||
if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.identifier().isEmpty())) {
|
||||
|
Loading…
Reference in New Issue
Block a user