aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/installer
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-22 21:12:57 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-22 22:28:52 +0200
commit9125a867857e876af5aa5048f17a351241c0ca46 (patch)
treea82dd6d096989d16793f9972175760121efea91d /installer
parentmanager: don't delay updates by 10 seconds (diff)
downloadwireguard-windows-9125a867857e876af5aa5048f17a351241c0ca46.tar.xz
wireguard-windows-9125a867857e876af5aa5048f17a351241c0ca46.zip
installer: set sidtype from customaction
Otherwise they'll fail to come up when updating to 0.0.9.
Diffstat (limited to 'installer')
-rw-r--r--installer/customactions.js17
-rw-r--r--installer/wireguard.wxs8
2 files changed, 25 insertions, 0 deletions
diff --git a/installer/customactions.js b/installer/customactions.js
index 8628de54..45095faa 100644
--- a/installer/customactions.js
+++ b/installer/customactions.js
@@ -97,3 +97,20 @@ function RemoveConfigFolder() {
logMessage("Failed to remove configuration on uninstall: " + e.message);
}
}
+
+/* TODO: Remove me no later than July 2019. This is so that pre-0.0.9 upgrades go smoothly. */
+function REMOVEME_EnableServiceSidType() {
+ var serviceKey = "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services";
+ var servicePrefix = "WireGuardTunnel$";
+ var serviceKeyPrefix = serviceKey + "\\" + servicePrefix;
+ var allowedNameFormat = new RegExp("^[a-zA-Z0-9_=+.-]{1,32}$");
+ var txt = runWithNoWindowFlash(fso.BuildPath(fso.GetSpecialFolder(1), "reg.exe") + " query \"" + serviceKey + "\"");
+ var lines = txt.split(new RegExp("\r?\n", "g"));
+ for (var i = 0; i < lines.length; ++i) {
+ if (lines[i].length > serviceKeyPrefix.length && lines[i].substring(0, serviceKeyPrefix.length) == serviceKeyPrefix) {
+ var tunnelName = lines[i].substring(serviceKeyPrefix.length);
+ if (tunnelName.match(allowedNameFormat) != null)
+ wsh.Run(fso.BuildPath(fso.GetSpecialFolder(1), "sc.exe") + " sidtype " + servicePrefix + tunnelName + " unrestricted", 0, true);
+ }
+ }
+}
diff --git a/installer/wireguard.wxs b/installer/wireguard.wxs
index 737372c5..93c97d0c 100644
--- a/installer/wireguard.wxs
+++ b/installer/wireguard.wxs
@@ -130,5 +130,13 @@
<!-- TODO: this should not launch when msiexec is called with whatever flag means it shouldn't launch. -->
<Custom Action="LaunchApplication" After="PublishProduct">NOT Installed</Custom>
</InstallExecuteSequence>
+
+ <!--
+ TODO: Remove me no later than July 2019. This is so that pre-0.0.9 upgrades go smoothly.
+ -->
+ <CustomAction Id="REMOVEME_EnableServiceSidType" BinaryKey="customactions.js" JScriptCall="REMOVEME_EnableServiceSidType" Execute="deferred" Impersonate="no"/>
+ <InstallExecuteSequence>
+ <Custom Action="REMOVEME_EnableServiceSidType" After="StopServices"/>
+ </InstallExecuteSequence>
</Product>
</Wix>