diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-22 21:12:57 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-22 22:28:52 +0200 |
commit | 9125a867857e876af5aa5048f17a351241c0ca46 (patch) | |
tree | a82dd6d096989d16793f9972175760121efea91d /installer | |
parent | manager: don't delay updates by 10 seconds (diff) | |
download | wireguard-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.js | 17 | ||||
-rw-r--r-- | installer/wireguard.wxs | 8 |
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> |