0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 04:02:15 +02:00
Commit Graph

471 Commits

Author SHA1 Message Date
Heiko Hund
3936778c38 virtual d'tors: use '= default' instead of empty body
Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-08-13 02:05:05 +02:00
Heiko Hund
8c8e96e138 streamline overriding virtual function syntax
In the code base three different syntaxes for overriding virtual member
functions could be found:

  1) virtual ... override
  2) virtual ...
  3) ... override

This converts all of them to the third syntax, as recommended by the ISO
C++ core guidelines in C.128

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-08-13 02:01:24 +02:00
Razvan Cojocaru
6217fa0e1a Add default virtual destructors to base classes with virtual functions
Without this fix, the openvpn3-linux build is broken whenever a
dependency enables -Wnon-virtual-dtor (which protobuf 27.3
currently does on Arch Linux). The openvpn3-linux build treats
warnings as errors.

Jira: OVPN3-1242
Signed-off-by: Razvan Cojocaru <razvan.cojocaru@openvpn.com>
2024-08-08 14:43:12 +00:00
Lev Stipakov
cbea2d46c2 push update: support for Linux
Only tun-related options are supported, such as

  ifconfig, route, dns, dhcp-option

etc.

OVPN3-1231

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2024-08-08 14:43:11 +00:00
Lev Stipakov
0c27550736 push update: support for dco-win
Only tun-related options are supported, such as

  ifconfig, route, dns, dhcp-option

etc.

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2024-08-08 14:43:11 +00:00
Lev Stipakov
6a1a641cf5 push update: support for tap-windows6
Only tun-related options are supported, such as

  ifconfig, route, dns, dhcp-option

etc.

OVPN3-1000

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2024-08-08 14:43:11 +00:00
Lev Stipakov
adacc16cd4 push update: base implementation
This adds support for parsing PUSH_UPDATE
control command, which enables to update
options "on the fly", without reconnect.

The options presented in the PUSH_UPDATE list
overwrite current options with the name. To unset
an option, it has to be prefixed with the "-".

For example:

  PUSH_UPDATE,route 10.10.10.0 255.255.255.0,-dns

Replaces all existing routes with this new one
and removes all "dns" options.

If the client doesn't support updating certain option,
it reconnects. Except when option is prefixed with "?" -
in this case option is considered "optional".

For example, this message

  PUSH_UPDATE,?unsupported_option_a

does nothing, but this one:

  PUSH_UPDATE,dns 0,block-ipv6,unsupported_option_b

makes client reconnect, since it contains mandatory unsupported option.

OVPN3-1234

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2024-08-08 14:43:11 +00:00
Arne Schwabe
6f6cedc2a6 Make building with clang-cl under windows -Werror clean
Use empty braces to initalise the structs to zero since they
use sub structs and clang wants us to otherwise use {{ 0 }}

Ensure that methods with a return value do not return without a
value or exception by throwing an exception.

Add missing override in the unit test

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2024-07-29 13:40:30 +00:00
Leonard Ossa
3646265d15 Refactor nested namespace to C++17 style
Signed-off-by: Leonard Ossa <leonard.ossa@openvpn.com>
2024-07-03 10:20:11 +00:00
Heiko Hund
733d00b7e6 WFP: block DNS traffic to loopback conditionally
Before this commit traffic to loopback was limited when only DNS
(port 53) was blocked, due to the "not loopback" match condition being
replaced instead of the match condition being made more specific.

This broke the client option to override access to DNS servers listening
on loopback.

To fix this three things are done:
  1) do not add DNS block rules if the override option is active.
  2) explicitly block port 53 on loopback, except when the override
     option is active.
  3) remove the implicit block of port 53 on loopback and instead let
     the firewall rule for non-loopback devices only.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-28 14:57:04 +02:00
Heiko Hund
42a62f85bb NRPT: improve code for local resolver exception
Instead of relying on passing an empty domain name into the NRPT class
for the '.' rule not to be created, skip calling the NRPT code
altogether. Since there's no rule generated in the case where local
resolvers should be used when no split DNS is to be configured, skipping
the NRPT call is more readable and less magic, when viewed from the
setup class. Also more effective during runtime.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-27 04:17:42 +02:00
Heiko Hund
2da11e9693 dns option: handle allow_local_dns_resolvers
This flag was introduced to allow clients to decide if they want to
ignore non-split DNS option pushed to them. So, to be compatible with
the previous behavior with --dhcp-option, we act on the flag as wenn
when there are no resolve-domains specified.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
57d79c2c9e remove dead code for Windows pre-Vista
Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
1483c1248c add support for --block-outside-dns option
The option is only enforced with the --dns option, since DNS settings
coming in via --dhcp-option have always voluntarily blocked port 53.
This behavior is kept for backwards compatibility.

