summaryrefslogtreecommitdiffhomepage
path: root/windows/driverlogic/src/driverlogic.cpp
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-09-28 12:44:12 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-09-28 12:44:12 +0200
commit827d95c831f9ef8de4b419a6f7913377a20e8cf9 (patch)
tree2ffa5de8ee4ba2f777b4bfe9001dca44696fad6e /windows/driverlogic/src/driverlogic.cpp
parent31e62ea07e957b2e1d285c8eb85605ce8cba5e69 (diff)
parenta247e6220fe924c89923beae638dfc182797ba18 (diff)
downloadmullvadvpn-827d95c831f9ef8de4b419a6f7913377a20e8cf9.tar.xz
mullvadvpn-827d95c831f9ef8de4b419a6f7913377a20e8cf9.zip
Merge branch 'wg-nt'
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
-rw-r--r--windows/driverlogic/src/driverlogic.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp
index 93af20b400..3cb1739e21 100644
--- a/windows/driverlogic/src/driverlogic.cpp
+++ b/windows/driverlogic/src/driverlogic.cpp
@@ -5,6 +5,7 @@
#include "log.h"
#include "version.h"
#include "wintun.h"
+#include "wireguard.h"
#include "devenum.h"
#include <string>
#include <libcommon/error.h>
@@ -278,6 +279,32 @@ ReturnCode CommandWintunDeleteAbandonedDevice(const std::vector<std::wstring> &a
return GENERAL_SUCCESS;
}
+ReturnCode CommandWireGuardNtCleanup(const std::vector<std::wstring> &args)
+{
+ ArgumentContext argsContext(args);
+
+ argsContext.ensureExactArgumentCount(1);
+
+ const auto poolName = argsContext.next();
+
+ WireGuardNtDll wgNt;
+
+ BOOL rebootRequired;
+
+ if (FALSE == wgNt.deletePoolDriver(poolName.c_str(), &rebootRequired))
+ {
+ throw std::runtime_error("Failed to delete WireGuardNT pool");
+ }
+
+ std::wstringstream ss;
+
+ ss << L"Successfully deleted WireGuardNT pool. Reboot required: " << rebootRequired;
+
+ Log(ss.str());
+
+ return ReturnCode::GENERAL_SUCCESS;
+}
+
} // anonymous namespace
int wmain(int argc, const wchar_t *argv[])
@@ -325,7 +352,8 @@ int wmain(int argc, const wchar_t *argv[])
{ L"st-force-install", CommandSplitTunnelForceInstall },
{ L"st-remove", CommandSplitTunnelRemove },
{ L"wintun-delete-pool-driver", CommandWintunDeletePool },
- { L"wintun-delete-abandoned-device", CommandWintunDeleteAbandonedDevice }
+ { L"wintun-delete-abandoned-device", CommandWintunDeleteAbandonedDevice },
+ { L"wg-nt-cleanup", CommandWireGuardNtCleanup }
};
//