From af0d561c5c4def2067b95e569301d0fbdf3bcb30 Mon Sep 17 00:00:00 2001 From: NickVs2015 Date: Tue, 31 Mar 2026 23:01:37 +0300 Subject: [PATCH] fix: add dns load/unload --- client/platforms/linux/daemon/dnsutilslinux.cpp | 11 +++-------- client/platforms/linux/daemon/dnsutilslinux.h | 1 - 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/client/platforms/linux/daemon/dnsutilslinux.cpp b/client/platforms/linux/daemon/dnsutilslinux.cpp index 3333fb023..ce4e34fe9 100644 --- a/client/platforms/linux/daemon/dnsutilslinux.cpp +++ b/client/platforms/linux/daemon/dnsutilslinux.cpp @@ -59,9 +59,9 @@ bool DnsUtilsLinux::updateResolvers(const QString& ifname, return false; } - m_resolvers = resolvers; setLinkDNS(m_ifindex, resolvers); setLinkDefaultRoute(m_ifindex, true); + setLinkDomains(m_ifindex, {DnsLinkDomain(".", true)}); updateLinkDomains(); return true; } @@ -175,18 +175,13 @@ void DnsUtilsLinux::updateLinkDomains() { } void DnsUtilsLinux::dnsDomainsReceived(QDBusPendingCallWatcher* call) { - QDBusPendingReply reply = *call; - delete call; + QDBusPendingReply reply = *call; + call->deleteLater(); if (reply.isError()) { // systemd-resolved may still be starting up after a restart — retry a few times if (m_domainRetries++ < 5) { logger.debug() << "systemd-resolved not ready yet, retrying DNS setup (" << m_domainRetries << "/5)"; - // Re-apply DNS servers and default route in case systemd-resolved lost them on restart - if (m_ifindex > 0 && !m_resolvers.isEmpty()) { - setLinkDNS(m_ifindex, m_resolvers); - setLinkDefaultRoute(m_ifindex, true); - } QTimer::singleShot(500, this, &DnsUtilsLinux::updateLinkDomains); } else { logger.warning() << "Failed to configure DNS after 5 retries"; diff --git a/client/platforms/linux/daemon/dnsutilslinux.h b/client/platforms/linux/daemon/dnsutilslinux.h index d88c7852c..317b74c93 100644 --- a/client/platforms/linux/daemon/dnsutilslinux.h +++ b/client/platforms/linux/daemon/dnsutilslinux.h @@ -35,7 +35,6 @@ class DnsUtilsLinux final : public DnsUtils { private: int m_ifindex = 0; int m_domainRetries = 0; - QList m_resolvers; QMap m_linkDomains; QDBusInterface* m_resolver = nullptr; };