feat: split daemon activation into bare bring-up and setPrimary

This commit is contained in:
cd-amn
2026-05-18 16:44:42 +00:00
parent 82a18bd48b
commit b47f9e8c85
21 changed files with 295 additions and 427 deletions
@@ -35,14 +35,8 @@ WindowsDaemon::WindowsDaemon() : Daemon(nullptr) {
m_firewallManager = WindowsFirewall::create(this);
Q_ASSERT(m_firewallManager != nullptr);
m_wgutils = WireguardUtilsWindows::create(m_firewallManager, this);
m_dnsutils = new DnsUtilsWindows(this);
m_splitTunnelManager = WindowsSplitTunnel::create(m_firewallManager);
connect(m_wgutils.get(), &WireguardUtilsWindows::backendFailure, this,
&WindowsDaemon::monitorBackendFailure);
connect(this, &WindowsDaemon::activationFailure,
[this]() { m_firewallManager->disableKillSwitch(); });
}
WindowsDaemon::~WindowsDaemon() {
@@ -120,7 +114,3 @@ WireguardUtils* WindowsDaemon::createWgUtils() {
&WindowsDaemon::monitorBackendFailure);
return utils.release();
}
void WindowsDaemon::replaceActiveWgUtils(WireguardUtils* newUtils) {
m_wgutils.reset(static_cast<WireguardUtilsWindows*>(newUtils));
}
@@ -28,10 +28,8 @@ class WindowsDaemon final : public Daemon {
protected:
bool run(Op op, const InterfaceConfig& config) override;
WireguardUtils* wgutils() const override { return m_wgutils.get(); }
DnsUtils* dnsutils() override { return m_dnsutils; }
WireguardUtils* createWgUtils() override;
void replaceActiveWgUtils(WireguardUtils* newUtils) override;
private:
void monitorBackendFailure();
@@ -44,7 +42,6 @@ class WindowsDaemon final : public Daemon {
int m_inetAdapterIndex = -1;
std::unique_ptr<WireguardUtilsWindows> m_wgutils;
DnsUtilsWindows* m_dnsutils = nullptr;
std::unique_ptr<WindowsSplitTunnel> m_splitTunnelManager;
QPointer<WindowsFirewall> m_firewallManager;