]> git.ipfire.org Git - thirdparty/openvpn.git/commit
PUSH_UPDATE: Allow OpenVPN in client mode to receive and handle PUSH UPDATE control...
authorMarco Baffo <marco@mandelbit.com>
Tue, 29 Jul 2025 10:40:39 +0000 (12:40 +0200)
committerGert Doering <gert@greenie.muc.de>
Tue, 29 Jul 2025 11:12:15 +0000 (13:12 +0200)
commit80b62545881cbe39e813c85c23984e62aaa76860
treed82d3f833b7af2549f98a3079537830f78f25ff0
parent796ad2c55951635382e48ea5b71d13bbb83ebfb1
PUSH_UPDATE: Allow OpenVPN in client mode to receive and handle PUSH UPDATE control messages to allow options updating at runtime.

* Added IV_PROTO_PUSH_UPDATE flag bit to support push-updates.
* Added process_incoming_push_update(), in a separate file to create tests more easily.
* Modified incoming_push_message(), process_incoming_push_msg(), apply_push_options(),
  apply_pull_filter() to process also push-update messages.
* Added the check_push_update_option_flags() function used in apply_pull_filter() to
  check options formatting inside push-update messages, if the options are updatables
  and to check for '?' and '-' flags that may be present in front of the options.
  The '-' flag is used to indicate that the option in question should be removed,
  while the '?' indicates that the option is optional and to do not generate
  errors if the client cannot update that option.
  For more info you can read the RFC at https://github.com/OpenVPN/openvpn-rfc .
* Created some unit tests for the push-update message handling in test_push_update_msg.c.

Change-Id: I6ecd4cb47571cc8c20e46de8595c742aeec6064a
Signed-off-by: Marco Baffo <marco@mandelbit.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20250729104045.27582-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg32406.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
15 files changed:
CMakeLists.txt
src/openvpn/Makefile.am
src/openvpn/forward.c
src/openvpn/init.c
src/openvpn/options.c
src/openvpn/options.h
src/openvpn/options_util.c
src/openvpn/options_util.h
src/openvpn/push.c
src/openvpn/push.h
src/openvpn/push_util.c [new file with mode: 0644]
src/openvpn/ssl.c
src/openvpn/ssl.h
tests/unit_tests/openvpn/Makefile.am
tests/unit_tests/openvpn/test_push_update_msg.c [new file with mode: 0644]