summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--windows/windns/src/windns/dnsconfig.cpp21
-rw-r--r--windows/windns/src/windns/dnsconfig.h26
2 files changed, 24 insertions, 23 deletions
diff --git a/windows/windns/src/windns/dnsconfig.cpp b/windows/windns/src/windns/dnsconfig.cpp
index 5a7ca42096..f233d17d1d 100644
--- a/windows/windns/src/windns/dnsconfig.cpp
+++ b/windows/windns/src/windns/dnsconfig.cpp
@@ -4,17 +4,14 @@
DnsConfig::DnsConfig(CComPtr<IWbemClassObject> instance)
{
- m_configId = nchelpers::GetConfigId(instance);
- m_interfaceIndex = ComGetPropertyAlways(instance, L"InterfaceIndex").uintVal;
- m_servers = nchelpers::GetDnsServers(instance);
-}
+ //
+ // V_xxx macros seem to require an l-value so access the correct field directly instead.
+ //
-const std::vector<std::wstring> *DnsConfig::servers() const
-{
- return m_servers.get();
-}
+ m_configIndex = ComGetPropertyAlways(instance, L"Index").ulVal;
-//void DnsConfig::update(CComPtr<IWbemClassObject> instance)
-//{
-// m_servers = nchelpers::GetDnsServers(instance);
-//}
+ m_interfaceIndex = ComGetPropertyAlways(instance, L"InterfaceIndex").ulVal;
+ m_interfaceGuid = ComConvertString(ComGetPropertyAlways(instance, L"SettingID").bstrVal);
+
+ m_servers = nchelpers::GetDnsServers(instance);
+}
diff --git a/windows/windns/src/windns/dnsconfig.h b/windows/windns/src/windns/dnsconfig.h
index bb9a841c8e..7727f2fff8 100644
--- a/windows/windns/src/windns/dnsconfig.h
+++ b/windows/windns/src/windns/dnsconfig.h
@@ -13,16 +13,11 @@ class DnsConfig
public:
// instance = Win32_NetworkAdapterConfiguration.
- DnsConfig(CComPtr<IWbemClassObject> instance);
+ explicit DnsConfig(CComPtr<IWbemClassObject> instance);
- DnsConfig(const DnsConfig &) = delete;
- DnsConfig &operator=(const DnsConfig &) = delete;
- DnsConfig(DnsConfig &&) = default;
- DnsConfig &operator=(DnsConfig &&) = default;
-
- const std::wstring &id() const
+ uint32_t configIndex() const
{
- return m_configId;
+ return m_configIndex;
}
uint32_t interfaceIndex() const
@@ -30,13 +25,22 @@ public:
return m_interfaceIndex;
}
- const std::vector<std::wstring> *servers() const;
+ const std::wstring &interfaceGuid() const
+ {
+ return m_interfaceGuid;
+ }
-// void update(CComPtr<IWbemClassObject> instance);
+ const std::vector<std::wstring> *servers() const
+ {
+ return m_servers.get();
+ }
private:
- std::wstring m_configId;
+ uint32_t m_configIndex;
+
uint32_t m_interfaceIndex;
+ std::wstring m_interfaceGuid;
+
nchelpers::OptionalStringList m_servers;
};