diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-02-24 15:58:42 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-02-26 12:52:21 +0100 |
| commit | 213d53618952114e316f3e8c5bd17da4dded84e2 (patch) | |
| tree | 4b56fbe1b22b6ee44169527a4b415675b8fe86ae /windows/driverlogic/src/driverlogic.cpp | |
| parent | 07c9d41f188f273c7d50e47518969f414773add5 (diff) | |
| download | mullvadvpn-213d53618952114e316f3e8c5bd17da4dded84e2.tar.xz mullvadvpn-213d53618952114e316f3e8c5bd17da4dded84e2.zip | |
Add remove-by-guid function to driverlogic
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index 4cd1a6640a..f849c828f2 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -759,7 +759,7 @@ std::optional<NetworkAdapter> FindAdapterByAlias(const std::set<NetworkAdapter> return std::nullopt; } -bool RemoveNetDevice(const std::wstring &tapHardwareId, const std::wstring &guid) +bool RemoveNetDevice(const std::optional<std::wstring> tapHardwareId, const std::wstring &guid) { bool deletedAdapter = false; @@ -806,7 +806,7 @@ void RemoveNetAdapterByAlias(const std::wstring &hardwareId, const std::wstring // and delete any adapter whose GUID matches that of the "Mullvad" adapter. // - if (!RemoveNetDevice(hardwareId, guid)) + if (!RemoveNetDevice(std::make_optional(hardwareId), guid)) { THROW_ERROR("The virtual adapter could not be removed"); } @@ -1038,6 +1038,20 @@ int wmain(int argc, const wchar_t * argv[], const wchar_t * []) RemoveNetAdapterByAlias(hardwareId, baseName); } + else if (0 == _wcsicmp(argv[1], L"remove-device-by-guid")) + { + if (3 != argc) + { + goto INVALID_ARGUMENTS; + } + + const wchar_t *guid = argv[2]; + + if (!RemoveNetDevice(std::nullopt, guid)) + { + return ADAPTER_NOT_FOUND; + } + } else if (0 == _wcsicmp(argv[1], L"device-exists")) { if (4 != argc) |
