summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-02-13 09:46:34 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-02-13 10:16:05 +0100
commit3ac9f9ac62b51ab84e54b086c4134f749b52312f (patch)
tree62f8348fca7b6fd6a8fea9aba068bed905d12362
parent878d5e0c5c79c59a908d6b769ffcc743ecd7e4c6 (diff)
downloadmullvadvpn-3ac9f9ac62b51ab84e54b086c4134f749b52312f.tar.xz
mullvadvpn-3ac9f9ac62b51ab84e54b086c4134f749b52312f.zip
Update callback in driverlogic
-rw-r--r--windows/driverlogic/src/driverlogic.cpp14
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)