OpenVPN 3 Linux v7 (beta) The highlights of this release are: * Bugfix: openvpn3 log --session-path was misbehaving and returned a very little helpful error message. * Bugfix: Logging integration could crash due to a strict D-Bus policy for the OpenVPN 3 log service. * Bugfix: The VPN backend process cold crash if it lost contact with the OpenVPN 3 Network Configuration service. * Bugfix: The port-override setting in configuration profiles, available via the OpenVPN 3 Configuration Manager service was not working. * Bugfix: Improve validation of the D-Bus paths which can be given to the various openvpn3 commands, which results in better error messages when an incorrect path is given. * Bugfix: Improved operational stability if a depending OpenVPN 3 D-Bus service is interrupted or stops running, by ensuring the caller of the D-Bus service has a valid connection to the D-Bus daemon and that the needed service is available before accessing it. * Enhancement: If compression is enabled on the VPN tunnel, either by the local configuration profile or being pushed by the server, this is now logged as a critical event in the log files. * Enhancement: Provide the session name set inside the OpenVPN 3 Core library by the library itself to the OpenVPN 3 Session Manager. This information is exposed via the openvpn3 sessions-list command. * Enhancement: Provide the virtual interface name used by the running VPN sessions via the OpenVPN 3 Session Manager. This information is exposed via the openvpn3 sessions-list command. * Enhancement: Several openvpn3 commands can now take the --interface option as an alternative to --path or --config. The command will now lookup the interface name and find the appropriate D-Bus path for the session this interface is tied to. Bash shell completion for --interface has also been added. * Enhancement: The output provided by openvpn3 sessions-list has been reorganized and clean-up a little bit. * Enhancement: A lot of the low level technical D-Bus related information is now stripped from most of the error messages in the user front-end applications (openvpn2, openvpn3, openvpn3-admin) * Enhancement: Added support for --verify-x509-name * Enhancement: The unified policy for all OpenVPN 3 D-Bus services has now been split up into separate policy files per service. * Enhancement: New command line utility, openvpn3-as. This can import a configuration profile from an OpenVPN Access Server by just providing the URL to the Access Server. * Extended openvpn3-admin version with --services, to list version information of all related D-Bus services * Enhancement: The OpenVPN 3 Logger service has been extended to provide a list of all services it has attached itself to for retrieving Log events. * Enhancement: Extended the Python openvpn3 module with methods to retrieve information and lightly manage interfaces handled by the OpenVPN 3 Network Configuration service. The complete overview of all changes: David Sommerseth (72): docs: Updated README file python: Give better information when starting background VPN sessions build: Ensure we really use the system liblz4 library docs: Update the pre-built section in README ovpn3cli: Fix misbehaving log --session-path core: Update to latest OpenVPN 3 Core Library tests: Adding unit-test framework tests: Port a few simple unit tests tests: Ported NetCfgChangeEvent unit test tests: Ported StatusEvent selftest to unit test tests: Ported LogEvent selftest to unit test common/cmdargparser: Slight minor improvements common: Make cmdargparser.hpp a separate compilation unit client: Tackle better if NetCfgProxy object is lost netcfg: Add version property to main service object netcfg: Make proxy-netcfg a separate compilation unit dbus/proxy: Ensure access denials exceptions are handled explicitly log: Don't throw access denied exception during init ovpn3cli/admin: Add --service argument to openvpn3-admin version tests: Make Jenkins run unit tests and collect results client: Expose session name via D-Bus sessionmgr: Expose session name ovpn3cli/session: Display session name python: Add OpenVPN 3 version to Python constants python: Add openvpn3-as - Access Server support utility python/openvpn3-as: Fix trailing slashes in URLs python/openvpn3-as: Extend with challenge/response auth support tests: Fix failing unittest with --enable-debug-core-events proxy: Add input validation on D-Bus paths client: Proxy warning from Core when compression has been enabled proxy: Provide method extracting proxy object path client: Provide methods retrieving netcfg device path and name client: Expose netcfg device path and name via D-Bus sessionmgr: Expose NetCfg device path and name for VPN sessions cli/session: Expose device name used by session in sessions-list session/proxy: Fix memory leaks in GetConnectionStats() sessionmgr: Add two new main manager methods sessionmgr/proxy: Add proxy methods for interface lookups ovpn3cli: Add argument helper for retrieving interface names ovpn3cli/session: Add --interface option to some session commands tests: Fix lookup unit-test with SUSE docker containers log/proxy: Fix -Wcatch-value compiler warnings core-ext: Replace hacky option string export client: Fix incorrect processing of port override netcfg: Fix inconsistent glib2 behaviour on Ubuntu sessionmgr: Handle missing backend gracefully for device_name tests: Add test program quering version property in services Fix incorrect spelling of 'retrieving' dbus/proxy: Strip "remote" part of GDBus errors core: Update to latest OpenVPN 3 Core library python: Add support for --verify-x509-name proxy: Don't throw access denials in GetServiceVersion() man: Update openvpn2 proxy: Fix incorrect error in DBusProxy::GetServiceVersion() netcfg: Reorganize netcfg-changeevent.{cpp,hpp} policy: Split up the D-Bus policy per service proxy: Move the GDBus error message strip after AccessDenied check dbus: Ensure the D-Bus connection still valid sessionmgr/proxy: Verify session objects availability before calling it dbus/idlecheck: Consider last_operation when executing idle exit tests: Add simple connect/disconnect stress test dbus/signals: Add getter methods for interface and object path dbus/proxy: Ensure we have a valid D-Bus connection before proxy calls log: Add new admin method retrieving attached subscriptions log/proxy: Add C++ method for accessing GetSubscriberLog ovpn3cli/log-service: Add --list-subscriptions mode ovpn3cli/session: Minor overhaul of sessions-list sessionmgr: Grant access to the device_path in a session python/SessionManager: Add Introspection() and GetObjectPath() methods python: Add NetCfgChangeType constants python/NetCfgManager: New openvpn3 module for the netcfg service build: Clean up *~ files in a few forgotten places