From: Gert Doering Date: Fri, 7 Nov 2025 14:13:27 +0000 (+0100) Subject: FreeBSD DCO: repair incoming 'delete peer' notifications in p2p client mode X-Git-Tag: v2.7_rc2~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4fe7813d8b8eba99549a7b5e9499a31f91c8109;p=thirdparty%2Fopenvpn.git FreeBSD DCO: repair incoming 'delete peer' notifications in p2p client mode commit 4a48841da2 introduced a workaround for spurious DCO notifications "with no useful content" on Linux - namely, ignoring dco_message_type==0 in forward.c, process_incoming_dco(), "because Linux has no message type 0 anyway". Each DCO platform uses its own enum for these notification messages *inside* OpenVPN (which might not have the best design decision ever), and FreeBSD had OVPN_CMD_DEL_PEER in the enum on "position 0"... Fix by changing the enum to start with 1. Tested with DEL_PEER in p2p client and DEL_PEER & FLOAT in p2mp server mode. v2: introduce OVPN_CMD_NO_MESSAGE in position 0, and a comment explaining why. A future commit can then clean up forward.c and dco_linux.c to use the constant, and not "magic 0 which happens to be in there after CLEAR()". Github: fixes OpenVPN/openvpn#881 Change-Id: I991d6053776efed771bc1a3880acb80b55959cbc Signed-off-by: Gert Doering Acked-by: Frank Lichtenheld Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1353 Message-Id: <20251107141333.12056-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg34237.html Signed-off-by: Gert Doering --- diff --git a/src/openvpn/dco_freebsd.h b/src/openvpn/dco_freebsd.h index 0797b823f..5e2a55258 100644 --- a/src/openvpn/dco_freebsd.h +++ b/src/openvpn/dco_freebsd.h @@ -33,6 +33,8 @@ typedef enum ovpn_key_cipher dco_cipher_t; enum ovpn_message_type_t { + /* message type #0 is treated as magic number by process_incoming_dco() */ + OVPN_CMD_NO_MESSAGE = 0, OVPN_CMD_DEL_PEER, OVPN_CMD_PACKET, OVPN_CMD_SWAP_KEYS,