Since the --dns option allows local name servers to continue to work,
even thought no split DNS is pushed, supporting the option makes sense.
If admins do not want any DNS queries outside the tunnel, this is the
option to push alongside the --dns options.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
d7606f4cfb apply --dns options the new way
Previous to this --dns and DNS related --dhcp-options shared the same
code to apply the settings to Windows and macOS systems. So, both
options were pretty much just aliases, with --dns offering more and
finer grained settings that were mostly ignored.

Now --dhcp-options are applied the way they have always been and --dns
does it its own - the new - way. Reason for this behavioral change is
foremost that we want it to be the same between openvpn version 2 and
version 3. But there are also a few new features (e.g. DNSSEC), previously
not present with the --dhcp-options.

The name server and split-domain configuration is exclusively set via
NRPT on Windows, since it overrules any other resolver setting. If there
is no split DNS configured and all domains are resolved using the pushed
name server, we make sure that local domain names are still resolvable by
adding so called exclude NRPT rules, that make sure local domains get
resolved by their local DNS resolvers.

Since Windows does not know about alternative secure transports, the
'transport' and 'sni' settings are ignored.

For macOS the 'dnssec' setting is ignored in addition to that. Besides
that not much does change on that platform. In case of --dns options the
explicit values are used now. The API in use may be changed at a later time.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
bc24b7c80d add Windows Registry operations abstraction layer
Create a struct Reg, which contains various setter and getter functions
for different registry types and other operations that will be used.
This is done so that these operations can be injected as a dependency
and thus replaced with mock operation for the purpose of testing.
Besides that it makes code more brief and less error prone, since
there's now one implementation for converting C <-> C++ for each operation.

Move existing class RegKey and class RegKeyEnumerator into struct Reg as
well, so they are now known as Reg::Key and Reg::KeyEnumerator.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
3aa4121fa9 silence mingw 12 compiler warning
MinGW's g++ displays this warning when compiling:

warning: the address of ‘IP_ADDRESS_STRING::String’ will never be NULL [-Waddress]

since String is defined as a C array, it can never be nullptr, so the
warning is correct and the check can be removed.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-13 14:07:53 +02:00
Heiko Hund
d0cfea2a23 Tunnelcrack defense: enforce redir-gw block-local
In openvpn2 WFP block filters are added when the 'block-local' flag is
pushed to clients together with --redirect-{gateway|private}. That is
done in addition to adding routes to harden defense against attacks
collectively known as Tunnelcrack on Windows systems.

Since the openvpn3 library did not deal with the block-local flag at all
before this commit, on Windows it is sufficient to simply block traffic
to local interfaces by placing firewall rules. Traffic will only be
allowed originating from the OpenVPN process, on the VPN interface, and
loopback.

