OpenVPN 3 Linux v8 (beta) The highlights of this release are: * Improvement: Brand new DNS resolver settings handling. This is expected to avoid several bugs found in the prior releases, all from not cleaning up correctly to adding duplicated entries for pushed DNS settings. * Improvement: Refactored the code tied to setting up the direct route for the VPN server. * Improvement: openvpn3-admin log-service --list-subscriptions now adds the PID of the process the log subscription is tied to. * Bugfix: The openvpn3 Python module broke in v7_beta for Ubuntu 16.04 and other distributions shipping with Python 3.5 or older. This has now been fixed but it will be required to install the aenum Python module via pip3. This is not needed on distributions with Python 3.6 or newer. * Bugfix: The openvpn2 interface would not work if the --verb option was missing. * Bugfix: The D-Bus policy was incorrect for the net.openvpn.v3.netcfg service, related to the org.freedesktop.DBus.Ping method. * Bugfix: Corrected a typo in Python constants related to DNS_SERVER_ADDED * Bugfix: openvpn2 will now warn about ignoring --up and --down options, and will silently ignore --down-pre and --script-security. These are not relevant or supported in OpenVPN 3 Linux. Prior versions did not work. * Build: It now builds with GCC 10 * Build: It should be possible to build openvpn3-linux with no warnings on most platforms (gcc-4.8.5 requires -std=c++1y) * OpenVPN 3 Core: Upgraded to the latest development version, with lots of bugfixes and improvements. The complete overview of all changes: Arne Schwabe (14): contrib: Add cli-netcfg as a CMake build target netcfg: Move D-Bus logic returning fd in method call netcfg: Use C++ default copy constructor in NetCfgOptions Code style fixes ovpn3cli: Compile config command with USE_TUN_BUILDER netcfg: Declare ~NetCfgProxyException() as an override properly netcfg: Move device object creation into a separate method netcfg: Factor out notification signals in core-tunbuilder netcfg: Implement honouring remove_cmds in core tunbuilder contrib: Update CMake file to add missing files netcfg/client: Replace add_bypass_route with socket_protect netcfg/client: Cleanup tun devices and protected sockets on exit build: Update cmake files to include DNS related changes netcfg/client: Fix NetCfg::Cleanup() not called from openvpn-service-client David Sommerseth (48): netcfg: NetCfgChangeEvent could incorrectly parse GVariant data client: Allow non-session manager access to log_level and device_path client: Provide more information on non-sessionmgr rejections client: Fix incorrect return in the Ready D-Bus method docs: Improve documentation dbus: Add missing glib2 include file in dbus/exceptions.hpp sessionmgr: Don't panic when device_path or device_name is unavailable common: Fix lookup functions returning uid/gid -1 common/lookup: Update callers of lookup functions to handle exceptions core: Update to latest OpenVPN 3 Core library git master Replace empty destructors with default common/lookup: Add missing include file common/lookup: Fix memory leaks in lookup_{gid,uid}() build: Updating default C++ compiler flags contrib: Update Jenkins build slave tag python: Set a default verb level when --verb option is missing Update .gitignore policy: Fix incorrect org.freedesktop.DBus.Peer.Ping access on netcfg python: Fix incorrect NetCfgChangeType constant for DNS_SERVER_ADDED ovpn3cli/netcfg: Add presenting PID of subcribers in --list-subscribers python: Extend the IgnoreArg handler to issue warnings python: Add 4 script related options to the ignore list man: Add information about script execution in OpenVPN 3 python: Extend ConfigParser to support embedding --auth-user-pass file netcfg: Make the NetCfgEvent const in NetCfgSignals::NetworkChange() netcfg/signals: Add support for providing device name with Debug logging netcfg: Add a new DNS settings framework netcfg: Implement new resolv.conf backend processor netcfg: Use the new DNS resolver settings framework netcfg: Do not apply DNS changes to backend with no registered changes netcfg: Explicitly restore the backup resolv.conf at exit netcfg: Add a mutex lock for changes to the resolv.conf file netcfg: Pass NetCfgSignals object to SettingsManager::ApplySettings() netcfg: Rework removal of DNS resolver settings netcfg/dns: Send NetworkChange signals on DNS resolver settings changes build: Fix GCC 10 build issues - missing includes build: Fix GCC 10 build issues - uint*_fast_t contrib/jenkins: Run make distcheck with proper parallelism netcfg: Do not add duplicated DNS resolver settings netcfg/test: Fix memory leaks from GLibUtils::wrapInTuple() netcfg: Clear the memory buffered resolv.conf properly core: Update to latest OpenVPN 3 Core client: Don't provide statistics if vpnclient object is unavailable dbus: SetDBusError() does not change the exception object sessionmgr: Need to also tackle DBusException with CheckACL() build: Upgrade to Python 3.5 as the minimum version python/build: Add enum workaround for older Python versions core: Update to latest OpenVPN 3 Core Lev Stipakov (1): contrib: add missing sources to CMake alternative