summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2019-10-21 13:26:06 +0200
committerDavid Lönnhager <david.l@mullvad.net>2019-10-25 16:48:05 +0200
commit9d283c151c21763727191cd33ec641a43d87a435 (patch)
tree085e8d986249b71ba24a05cdc72ec40159ff4eb4
parent4a17e89a15d1bdd6e68d4fd71a1550c64f9f3bb7 (diff)
downloadmullvadvpn-9d283c151c21763727191cd33ec641a43d87a435.tar.xz
mullvadvpn-9d283c151c21763727191cd33ec641a43d87a435.zip
Install Wintun
-rw-r--r--dist-assets/windows/installer.nsh59
1 files changed, 59 insertions, 0 deletions
diff --git a/dist-assets/windows/installer.nsh b/dist-assets/windows/installer.nsh
index 4f92961f7f..4ef535f5d6 100644
--- a/dist-assets/windows/installer.nsh
+++ b/dist-assets/windows/installer.nsh
@@ -100,6 +100,20 @@
!define ExtractDriver '!insertmacro "ExtractDriver"'
#
+# ExtractWintun
+#
+# Extract Wintun installer into $TEMP
+#
+!macro ExtractWintun
+
+ SetOutPath "$TEMP"
+ File "${BUILD_RESOURCES_DIR}\binaries\x86_64-pc-windows-msvc\wintun\mullvad-wintun-amd64.msi"
+
+!macroend
+
+!define ExtractWintun '!insertmacro "ExtractWintun"'
+
+#
# ForceRenameAdapter
#
# For when there's a broken TAP adapter present, such that the adapter name
@@ -373,6 +387,42 @@
!define InstallDriver '!insertmacro "InstallDriver"'
#
+# InstallWintun
+#
+# Install Wintun driver
+#
+# Returns: 0 in $R0 on success, otherwise an error message in $R0
+#
+!macro InstallWintun
+
+ log::Log "InstallWintun()"
+
+ Push $0
+
+ ${DisableX64FSRedirection}
+ ExecWait '"$SYSDIR\msiexec.exe" /i "$TEMP\mullvad-wintun-amd64.msi" /qn /norestart' $0
+ ${EnableX64FSRedirection}
+
+ ${If} $0 != 0
+ StrCpy $R0 "Failed to install Wintun: error $0"
+ log::Log $R0
+ Goto InstallWintun_return
+ ${EndIf}
+
+ log::Log "InstallWintun() completed successfully"
+
+ Push 0
+ Pop $R0
+
+ InstallWintun_return:
+
+ Pop $0
+
+!macroend
+
+!define InstallWintun '!insertmacro "InstallWintun"'
+
+#
# InstallService
#
# Register the service with Windows and start it
@@ -684,6 +734,15 @@
Abort
${EndIf}
+ ${ExtractWintun}
+ ${InstallWintun}
+
+ ${If} $R0 != 0
+ MessageBox MB_OK "Fatal error during Wintun installation: $R0"
+ ${BreakInstallation}
+ Abort
+ ${EndIf}
+
${InstallService}
${If} $R0 != 0