1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/*
SPDX-FileCopyrightText: 2005 Joris Guisson <joris.guisson@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KTIPFILTERPLUGIN_H
#define KTIPFILTERPLUGIN_H
#include "ipblockingprefpage.h"
#include "ipblocklist.h"
#include <QTimer>
#include <interfaces/plugin.h>
class QString;
namespace kt
{
class IPBlockingPrefPage;
const int AUTO_UPDATE_RETRY_INTERVAL = 15 * 60; // seconds
/**
* @author Ivan Vasic <ivasic@gmail.com>
* @brief IP filter plugin
*
* This plugin will load IP ranges from specific files into KT IPBlocklist.
*/
class IPFilterPlugin : public Plugin
{
Q_OBJECT
public:
IPFilterPlugin(QObject *parent, const KPluginMetaData &data, const QVariantList &args);
~IPFilterPlugin() override;
void load() override;
void unload() override;
/// Loads the KT format list filter
void loadFilters();
/// Loads the anti-p2p filter list
bool loadAntiP2P();
/// Unloads the anti-p2p filter list
bool unloadAntiP2P();
/// Whether or not the IP filter is loaded and running
bool loadedAndRunning();
public Q_SLOTS:
void checkAutoUpdate();
void notification(const QString &msg);
private:
IPBlockingPrefPage *pref;
QScopedPointer<IPBlockList> ip_filter;
QTimer auto_update_timer;
};
}
#endif
|