diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-09-28 18:34:19 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-11-24 18:50:03 +0100 |
| commit | 5b6ae2a5ba273f0a78012140fb531e325a944f74 (patch) | |
| tree | b301882cd2a8777e277776b3276342f7bf1e0d78 /windows/driverlogic/src/driverlogic.cpp | |
| parent | f71f4c0f650a7d83008ac6e9d4b31019d50d6577 (diff) | |
| download | mullvadvpn-5b6ae2a5ba273f0a78012140fb531e325a944f74.tar.xz mullvadvpn-5b6ae2a5ba273f0a78012140fb531e325a944f74.zip | |
Generalize driverlogic
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index 989ee70cf5..e38b7b71a2 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -504,7 +504,7 @@ std::set<NetworkAdapter> GetNetworkAdapters(const std::optional<std::wstring> ha return adapters; } -void CreateTapDevice() +void CreateNetDevice(const std::wstring &hardwareId) { GUID classGuid = GUID_DEVCLASS_NET; @@ -542,8 +542,8 @@ void CreateTapDevice() deviceInfoSet, &devInfoData, SPDRP_HARDWAREID, - reinterpret_cast<const BYTE *>(TAP_HARDWARE_ID), - sizeof(TAP_HARDWARE_ID) - sizeof(L'\0') + reinterpret_cast<const BYTE *>(hardwareId.c_str()), + sizeof(wchar_t) * hardwareId.size() ); if (FALSE == status) @@ -565,7 +565,7 @@ void CreateTapDevice() THROW_SETUPAPI_ERROR(GetLastError(), "SetupDiCallClassInstaller"); } - Log(L"Created new TAP adapter successfully"); + Log(L"Created new network adapter successfully"); } void UpdateTapDriver(const std::wstring &infPath) @@ -644,13 +644,13 @@ ATTEMPT_UPDATE: // NOTE: Enumerating adapters first and picking the next free name is not sufficient, // because the broken TAP may not be included. // -void RenameAdapterToMullvad(const NetworkAdapter &adapter) +void RenameAdapter(const NetworkAdapter &adapter, const std::wstring &baseName) { common::network::Nci nci; try { - nci.setConnectionName(common::Guid::FromString(adapter.guid), TAP_BASE_ALIAS); + nci.setConnectionName(common::Guid::FromString(adapter.guid), baseName.c_str()); return; } catch (...) @@ -660,7 +660,7 @@ void RenameAdapterToMullvad(const NetworkAdapter &adapter) for (int i = 1; i < 10; i++) { std::wstringstream ss; - ss << TAP_BASE_ALIAS << L"-" << i; + ss << baseName << L"-" << i; try { @@ -672,7 +672,7 @@ void RenameAdapterToMullvad(const NetworkAdapter &adapter) } } - THROW_ERROR("Exhausted TAP adapter namespace"); + THROW_ERROR("Unable to rename network adapter"); } std::optional<NetworkAdapter> FindMullvadAdapter(const std::set<NetworkAdapter> &tapAdapters) @@ -726,19 +726,19 @@ std::optional<NetworkAdapter> FindMullvadAdapter(const std::set<NetworkAdapter> return std::nullopt; } -NetworkAdapter FindBrandedTap() +NetworkAdapter FindNetAdapter(const std::wstring &hardwareId) { - std::set<NetworkAdapter> added = GetNetworkAdapters(TAP_HARDWARE_ID); + std::set<NetworkAdapter> added = GetNetworkAdapters(hardwareId); if (added.empty()) { - THROW_ERROR("Could not identify TAP"); + THROW_ERROR("Could not identify virtual network adapter"); } else if (added.size() > 1) { - LogAdapters(L"Enumerable network TAP adapters", added); + LogAdapters(L"Enumerable virtual network adapters", added); - THROW_ERROR("Identified more TAP adapters than expected"); + THROW_ERROR("Identified more network adapters than expected"); } return *added.begin(); @@ -837,9 +837,9 @@ int wmain(int argc, const wchar_t * argv[], const wchar_t * []) goto INVALID_ARGUMENTS; } - CreateTapDevice(); + CreateNetDevice(TAP_HARDWARE_ID); UpdateTapDriver(argv[2]); - RenameAdapterToMullvad(FindBrandedTap()); + RenameAdapter(FindNetAdapter(TAP_HARDWARE_ID), TAP_BASE_ALIAS); } else if (0 == _wcsicmp(argv[1], L"update")) { |
