Custom sites reimplemented

This commit is contained in:
pokamest 2021-05-27 22:18:36 +03:00
parent 97e918ae72
commit 6c74f30d79
23 changed files with 833 additions and 312 deletions

View file

@ -7,12 +7,12 @@
#endif
bool Router::routeAdd(const QString &ip, const QString &gw, QString mask)
bool Router::routeAdd(const QString &ip, const QString &gw)
{
#ifdef Q_OS_WIN
return RouterWin::Instance().routeAdd(ip, gw, mask);
return RouterWin::Instance().routeAdd(ip, gw);
#elif defined (Q_OS_MAC)
return RouterMac::Instance().routeAdd(ip, gw, mask);
return RouterMac::Instance().routeAdd(ip, gw);
#endif
}

View file

@ -15,7 +15,7 @@ class Router : public QObject
{
Q_OBJECT
public:
static bool routeAdd(const QString &ip, const QString &gw, QString mask = QString());
static bool routeAdd(const QString &ip, const QString &gw);
static int routeAddList(const QString &gw, const QStringList &ips);
static bool clearSavedRoutes();
static bool routeDelete(const QString &ip, const QString &gw);

View file

@ -9,7 +9,7 @@ RouterMac &RouterMac::Instance()
return s;
}
bool RouterMac::routeAdd(const QString &ip, const QString &gw, QString mask)
bool RouterMac::routeAdd(const QString &ip, const QString &gw)
{
int argc = 5;
char **argv = new char*[argc];

View file

@ -18,7 +18,7 @@ class RouterMac : public QObject
public:
static RouterMac& Instance();
bool routeAdd(const QString &ip, const QString &gw, QString mask = QString());
bool routeAdd(const QString &ip, const QString &gw);
int routeAddList(const QString &gw, const QStringList &ips);
bool clearSavedRoutes();
bool routeDelete(const QString &ip, const QString &gw);

View file

@ -1,4 +1,5 @@
#include "router_win.h"
#include "../client/utils.h"
#include <QProcess>
@ -8,20 +9,11 @@ RouterWin &RouterWin::Instance()
return s;
}
bool RouterWin::routeAdd(const QString &ip, const QString &gw, QString mask)
bool RouterWin::routeAdd(const QString &ip, const QString &gw)
{
qDebug().noquote() << QString("ROUTE ADD: IP:%1 %2 GW %3")
.arg(ip)
.arg(mask)
.arg(gw);
if (mask == "") {
mask = "255.255.255.255";
if (ip.endsWith(".0")) mask = "255.255.255.0";
if (ip.endsWith(".0.0")) mask = "255.255.0.0";
if (ip.endsWith(".0.0.0")) mask = "255.0.0.0";
}
//qDebug().noquote() << QString("ROUTE ADD: IP:%1 GW %2").arg(ip).arg(gw);
QString mask = Utils::netMaskFromIpWithSubnet(ip);
PMIB_IPFORWARDTABLE pIpForwardTable = NULL;
MIB_IPFORWARDROW ipfrow;
@ -58,7 +50,7 @@ bool RouterWin::routeAdd(const QString &ip, const QString &gw, QString mask)
}
// address
ipfrow.dwForwardDest = inet_addr(ip.toStdString().c_str());
ipfrow.dwForwardDest = inet_addr(Utils::ipAddressFromIpWithSubnet(ip).toStdString().c_str());
// mask
in_addr maskAddr;
@ -109,12 +101,12 @@ bool RouterWin::routeAdd(const QString &ip, const QString &gw, QString mask)
int RouterWin::routeAddList(const QString &gw, const QStringList &ips)
{
qDebug().noquote() << QString("ROUTE ADD List: IPs size:%1, GW: %2")
.arg(ips.size())
.arg(gw);
// qDebug().noquote() << QString("ROUTE ADD List: IPs size:%1, GW: %2")
// .arg(ips.size())
// .arg(gw);
qDebug().noquote() << QString("ROUTE ADD List: IPs:\n%1")
.arg(ips.join("\n"));
// qDebug().noquote() << QString("ROUTE ADD List: IPs:\n%1")
// .arg(ips.join("\n"));
@ -188,15 +180,10 @@ int RouterWin::routeAddList(const QString &gw, const QStringList &ips)
for (int i = 0; i < ips.size(); ++i) {
QString ip = ips.at(i);
if (ip.isEmpty()) continue;
mask = "255.255.255.255";
if (ip.endsWith(".0")) mask = "255.255.255.0";
if (ip.endsWith(".0.0")) mask = "255.255.0.0";
if (ip.endsWith(".0.0.0")) mask = "255.0.0.0";
QString mask = Utils::netMaskFromIpWithSubnet(ip);
// address
ipfrow.dwForwardDest = inet_addr(ip.toStdString().c_str());
ipfrow.dwForwardDest = inet_addr(Utils::ipAddressFromIpWithSubnet(ip).toStdString().c_str());
// mask
in_addr maskAddr;
@ -280,7 +267,7 @@ bool RouterWin::routeDelete(const QString &ip, const QString &gw)
QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
QString command = QString("route delete %1 %2").arg(ip).arg(gw);
QString command = QString("route delete %1 %2").arg(Utils::ipAddressFromIpWithSubnet(ip)).arg(gw);
p.start(command);
p.waitForFinished();

View file

@ -38,7 +38,7 @@ class RouterWin : public QObject
public:
static RouterWin& Instance();
bool routeAdd(const QString &ip, const QString &gw, QString mask = QString());
bool routeAdd(const QString &ip, const QString &gw);
int routeAddList(const QString &gw, const QStringList &ips);
bool clearSavedRoutes();
bool routeDelete(const QString &ip, const QString &gw);