Note that previously WFP rules were already added to prevent access to
local DNS servers, when DNS servers were pushed. These are contained
within the ones added with 'block-local' and need not be set
additionally in that case.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-08 16:39:23 +00:00
Heiko Hund
3151adc468 WFP: restructure classes to be more descriptive
Some classes are moved to subclasses of class WFP. Other things just got
a more descriptive name. Here is what this commit changes effectively:

  * class WFPContext -> class WFP::Context
  * class WFP::WFPEngine -> class WFP::EngineHandle (private)
  * class ActionWFP is split into ActionBase and two derived classes
    ActionBlock and ActionUnblock, so that the purpose is more visible
    to the uninitiated observer (instead of just a bool making the
    difference)
  * instead of the 'tap_' prefix to names, use 'itf_' now, since we're
    not only dealing with tap interfaces anymore
  * INVALID_HANDLE_VALUE is used instead of NULL to mark a WIN32 handle
    as uninitialized

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2024-05-08 16:39:23 +00:00
David Sommerseth
149ec03864 OpenVPN 3 Core library version 3.8.5
-----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEgDq5E1p1aZrNLFFkhs+UTJZx/fIFAmYmR6wTHGRhdmlkc0Bv
 cGVudnBuLm5ldAAKCRCGz5RMlnH98rZPD/4vNyAZYSVN5HXO9SdrxCju/8VDxuDj
 0/CuS444NC4RKNLJIlorlLSi1zeL4fjuSRtEkLwB8QzCc3/sxEFFIqVk974zytMi
 ohBlNqISJTSUqugMZg1UfcySJSqHGaQfNfaiywSrQAe7hrCVPrUu+cAcXNsBeBPa
 fDOggL6K/7EVCwvZ5gcGUY0lw/LIriFkh40XD8LY+aYhGonPzDGnuQjcYHU48Hlp
 3ufsjLIQdLs4jCTmzSlURcXvaxi04o4WV+YOEGrUYSXeY8+6J4T8uKXqlMyoKQ+C
 w/m8Kgr5gQf/E020LYpWPoPWkoPrRRtBLvvXAighNEKMEtefSqxQtE1r/c/rMU12
 VeSX5LwJ3VRhCiZuTJD+08aRrGQNf+Fm6nswnyLw66bFGyIpPErEwhhbJsmPmaNN
 pOrbAxsAMwc/+jy0gqw7XFT/oDts+VN8WiYSRRaHfZ68lCvgf9AYirtygJy6oNYM
 WLTDOJjMwb42qBqyo6eYjos5yU57F5thV9M6qY5ycCIO0AIM0cFrRkZjNLF1pWS6
 6n8pwpPab29nUy3Ql3PZhW7t/4bhz0todfN7egHZrrvCkCOSQ/5DDWLLBI6ow9bM
 fXKB1sVjkNLPrHJ//5Hqh0GdO/Uc8GqdOIFngCnnjR3CS/ax+PZoAawCn1XbBpUW
 ddgSpAigLtFsLg==
 =3t/k
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEgDq5E1p1aZrNLFFkhs+UTJZx/fIFAmY03Y8THGRhdmlkc0Bv
 cGVudnBuLm5ldAAKCRCGz5RMlnH98sRwEACMzTmRreCO3jz456Q9gJS/kV1Ll/NB
 xOfEnhttxc19t+kjKL/AQOW3kfvP34uJUQdQAvjmp/HyJYGXQuNwGDW2/VD6aRaM
 e8agFKtKT6cGYPV3NoL3i4+hcl+ZIVnnVAQ+U7Pd9P8eAOzjALa53nAzx978Sfsc
 517M9V6M2dCAERtZYfTlUcM9Fi7055KsW8Ermna1qyRyA25F9ekVMSOMTvSzlUCa
 7W7OE0J2uJafyP4K5gGpmHZLrirEWSrtY3oOjHO0HAjur+Ir3XwcTnB9U4ACdVQV
 HYnIv3QzElQV0aGeWwqKir1i9WIefpZe28h+53UP8pTnx5C5uo+U03kNibyjDDRx
 fMxGa5fELyTMk6kttN6TtWcIbHeWTch6qzsvYJR1Exaqql3EEbRIerlsCL5ZM2TV
 JP04BWzJ7Hfz6qTS3dFUiFHfZw3ptPthE/3JiAYObIFE1YdQKYjwAKHXRjjdh1kT
 pq0ubqx9mX8OkgVZWNC9NDIZvZpdGFBn57wfG3TN29iR/J2WELsjhPOI3tMQAWMT
 ZqrDl45BciFUA2lVkZ7C9tgaGMR/nok/3bTksrNcM3h2DCE8Rt28giZwvtN2nSjq
 8ekT6jDs15WZd3kfVJHP4tb2MCh/IuP/8DPmUxW6jbg6tFJ+JqOSmD502pwZfxog
 gRbBXbdUqV9B3A==
 =nrJ0
 -----END PGP SIGNATURE-----

Merge OpenVPN 3 Core library version 3.8.5 to master

Signed-off-by: David Sommerseth <davids@openvpn.net>
2024-05-03 14:50:21 +02:00
Charlie Vigue
dd115d2e83 Fix RouteBase string formatting bug
When correcting conversion issues in RouteBase a to_string bug was
introduced which caused some characters to be escaped when inserted
to the string, for example a prefix_len of 0 would render as "\0"
rather than inserting '0'. The std::ios::binary flag does not seem
to prevent this for std::ostringstream so I have cast the data member
up to uint16_t which should be safe, and solves the issue.

Added a unit test to demonstrate the issue. Old code output was
"0.0.0.0/\0", now outputs "0.0.0.0/0" as expected.

