Opened 9 years ago
Last modified 8 years ago
#597 closed TODO (General task list)
Integrate NSSM into OpenVPN — at Version 3
Reported by: | Samuli Seppänen | Owned by: | Samuli Seppänen |
---|---|---|---|
Priority: | critical | Milestone: | alpha 2.4 |
Component: | Packaging | Version: | OpenVPN git master branch (Community Ed) |
Severity: | Not set (select this one, unless your'e a OpenVPN developer) | Keywords: | windows openvpnserv nssm |
Cc: | gert@… |
Description (last modified by )
The OpenVPN service wrapper for Windows (openvpnserv.exe) is rapidly disintegrating as new Windows versions are released. On Windows 7 it works adequately, but on Windows 8.x and 10 it seems to be broken. There are currently several bug reports related to openvpnserv.exe (e.g. #110, #129, #591, #71).
Instead of improving and fixing openvpnserv.exe we've decided to replace it with a more robust service manager, NSSM. It is already possible to use NSSM with OpenVPN, but the manual configuration steps are too difficult for most "normal" users. Although NSSM has a configuration GUI, it is too generic and thus too complex for our simple use-case of "enabling and disabling OpenVPN connections", where almost all configuration parameter can be deduced and/or hardcoded.
This task consists of two parts:
- Write a simplified NSSM configuration GUI tailored for OpenVPN
- Integrate the configuration GUI with OpenVPN installers (in openvpn-gui project)
The configuration GUI has some constraints:
- Must not increase OpenVPN installer size significantly
- Rules out most external frameworks/languages such as Python, Perl and Qt.
- Must be reasonably fast
- Rules out PowerShell ShowUI, as importing the ShowUI module takes ages. Documentation on this framework is also very poor, and knowledge of WPF is assumed.
- Must have permissions to modify the system
- Rules out local web applications that don't use ActiveX controls.
- All components must bev redistributable
- Rules out (commercial) frameworks which are not under an open source / public domain license.
In practice C# + WPF seems to be the only reasonable way forward. As most of the GUI is generated programmatically there's no need for a separate GUI definition (XAML) file.
The code for the NSSM configuration GUI for OpenVPN will be hosted here.
Change History (3)
comment:1 Changed 9 years ago by
comment:2 Changed 9 years ago by
Cc: | gert@… added |
---|
comment:3 Changed 9 years ago by
Description: | modified (diff) |
---|
Earlier discussion and crude GUI layout plans are available.