summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2018-06-05 11:27:41 +0200
committerOdd Stranne <odd@mullvad.net>2018-06-18 08:45:15 +0200
commit25119b33e10e277c5fc53eba2b9de59672464d71 (patch)
tree5b18c2d1ebc8b5be2527f2884a93ed8254efb9b0
parent17ce07749be71a3391c2d891ac8c2dbed3814797 (diff)
downloadmullvadvpn-25119b33e10e277c5fc53eba2b9de59672464d71.tar.xz
mullvadvpn-25119b33e10e277c5fc53eba2b9de59672464d71.zip
Update server list on existing configs so we don't lose the DHCP flag
-rw-r--r--windows/windns/src/windns/configmanager.cpp10
-rw-r--r--windows/windns/src/windns/configmanager.h10
2 files changed, 10 insertions, 10 deletions
diff --git a/windows/windns/src/windns/configmanager.cpp b/windows/windns/src/windns/configmanager.cpp
index bff2cf4264..2c5ddb065f 100644
--- a/windows/windns/src/windns/configmanager.cpp
+++ b/windows/windns/src/windns/configmanager.cpp
@@ -36,7 +36,7 @@ const std::vector<std::wstring> &ConfigManager::getServers() const
return m_servers;
}
-ConfigManager::UpdateType ConfigManager::updateConfig(const DnsConfig &previous, const DnsConfig &target)
+ConfigManager::UpdateType ConfigManager::updateConfig(const InterfaceConfig &previous, const InterfaceConfig &target)
{
XTRACE(L"Interface configuration update for interface =", target.interfaceIndex());
@@ -83,7 +83,7 @@ ConfigManager::UpdateType ConfigManager::updateConfig(const DnsConfig &previous,
else
{
XTRACE(L"Updating interface configuration entry");
- iter->second = target;
+ iter->second.updateServers(target);
}
exportConfigs();
@@ -91,7 +91,7 @@ ConfigManager::UpdateType ConfigManager::updateConfig(const DnsConfig &previous,
return UpdateType::External;
}
-bool ConfigManager::processConfigs(std::function<bool(const DnsConfig &)> configSink)
+bool ConfigManager::processConfigs(std::function<bool(const InterfaceConfig &)> configSink)
{
for (auto it = m_configs.begin(); it != m_configs.end(); ++it)
{
@@ -104,7 +104,7 @@ bool ConfigManager::processConfigs(std::function<bool(const DnsConfig &)> config
return true;
}
-bool ConfigManager::internalUpdate(const DnsConfig &config)
+bool ConfigManager::internalUpdate(const InterfaceConfig &config)
{
auto updatedServers = config.servers();
@@ -121,6 +121,6 @@ void ConfigManager::exportConfigs()
//
// TODO: Serialize all configs and send to config sink
//
- // serialize as array of DnsConfig?
+ // serialize as array of InterfaceConfig?
//
}
diff --git a/windows/windns/src/windns/configmanager.h b/windows/windns/src/windns/configmanager.h
index 65c2000c99..f677f56e8b 100644
--- a/windows/windns/src/windns/configmanager.h
+++ b/windows/windns/src/windns/configmanager.h
@@ -1,6 +1,6 @@
#pragma once
-#include "dnsconfig.h"
+#include "interfaceconfig.h"
#include "clientsinkinfo.h"
#include "itracesink.h"
#include <map>
@@ -81,12 +81,12 @@ public:
External
};
- UpdateType updateConfig(const DnsConfig &previous, const DnsConfig &target);
+ UpdateType updateConfig(const InterfaceConfig &previous, const InterfaceConfig &target);
//
// Enumerate recorded configs.
//
- bool processConfigs(std::function<bool(const DnsConfig &)> configSink);
+ bool processConfigs(std::function<bool(const InterfaceConfig &)> configSink);
private:
@@ -98,14 +98,14 @@ private:
//
// Organize configs based on their system assigned index.
//
- std::map<uint32_t, DnsConfig> m_configs;
+ std::map<uint32_t, InterfaceConfig> m_configs;
std::shared_ptr<ITraceSink> m_traceSink;
//
// Tests, by looking at the servers, whether this is an update initied by WINDNS.
//
- bool internalUpdate(const DnsConfig &config);
+ bool internalUpdate(const InterfaceConfig &config);
//
// Bundle the current config details and send them into the config sink.