diff options
author | Simon Rettberg | 2024-02-07 18:25:48 +0100 |
---|---|---|
committer | Simon Rettberg | 2024-02-07 18:25:48 +0100 |
commit | bcd99e02640cc35bb9a3f9ec9ad919b51b1c3482 (patch) | |
tree | 8ef7123813bd14be302831dff42f160692fb75fc /src/nam.h | |
parent | Check server's security hash, check username and password format (diff) | |
download | slxgreeter-bcd99e02640cc35bb9a3f9ec9ad919b51b1c3482.tar.gz slxgreeter-bcd99e02640cc35bb9a3f9ec9ad919b51b1c3482.tar.xz slxgreeter-bcd99e02640cc35bb9a3f9ec9ad919b51b1c3482.zip |
Add black/whitelist feature to browser-based login
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 |