diff options
Diffstat (limited to 'src/nam.h')
-rw-r--r-- | src/nam.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/nam.h b/src/nam.h new file mode 100644 index 0000000..ec2bb17 --- /dev/null +++ b/src/nam.h @@ -0,0 +1,38 @@ +#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 blackList, QRegularExpression whiteList, QObject *parent = nullptr) + : QNetworkAccessManager(parent), _black(blackList), _white(whiteList) {} +protected: + QNetworkReply* createRequest(QNetworkAccessManager::Operation op, + const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr) override; +private: + QRegularExpression _black, _white; +}; + + +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 |