refactor: move routing/KS/DNS lifecycle from Daemon to TrafficGuard

This commit is contained in:
cd-amn
2026-05-19 12:25:22 +00:00
parent cfd435ebe4
commit fbd86181cd
20 changed files with 319 additions and 227 deletions
@@ -17,7 +17,6 @@
#include "leakdetector.h"
#include "logger.h"
#include "killswitch.h"
namespace {
Logger logger("LinuxDaemon");
@@ -51,8 +50,3 @@ LinuxDaemon* LinuxDaemon::instance() {
return s_daemon;
}
bool LinuxDaemon::deactivate(bool emitSignals) {
bool result = Daemon::deactivate(emitSignals);
KillSwitch::instance()->disableKillSwitch();
return result;
}
@@ -18,8 +18,6 @@ class LinuxDaemon final : public Daemon {
static LinuxDaemon* instance();
bool deactivate(bool emitSignals = true) override;
protected:
DnsUtils* dnsutils() override { return m_dnsutils; }
bool supportIPUtils() const override { return true; }
@@ -208,15 +208,6 @@ bool WireguardUtilsLinux::updatePeer(const InterfaceConfig& config) {
out << "allowed_ip=" << ip.toString() << "\n";
}
// Exclude the server address, except for multihop exit servers.
if ((config.m_hopType != InterfaceConfig::MultiHopExit) &&
(m_rtmonitor != nullptr)) {
if (!config.m_serverIpv4AddrIn.isEmpty())
m_rtmonitor->addExclusionRoute(IPAddress(config.m_serverIpv4AddrIn));
if (!config.m_serverIpv6AddrIn.isEmpty())
m_rtmonitor->addExclusionRoute(IPAddress(config.m_serverIpv6AddrIn));
}
int err = uapiErrno(uapiCommand(message));
if (err != 0) {
logger.error() << "Peer configuration failed:" << strerror(err);
@@ -228,15 +219,6 @@ bool WireguardUtilsLinux::deletePeer(const InterfaceConfig& config) {
QByteArray publicKey =
QByteArray::fromBase64(qPrintable(config.m_serverPublicKey));
// Clear exclustion routes for this peer.
if ((config.m_hopType != InterfaceConfig::MultiHopExit) &&
(m_rtmonitor != nullptr)) {
if (!config.m_serverIpv4AddrIn.isEmpty())
m_rtmonitor->deleteExclusionRoute(IPAddress(config.m_serverIpv4AddrIn));
if (!config.m_serverIpv6AddrIn.isEmpty())
m_rtmonitor->deleteExclusionRoute(IPAddress(config.m_serverIpv6AddrIn));
}
QString message;
QTextStream out(&message);
out << "set=1\n";