diff options
| author | Odd Stranne <odd@mullvad.net> | 2018-04-23 11:45:20 +0200 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2018-06-18 08:45:10 +0200 |
| commit | c12f3f4fdf2391fdaa42ca50910588cde5a160dd (patch) | |
| tree | 7be4331a08c043a6df22c609ea961d547dac712a | |
| parent | f7b1f77456cfdb4bf6f0daee4985e524223cdc51 (diff) | |
| download | mullvadvpn-c12f3f4fdf2391fdaa42ca50910588cde5a160dd.tar.xz mullvadvpn-c12f3f4fdf2391fdaa42ca50910588cde5a160dd.zip | |
Add static functions for working with DNS
| -rw-r--r-- | windns/src/windns/dnshelpers.cpp | 30 | ||||
| -rw-r--r-- | windns/src/windns/dnshelpers.h | 20 |
2 files changed, 50 insertions, 0 deletions
diff --git a/windns/src/windns/dnshelpers.cpp b/windns/src/windns/dnshelpers.cpp new file mode 100644 index 0000000000..a23ffc5cef --- /dev/null +++ b/windns/src/windns/dnshelpers.cpp @@ -0,0 +1,30 @@ +#include "stdafx.h" +#include "dnshelpers.h" +#include "comhelpers.h" + +namespace dnshelpers +{ + +std::wstring GetId(CComPtr<IWbemClassObject> instance) +{ + return ComConvertString(V_BSTR(&ComGetPropertyAlways(instance, L"SettingID"))); +} + +OptionalStringList GetServers(CComPtr<IWbemClassObject> instance) +{ + OptionalStringList result; + + auto servers = ComGetProperty(instance, L"DNSServerSearchOrder"); + + if (VT_EMPTY == V_VT(&servers) || VT_NULL == V_VT(&servers)) + { + return result; + } + + result = std::make_unique<std::vector<std::wstring> >( + ComConvertStringArray(V_ARRAY(&servers))); + + return result; +} + +} diff --git a/windns/src/windns/dnshelpers.h b/windns/src/windns/dnshelpers.h new file mode 100644 index 0000000000..036fb032b1 --- /dev/null +++ b/windns/src/windns/dnshelpers.h @@ -0,0 +1,20 @@ +#pragma once + +#include <string> +#include <memory> +#include <vector> +#include <atlbase.h> +#include <wbemidl.h> + +namespace dnshelpers +{ + +// instance = Win32_NetworkAdapterConfiguration +std::wstring GetId(CComPtr<IWbemClassObject> instance); + +using OptionalStringList = std::unique_ptr<std::vector<std::wstring> >; + +// instance = Win32_NetworkAdapterConfiguration +OptionalStringList GetServers(CComPtr<IWbemClassObject> instance); + +}
\ No newline at end of file |
