mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-23 02:00:20 +07:00
Custom sites reimplemented
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user