Signed-off-by: Charlie Vigue <charlie.vigue@openvpn.com>
2024-03-29 03:13:00 +00:00
David Sommerseth
7f3e61089b
mac/gw: Fix incorrect additional )
In commit 1b4f736bb9, an additional parentheses was added to
the MacGatewayInfo constructor.  This results in code which cannot be
compiled.

Signed-off-by: David Sommerseth <davids@openvpn.net>
2024-03-22 22:15:10 +01:00
Illia Polishchuk
00bdf8ba8b Make profile errors clearer for users by reporting specific error codes.
ERR_INVALID_OPTION_DNS -- invalid value for some of DNS\Domain options
ERR_INVALID_OPTION_CRYPTO -- invalid value for some of SSL\Crypto option
ERR_INVALID_CONFIG -- missing option or not supported option
ERR_INVALID_OPTION_PUSHED -- pushed to server option error
ERR_INVALID_OPTION_VAL -- invalid value for some general option

Signed-off-by: Illia Polishchuk <illia.polishchuk@openvpn.com>
2024-03-22 15:15:09 +00:00
Antonio Quartulli
1216f566e4 sitnl: allow user to configure custom metric for routes
Until now sitnl was just default to metric 0 when installing routes,
while ignoring any value that may have been passed by the user.

Extend logic to properly accept a user value.

Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2024-03-15 13:27:14 +00:00
Antonio Quartulli
1e23850291 tunnetlink.hpp: remove unused include
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2024-03-15 13:27:14 +00:00
Antonio Quartulli
56dbd2ceec TunBuilderCapture: use default route metric if none was specified
When the user specifies no metric (i.e. value is -1), the TunBuilder
should pass the default value down the stack.

Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2024-03-15 13:27:14 +00:00
Arne Schwabe
1b4f736bb9
Make macOS gateway detection IPv6 aware and use actual server address
This also move the building IV_HWADDR peer info variable to the point
that the server address is actually available.

This also avoids failing to connect when push-peer-info is enabled and
there is no IPv4 default gateway. The new code will always pick the device
that holds the route to the current remote.

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2024-03-14 14:10:53 +01:00
Antonio Quartulli
9eeeb38c45
unit-test: fix sitnl systematic failure
It was noted that the SITNL unit test is always failing for no clear
reason.

