diff options
author | Simon Rettberg | 2019-03-15 15:22:34 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-03-15 15:22:34 +0100 |
commit | 352685c36bd7df32c690519135fee3fc5ffb9334 (patch) | |
tree | 5601e75ccf1f2f4b1ac8e810976a6e22883f7430 /src/nam.cpp | |
parent | Don't reload (--reload-interval) if browser is being used (diff) | |
download | slxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.tar.gz slxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.tar.xz slxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.zip |
Maybe add new files?v23
Diffstat (limited to 'src/nam.cpp')
-rw-r--r-- | src/nam.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/nam.cpp b/src/nam.cpp new file mode 100644 index 0000000..2f3fdd1 --- /dev/null +++ b/src/nam.cpp @@ -0,0 +1,42 @@ +#include "nam.h" + +#include <QCoreApplication> +#include <QDebug> + +SlxDisabledNetworkReply::SlxDisabledNetworkReply(QObject *parent, const QNetworkRequest &req, + QNetworkAccessManager::Operation op) + : QNetworkReply(parent) +{ + setRequest(req); + setUrl(req.url()); + setOperation(op); + setFinished(true); + qRegisterMetaType<QNetworkReply::NetworkError>(); + 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 { + ok = (_list.match(url.toDisplayString(QUrl::NormalizePathSegments)).hasMatch() == _isWhitelist); + } + if (!ok) { + return new SlxDisabledNetworkReply(this, req, op); + } + return QNetworkAccessManager::createRequest(op, req, outgoingData); +} |