/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef DNSUTILSLINUX_H #define DNSUTILSLINUX_H #include #include #include "daemon/dnsutils.h" #include "dbustypeslinux.h" class DnsUtilsLinux final : public DnsUtils { Q_OBJECT Q_DISABLE_COPY_MOVE(DnsUtilsLinux) public: DnsUtilsLinux(QObject* parent); ~DnsUtilsLinux(); bool updateResolvers(const QString& ifname, const QList& resolvers) override; bool restoreResolvers() override; private: void setLinkDNS(int ifindex, const QList& resolvers); void setLinkDomains(int ifindex, const QList& domains); void setLinkDefaultRoute(int ifindex, bool enable); void updateLinkDomains(); private slots: void dnsCallCompleted(QDBusPendingCallWatcher*); void dnsDomainsReceived(QDBusPendingCallWatcher*); private: int m_ifindex = 0; QMap m_linkDomains; QDBusInterface* m_resolver = nullptr; }; #endif // DNSUTILSLINUX_H