diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-02-13 09:46:34 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-02-13 10:16:05 +0100 |
| commit | 3ac9f9ac62b51ab84e54b086c4134f749b52312f (patch) | |
| tree | 62f8348fca7b6fd6a8fea9aba068bed905d12362 | |
| parent | 878d5e0c5c79c59a908d6b769ffcc743ecd7e4c6 (diff) | |
| download | mullvadvpn-3ac9f9ac62b51ab84e54b086c4134f749b52312f.tar.xz mullvadvpn-3ac9f9ac62b51ab84e54b086c4134f749b52312f.zip | |
Update callback in driverlogic
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index c13ef20b23..f57ffc209b 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -290,7 +290,7 @@ bool DeleteDevice(HDEVINFO devInfo, const SP_DEVINFO_DATA &devInfoData) return true; } -void ForEachNetworkDevice(const std::optional<std::wstring> hwId, std::function<void(HDEVINFO, const SP_DEVINFO_DATA &)> func) +void ForEachNetworkDevice(const std::optional<std::wstring> hwId, std::function<bool(HDEVINFO, const SP_DEVINFO_DATA &)> func) { HDEVINFO devInfo = SetupDiGetClassDevsW( &GUID_DEVCLASS_NET, @@ -351,7 +351,10 @@ void ForEachNetworkDevice(const std::optional<std::wstring> hwId, std::function< } } - func(devInfo, devInfoData); + if (!func(devInfo, devInfoData)) + { + break; + } } } @@ -386,6 +389,7 @@ std::set<NetworkAdapter> GetNetworkAdapters(const std::optional<std::wstring> ha std::wcerr << L"Skipping adapter due to exception caught while iterating: " << common::string::ToWide(e.what()) << std::endl; } + return true; }); return adapters; @@ -617,6 +621,7 @@ void RemoveTapDriver(const std::wstring &tapHardwareId) std::wcerr << L"Skipping TAP adapter due to exception caught while iterating: " << common::string::ToWide(e.what()) << std::endl; } + return true; }); } @@ -643,7 +648,8 @@ void DeleteVanillaMullvadAdapter() { if (0 == GetNetCfgInstanceId(devInfo, devInfoData).compare(mullvadGuid)) { - deletedAdapter = DeleteDevice(devInfo, devInfoData) || deletedAdapter; + deletedAdapter = DeleteDevice(devInfo, devInfoData); + return false; } } catch (const std::exception & e) @@ -654,8 +660,8 @@ void DeleteVanillaMullvadAdapter() std::wcerr << L"Skipping TAP adapter due to exception caught while iterating: " << common::string::ToWide(e.what()) << std::endl; - return; } + return true; }); if (!deletedAdapter) |
