summaryrefslogtreecommitdiffhomepage
path: root/windows/driverlogic/src/driverlogic.cpp
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-02-21 15:27:00 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-02-25 11:32:09 +0100
commit687a2f7bad4aafc55515def59b1ec07a43f1fa50 (patch)
treef651795fede6c02b8734719754cb1729eaaf8bc8 /windows/driverlogic/src/driverlogic.cpp
parent5ff35bce21fbb535ab5a021611ecabc838fd0f1f (diff)
downloadmullvadvpn-687a2f7bad4aafc55515def59b1ec07a43f1fa50.tar.xz
mullvadvpn-687a2f7bad4aafc55515def59b1ec07a43f1fa50.zip
Return specific error codes from driverlogic and display them in the message box
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
-rw-r--r--windows/driverlogic/src/driverlogic.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp
index 3cb30ab91b..3e482c196f 100644
--- a/windows/driverlogic/src/driverlogic.cpp
+++ b/windows/driverlogic/src/driverlogic.cpp
@@ -30,8 +30,8 @@ constexpr wchar_t TAP_BASE_ALIAS[] = L"Mullvad";
enum ReturnCodes
{
- GENERAL_ERROR,
- GENERAL_SUCCESS
+ GENERAL_SUCCESS = 0,
+ GENERAL_ERROR = -1
};
struct NetworkAdapter
@@ -523,11 +523,12 @@ ATTEMPT_UPDATE:
if (deviceInstallDisabled)
{
- THROW_ERROR(
+ throw common::error::WindowsException(
"Device installs must be enabled to continue. "
- "Enable them in the Local Group Policy editor, or"
- " update the registry value DeviceInstallDisabled in"
- " [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\DeviceInstall\\Parameters]"
+ "Enable them in the Local Group Policy editor, or "
+ "update the registry value DeviceInstallDisabled in "
+ "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\DeviceInstall\\Parameters]",
+ lastError
);
}
}
@@ -774,6 +775,11 @@ int wmain(int argc, const wchar_t * argv[], const wchar_t * [])
goto INVALID_ARGUMENTS;
}
}
+ catch (const common::error::WindowsException &e)
+ {
+ LogError(common::string::ToWide(e.what()));
+ return e.errorCode();
+ }
catch (const std::exception &e)
{
LogError(common::string::ToWide(e.what()));