fix: restore dns after using xray (#1902)

This commit is contained in:
Yaroslav Gurov
2025-10-02 14:58:53 +02:00
committed by GitHub
parent 30c8cc4548
commit 3ea47d31a9
12 changed files with 32 additions and 0 deletions
+11
View File
@@ -99,6 +99,17 @@ bool Router::updateResolvers(const QString& ifname, const QList<QHostAddress>& r
#endif
}
bool Router::restoreResolvers() {
#ifdef Q_OS_LINUX
return RouterLinux::Instance().restoreResolvers();
#endif
#ifdef Q_OS_MACOS
return RouterMac::Instance().restoreResolvers();
#endif
#ifdef Q_OS_WIN
return RouterWin::Instance().restoreResolvers();
#endif
}
void Router::StopRoutingIpv6()
{
+1
View File
@@ -26,6 +26,7 @@ public:
static void StartRoutingIpv6();
static void StopRoutingIpv6();
static bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers);
static bool restoreResolvers();
};
#endif // ROUTER_H
+4
View File
@@ -279,6 +279,10 @@ bool RouterLinux::updateResolvers(const QString& ifname, const QList<QHostAddres
return m_dnsUtil->updateResolvers(ifname, resolvers);
}
bool RouterLinux::restoreResolvers() {
return m_dnsUtil->restoreResolvers();
}
void RouterLinux::StartRoutingIpv6()
{
QProcess process;
+1
View File
@@ -36,6 +36,7 @@ public:
void StartRoutingIpv6();
void StopRoutingIpv6();
bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers);
bool restoreResolvers();
public slots:
private:
+3
View File
@@ -158,6 +158,9 @@ bool RouterMac::updateResolvers(const QString& ifname, const QList<QHostAddress>
return m_dnsUtil->updateResolvers(ifname, resolvers);
}
bool RouterMac::restoreResolvers() {
return m_dnsUtil->restoreResolvers();
}
bool RouterMac::deleteTun(const QString &dev)
{
+1
View File
@@ -33,6 +33,7 @@ public:
bool createTun(const QString &dev, const QString &subnet);
bool deleteTun(const QString &dev);
bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers);
bool restoreResolvers();
public slots:
+3
View File
@@ -443,6 +443,9 @@ bool RouterWin::updateResolvers(const QString& ifname, const QList<QHostAddress>
return m_dnsUtil->updateResolvers(ifname, resolvers);
}
bool RouterWin::restoreResolvers() {
return m_dnsUtil->restoreResolvers();
}
void RouterWin::StopRoutingIpv6()
{
+1
View File
@@ -47,6 +47,7 @@ public:
void suspendWcmSvc(bool suspend);
bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers);
bool restoreResolvers();
private:
RouterWin(RouterWin const &) = delete;