diff --git a/ipc/ipcserver.cpp b/ipc/ipcserver.cpp index f8a137ce5..eb32f0e1c 100644 --- a/ipc/ipcserver.cpp +++ b/ipc/ipcserver.cpp @@ -361,6 +361,9 @@ bool IpcServer::restoreResolvers() qDebug() << "IpcServer::restoreResolvers"; #endif + if (m_xrayWorkers.size() > 1) { + return true; + } return Router::restoreResolvers(); } @@ -640,6 +643,9 @@ bool IpcServer::xrayRemoveUplinkRoutes(const QString& uplinkIface, const QString if (uplinkIface.isEmpty()) { return false; } + if (m_xrayWorkers.size() > 1) { + return true; + } return RouterMac::Instance().routeDeleteXray(uplinkIface, uplinkGateway); #else Q_UNUSED(uplinkIface) diff --git a/service/server/router_mac.cpp b/service/server/router_mac.cpp index f41e9a724..0297610c6 100644 --- a/service/server/router_mac.cpp +++ b/service/server/router_mac.cpp @@ -26,6 +26,8 @@ bool RouterMac::routeAdd(const QString &ipWithSubnet, const QString &gw) return false; } + routeDelete(ipWithSubnet, gw); + QString cmd; if (mask == "255.255.255.255") { cmd = QString("route add -host %1 %2").arg(ip).arg(gw);