summaryrefslogtreecommitdiffhomepage
path: root/windows/nsis-plugins/src/driverlogic/context.cpp
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2019-11-28 09:49:49 +0100
committerDavid Lönnhager <david.l@mullvad.net>2019-12-03 09:17:30 +0100
commit472c70f2e737c1cc22b538af17b36315a48cdd62 (patch)
treec2ae516a51ee6ffd9fffab9539139b2c470ff674 /windows/nsis-plugins/src/driverlogic/context.cpp
parent8f9f08a676d196172c76de1a568416beeb4da3d0 (diff)
downloadmullvadvpn-472c70f2e737c1cc22b538af17b36315a48cdd62.tar.xz
mullvadvpn-472c70f2e737c1cc22b538af17b36315a48cdd62.zip
Roll back TAP aliases after TAP driver updates (Windows)
Diffstat (limited to 'windows/nsis-plugins/src/driverlogic/context.cpp')
-rw-r--r--windows/nsis-plugins/src/driverlogic/context.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/windows/nsis-plugins/src/driverlogic/context.cpp b/windows/nsis-plugins/src/driverlogic/context.cpp
index c7ef8c91cd..ff46416d0a 100644
--- a/windows/nsis-plugins/src/driverlogic/context.cpp
+++ b/windows/nsis-plugins/src/driverlogic/context.cpp
@@ -380,6 +380,26 @@ void Context::recordCurrentState()
m_currentState = GetTapAdapters();
}
+void Context::rollbackTapAliases()
+{
+ NciContext nci;
+
+ for (const auto &adapter : m_currentState)
+ {
+ const auto oldInfo = m_baseline.find(adapter);
+ if (m_baseline.end() != oldInfo)
+ {
+ IID guidObj = { 0 };
+ if (S_OK != IIDFromString(&adapter.guid[0], &guidObj))
+ {
+ throw std::runtime_error("IIDFromString() failed");
+ }
+
+ nci.setConnectionName(guidObj, oldInfo->alias.c_str());
+ }
+ }
+}
+
Context::NetworkAdapter Context::getNewAdapter()
{
std::list<NetworkAdapter> added;