mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#include "dnsController.h"
|
|
|
|
DnsController::DnsController(std::shared_ptr<Settings> settings, QObject *parent)
|
|
: QObject(parent), m_settings(settings)
|
|
{
|
|
}
|
|
|
|
bool DnsController::addDns(const QString &ip)
|
|
{
|
|
QStringList currentDnsServers = m_settings->allowedDnsServers();
|
|
|
|
if (currentDnsServers.contains(ip)) {
|
|
return false;
|
|
}
|
|
|
|
currentDnsServers.append(ip);
|
|
m_settings->setAllowedDnsServers(currentDnsServers);
|
|
|
|
emit dnsAdded(ip);
|
|
return true;
|
|
}
|
|
|
|
bool DnsController::addDnsList(const QStringList &dnsServers, bool replaceExisting)
|
|
{
|
|
QStringList currentDnsServers;
|
|
|
|
if (!replaceExisting) {
|
|
currentDnsServers = m_settings->allowedDnsServers();
|
|
}
|
|
|
|
for (const QString &ip : dnsServers) {
|
|
if (!currentDnsServers.contains(ip)) {
|
|
currentDnsServers.append(ip);
|
|
}
|
|
}
|
|
|
|
m_settings->setAllowedDnsServers(currentDnsServers);
|
|
|
|
emit dnsListAdded(dnsServers);
|
|
return true;
|
|
}
|
|
|
|
bool DnsController::removeDns(const QString &ip)
|
|
{
|
|
QStringList currentDnsServers = m_settings->allowedDnsServers();
|
|
|
|
if (!currentDnsServers.contains(ip)) {
|
|
return false;
|
|
}
|
|
|
|
currentDnsServers.removeAll(ip);
|
|
m_settings->setAllowedDnsServers(currentDnsServers);
|
|
|
|
emit dnsRemoved(ip);
|
|
return true;
|
|
}
|
|
|
|
QStringList DnsController::getAllowedDnsServers() const
|
|
{
|
|
return m_settings->allowedDnsServers();
|
|
}
|