It turned out that commit 22ba196429
("SITNL: revert change of sitnl_send return type, return int"),
that was supposed to be a simple revert of
ae663c573a ("Using new numeric
conversion tools") is actually converting two "return ret" into
return -1 and return -EINVAL accordingly.

This accidental change results in two functions always returning
an error despite terminating succesfully.

This behaviour was obviously fooling the unitest which failed in result.

Fix both functions by properly returning "ret" as it was originally.

Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2024-03-12 09:47:54 +01:00
Arne Schwabe
c1bcf78d2e Add support for mbed TLS 3.0
This currently still depends on the mbed TLS compat API functionality.

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2024-02-23 15:32:58 +01:00
Frank Lichtenheld
eaf9147fcd
Add various moves as suggested by Coverity
Out of all the suggestions by Coverity I picked
the ones that move non-Ptr objects into variables
or attributes.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2024-01-31 17:02:45 +01:00
Arne Schwabe
c151efc908 Allow specifying different client and server reasons for disconnect
Currently PG only allows to either send or withhold the reason to the
client but there are certain circumstances where you want to have more
detailed internal reason but still want to send some reason to the
client.

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2023-12-13 16:51:22 +01:00
Frank Lichtenheld
22ba196429
SITNL: revert change of sitnl_send return type, return int
This was changed in commit
ae663c573a ("Using new numeric
conversion tools") to avoid some conversion warnings. But
after understanding the workings of the function better, the
change turns out to have been wrong. Instead the function was
changed to use different intermediate variables for different
purposes.

This change ripples through the whole Netlink/SITNL interface.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-11-10 15:45:41 +01:00
Frank Lichtenheld
3b945e62e6
SITNL: document interface and code of sitnl_send function
Past changes make it clear that the interface was not well
understood.

While here, clean up the code to make it easier to understand.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-11-10 15:45:40 +01:00
Frank Lichtenheld
1e135e4f05
GeNL: add explicit casts in nl interface
To allow compiling the code with -Wconversion.

Also remove one line of unused code.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-11-10 15:45:29 +01:00
David Sommerseth
01a37cea97
Merge OpenVPN 3 Core Library release v3.8.3 to master
Signed-off-by: David Sommerseth <davids@openvpn.net>
2023-11-08 22:04:21 +01:00
Frank Lichtenheld
8713c7463e SITNL: Fix conversion warning related to route table id
For some reason the enum is much bigger than the field
in the API.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-10-24 15:29:31 +02:00
Mark Deric
22af472e8a
Improve names
-- disambiguate new_obj(): new_man_obj(), new_tun_obj
-- remove obfuscatory typedef <class> Base; use <class>
-- in servproto.hpp typedef ProtoContext::ProtoConfig to ProtoConfig
   since Arne's already disambiguated Config
-- disambiguate Link<>: TCPLink<>, UDPLink<>

Added TODO comment on unneeded version of control_net_recv()

Signed-off-by: Mark Deric <jmark@openvpn.net>
2023-10-11 18:49:23 +02:00
Lev Stipakov
7df2a8530b Win: workaround for transient 0.0.0.0/0
When setting IP address with "gateway" option,
Windows by some reasons creates 0.0.0.0/0 route
which we later remove. However for a few seconds
while this route exists it might interfer with routing.

To work around that, we initially set tun interface metric to
very high, which makes Windows create a rougue route with
high metric. After a few seconds we delete that route and
set metric to a lowest value.

Fixes https://github.com/OpenVPN/openvpn3/issues/281

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2023-10-11 18:23:14 +03:00
Frank Lichtenheld
73624b8331 TunBuilderCapture: avoid -Wconversion warning for prefix_length
For some reason RouteBase uses unsigned char for prefix_length
while all other code uses int or unsigned int. For now just
cast it, prefix_length should be <= 128 anyway.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-10-11 12:28:55 +02:00
Frank Lichtenheld
8a926bda94
dhcp_capture: Fix some conversion warnings
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-09-28 11:33:43 +02:00
Frank Lichtenheld
cdd58b62d1
Windows: Fix conversion warnings in Registry code
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-09-28 11:33:42 +02:00
Frank Lichtenheld
ced2eef9a1
wintun: Fix some ULONG vs size_t conversion warnings
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
2023-09-28 11:33:42 +02:00
David Sommerseth
75dbcdfa93
Merge OpenVPN 3 Core v3.8.2 into master
Signed-off-by: David Sommerseth <davids@openvpn.net>
2023-09-13 16:46:05 +02:00
Heiko Hund
6f538ca0fd
dns option: fix split DNS on Windows
Unlike OpenVPN v2, v3 support split DNS already, so we need to make sure
that --dns options are added in a way that results in NRPT rules to be set. At
this time that means the --dns resolve-domains are added as search
domains and --dns search-domains (only the first one really) as an
adapter specific domain suffix.

Signed-off-by: Heiko Hund <heiko@openvpn.net>
2023-09-06 16:45:22 +02:00
Charlie Vigue
ae663c573a
Using new numeric conversion tools
Using is_safe_conversion in places where it is a better fit than
numeric_cast.

Signed-off-by: Charlie Vigue <charlie.vigue@openvpn.com>
2023-08-23 18:44:29 +02:00
Charlie Vigue
b6b8282d33 Addressed 2nd set of -Wconversion warnings
- Used static_cast instead of direct type conversions in places where
it's safe
- Used numeric_cast where failure is possible
- Changed types of arguments and locals when practical

Signed-off-by: Charlie Vigue <charlie.vigue@openvpn.com>
2023-08-21 13:51:50 +00:00
Arne Schwabe
b755783a13 Fix reading MAC address on macOS
The confusing overlapping structs and memory accesses with the
struct lead to use missing a few bytes from being copied. Fix
this by copying from the correct struct.

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2023-08-17 12:43:29 +02:00
Lev Stipakov
85b92afe96
win/client/tunsetup.hpp: fix IPv4 redirect-gw with IPv6 remote
redirect-gw is implemented by changing default route to
a GW provided by VPN. For IPv4 before doing that we add
a bypass route to a remote. This is needed only when remote
is not on local network.

The check "is remote on local network" has a wrong assumtion
that remote is IPv4. This is obviously not always the case
since remote could be IPv6. In this case if we want to redirect
IPv4 traffic an exception is thrown inside BestGateway class
while trying to convert IPv6 address to IPv4.

Fix by specifying correct address family based on remote's "ipv6"
flag. Later we add bypass route only if remote is IPv4.

Fixes OVPN3-1004.

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2023-08-02 16:49:44 +02:00
David Sommerseth
8f5afdd3f8 OpenVPN 3 Core library version 3.8
-----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEgDq5E1p1aZrNLFFkhs+UTJZx/fIFAmSb2ywTHGRhdmlkc0Bv
 cGVudnBuLm5ldAAKCRCGz5RMlnH98lKHD/4z+eI5Jlek9f1q+CcPopGwTBZHkN1u
 lTtnUgKtGZ7x42PZr5t5W+vcQspHSMurlYOjCES6d4DjYJ6vW3/a5qm4s7OokW6u
 Ts2iGWGSf09kDXVff7ogfsJs3LTi/GDNq9VTTWH3fGyEaM89w2ss9OpUBjDImpbs
 nCU7B3BgXIBKKsl4sKNfm8kulakEp4YZlMlvuvGujfTWc8ATqP2tsGdV8HN82gXl
 7uw9N7/aaU6VFgpGjqgdkChAHJlcr9koUWPtVr+4Hf934jQYX4d80SI3umzs2JfW
 xEIcWwStTKztFB5l/Vr6hNmR5sMdW5AEvHfc2W/31gng5cK/0VxEElPQMvVxFteC
 7SlkpNH70mUC5FgO9lIuoUGxYV0MV3+lHrYHBcj2/7z4B4C57K7reqToNHMpT1Ns
 7Cdfu50wijtOnwy0VY/PCkPNLC5lfO2tka+ZLuIDq6p7V1uapA49Axqli9QZ+IZ8
 mYIFQrFKkD3E6NTlDKiMBGnWqKR9U/O49hQAN6I7Kx79GqrPTj/3Q8Z7pZ5iulPQ
 aXjWKvfBdWpR3XmkU30EGKN5J98Wh1qPv56gJ3d71ab4FM57eTfp9BdXbuGHxq9P
 YdExIbZM2Wmv5AQMLAMkw4O7FtABSIPONCz7lD8d9PoCRb1trsnDKQ8ZgFfrOIcs
 BeDyC2eZeBeMnw==
 =1Hd0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEgDq5E1p1aZrNLFFkhs+UTJZx/fIFAmSb3boTHGRhdmlkc0Bv
 cGVudnBuLm5ldAAKCRCGz5RMlnH98hjnD/0XyldUsdoEgrM0PKDe7u/u7RYxQx1n
 gCrhLZQbnE++U1qITRraHfQu0qLLLXwFIDBiagIVuotcxwOWPz1+tTyUICc4KsLS
 zzkuube2aSBRtbwa8C4FfDuKSWosCOTv56ZE/3Ioq6v0Hf7sDqMDCvUxBjNlQLWu
 m604/yxWxAEnu6lHPY5rj3+9U5TSpErXJk/DqW6ewJjh/TFWG5nA1Z2Q/IF0XIR9
 pbqnhL1Dhd7Z350s7bjsl2ejxj7FmrEXaCh3geK8ovfYfurpX5me8i389LcaM/TD
 MvBStvZIJa2inYxU5IUQnGtqGYdtU4IW8VM3aq8pNy2+U9WNnC/3Q1msplOjPPur
 a2WzNnRcFqxxeVgNmYZgdiS3m6FvAaG3bGUN9haFz3Rjz0yaumbhA4VrLmcimghj
 9AarITBznK8h+JqHdEIarZWwOfLj7A7sdsKQwe7ycBs29WbRW6+iSkhNxnI0BcLu
 mgwf00il4czEWIUthlTF7KcREj/WE/rMSDGAcW+TKJZpdffS2FVQeQITG9SLuBJa
 fVD9C1UYfrrkk408YuButJK2aEYICVFkDfmWcRxF2s8zxyPaVhCLyx2jTaIILV5M
 7HzgnHjlc8e5mhwI3/bE09pzrogtXd3n0s2Yf+f1h8y31GgUHKZRIqY2ESIZghML
 9BZmMAnOprRuWw==
 =HH92
 -----END PGP SIGNATURE-----

Release Merge: OpenVPN 3 Core library version 3.8

Signed-off-by: David Sommerseth <davids@openvpn.net>
2023-06-28 09:13:00 +02:00
Antonio Quartulli
193468cd72
ovpn-dco: change control packets flow in order to adapt to dco-v2 logic
With ovpn-co-v2 logic, control packets do not flow through netlink
anymore but they are sent directly via the transport socket.

Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2023-06-06 13:54:42 +02:00