#include "nam.h" #include #include SlxDisabledNetworkReply::SlxDisabledNetworkReply(QObject *parent, const QNetworkRequest &req, QNetworkAccessManager::Operation op) : QNetworkReply(parent) { setRequest(req); setUrl(req.url()); setOperation(op); setFinished(true); qRegisterMetaType(); QString msg = QCoreApplication::translate("QNetworkAccessManager", "Network access is disabled."); setError(UnknownNetworkError, msg); QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, Q_ARG(QNetworkReply::NetworkError, UnknownNetworkError)); QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); } QNetworkReply* SlxNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &req, QIODevice *outgoingData) { const QUrl url(req.url()); //qDebug() << url; bool ok; if (url.isLocalFile()) { ok = true; } else if (url.scheme() == QLatin1String("qrc") || url.scheme() == QLatin1String("data")) { ok = true; } else if (url.host().isEmpty()) { ok = true; } else { auto str = url.toDisplayString(QUrl::NormalizePathSegments); if (_white.isValid() && _white.match(str).hasMatch()) { ok = true; } else if (_black.isValid() && _black.match(str).hasMatch()) { ok = false; } else { ok = true; } } if (!ok) { return new SlxDisabledNetworkReply(this, req, op); } return QNetworkAccessManager::createRequest(op, req, outgoingData); }