diff options
| author | Odd Stranne <odd@mullvad.net> | 2018-06-05 11:27:41 +0200 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2018-06-18 08:45:15 +0200 |
| commit | 25119b33e10e277c5fc53eba2b9de59672464d71 (patch) | |
| tree | 5b18c2d1ebc8b5be2527f2884a93ed8254efb9b0 | |
| parent | 17ce07749be71a3391c2d891ac8c2dbed3814797 (diff) | |
| download | mullvadvpn-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.cpp | 10 | ||||
| -rw-r--r-- | windows/windns/src/windns/configmanager.h | 10 |
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. |
