summaryrefslogtreecommitdiffstats
path: root/src/nam.h
diff options
context:
space:
mode:
authorSimon Rettberg2019-03-15 15:22:34 +0100
committerSimon Rettberg2019-03-15 15:22:34 +0100
commit352685c36bd7df32c690519135fee3fc5ffb9334 (patch)
tree5601e75ccf1f2f4b1ac8e810976a6e22883f7430 /src/nam.h
parentDon't reload (--reload-interval) if browser is being used (diff)
downloadslxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.tar.gz
slxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.tar.xz
slxbrowser-352685c36bd7df32c690519135fee3fc5ffb9334.zip
Maybe add new files?v23
Diffstat (limited to 'src/nam.h')
-rw-r--r--src/nam.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/nam.h b/src/nam.h
new file mode 100644
index 0000000..0036904
--- /dev/null
+++ b/src/nam.h
@@ -0,0 +1,39 @@
+#ifndef NAM_H_
+#define NAM_H_
+
+#include <QNetworkAccessManager>
+#include <QRegularExpression>
+#include <QNetworkReply>
+
+/**
+ * Block certain requests based on URL
+ */
+class SlxNetworkAccessManager : public QNetworkAccessManager
+{
+Q_OBJECT
+public:
+ SlxNetworkAccessManager(QRegularExpression list, bool isWhitelist, QObject *parent = nullptr)
+ : QNetworkAccessManager(parent), _list(list), _isWhitelist(isWhitelist) {}
+protected:
+ QNetworkReply* createRequest(QNetworkAccessManager::Operation op,
+ const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr) override;
+private:
+ QRegularExpression _list;
+ bool _isWhitelist;
+};
+
+
+class SlxDisabledNetworkReply : public QNetworkReply
+{
+ Q_OBJECT
+public:
+ SlxDisabledNetworkReply(QObject *parent, const QNetworkRequest &req,
+ QNetworkAccessManager::Operation op);
+
+ ~SlxDisabledNetworkReply() {}
+ void abort() override { }
+protected:
+ qint64 readData(char *, qint64) override { return -1; }
+};
+
+#endif