diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-08-13 17:06:57 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-09-28 12:41:47 +0200 |
| commit | ce84bcf44cd923f5d178c8a39eaec6eee8165e5f (patch) | |
| tree | 0fe0b776d5b4c3df0eece0ba010df450eb52c29c /windows/driverlogic/src/driverlogic.cpp | |
| parent | 77eddaf311f1c77132b500dbc35d4f3af41c2069 (diff) | |
| download | mullvadvpn-ce84bcf44cd923f5d178c8a39eaec6eee8165e5f.tar.xz mullvadvpn-ce84bcf44cd923f5d178c8a39eaec6eee8165e5f.zip | |
Update installer for wgnt
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 30 |
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 } }; // |
