Skip to content
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