Router class added

This commit is contained in:
pokamest 2020-12-03 23:27:56 +03:00
parent 49f4c4c39a
commit 3e223f0e4b
3 changed files with 366 additions and 0 deletions

58
client/core/router.h Normal file
View file

@ -0,0 +1,58 @@
#ifndef ROUTER_H
#define ROUTER_H
#include <QTimer>
#include <QString>
#include <QSettings>
#include <QHash>
#include <QDebug>
#ifdef Q_OS_WIN
#include <WinSock2.h> //includes Windows.h
#include <WS2tcpip.h>
#include <iphlpapi.h>
#include <IcmpAPI.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
typedef uint8_t u8_t ;
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#endif //Q_OS_WIN
/**
* @brief The Router class - General class for handling ip routing
*/
class Router : public QObject
{
Q_OBJECT
public:
static Router& Instance();
bool routeAdd(const QString &ip, const QString &gw, QString mask = QString());
int routeAddList(const QString &gw, const QStringList &ips);
bool clearSavedRoutes();
bool routeDelete(const QString &ip);
void flushDns();
public slots:
private:
Router() {}
Router(Router const &) = delete;
Router& operator= (Router const&) = delete;
QList<MIB_IPFORWARDROW> ipForwardRows;
};
#endif // ROUTER_H