]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
dco linux: avoid redefining ovpn enums (2.6)
authorFrank Lichtenheld <frank@lichtenheld.com>
Fri, 1 Aug 2025 13:03:02 +0000 (15:03 +0200)
committerGert Doering <gert@greenie.muc.de>
Fri, 1 Aug 2025 13:25:25 +0000 (15:25 +0200)
Starting with Linux kernel version 6.16, a couple of ovpn-related enum
definitions were introduced in the `include/uapi/linux/if_link.h`
header. Redefining them in openvpn when they are already present in the
system headers can lead to conflicts or build issues.

This commit ensures that enum redefinitions are avoided by conditionally
using the existing definitions from the system header when available.

This is the port to release/2.6 based on commit
1d3c2b67a73a0aa011c13e62f876d24e49d41df0.

Change-Id: I41c5dfc7489352a9534ff6b1585a5a81e0623ab1
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Antonio Quartulli <antonio@mandelbit.com>
Message-Id: <20250801130302.372311-1-frank@lichtenheld.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg32470.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/dco_linux.h
src/openvpn/ovpn_dco_linux.h

index 511519aece438295f272266598576d447e7b80a7..5179912b522d93155a2b661faa85be89abbbb817 100644 (file)
 
 #include "event.h"
 
-#include "ovpn_dco_linux.h"
-
 #include <netlink/socket.h>
 #include <netlink/netlink.h>
 
+/* include last since we need to behave differently if the kernel headers
+ * are from 6.16+ */
+#include "ovpn_dco_linux.h"
+
 typedef enum ovpn_key_slot dco_key_slot_t;
 typedef enum ovpn_cipher_alg dco_cipher_t;
 
index 73e19b591cb8a83eaf85e4f0f4036dddd36f7fe6..34abc6ab79d2c7964ad16d8fbf5bdd85b95786c8 100644 (file)
@@ -237,14 +237,17 @@ enum ovpn_netlink_packet_attrs {
        OVPN_PACKET_ATTR_MAX = __OVPN_PACKET_ATTR_AFTER_LAST - 1,
 };
 
+#ifndef IFLA_OVPN_MAX
+
 enum ovpn_ifla_attrs {
        IFLA_OVPN_UNSPEC = 0,
        IFLA_OVPN_MODE,
 
-       __IFLA_OVPN_AFTER_LAST,
-       IFLA_OVPN_MAX = __IFLA_OVPN_AFTER_LAST - 1,
+       __IFLA_OVPN_MAX,
 };
 
+#define IFLA_OVPN_MAX (__IFLA_OVPN_MAX - 1)
+
 enum ovpn_mode {
        __OVPN_MODE_FIRST = 0,
        OVPN_MODE_P2P = __OVPN_MODE_FIRST,
@@ -253,4 +256,6 @@ enum ovpn_mode {
        __OVPN_MODE_AFTER_LAST,
 };
 
+#endif /* ifndef IFLA_OVPN_MAX */
+
 #endif /* _UAPI_LINUX_OVPN_DCO_H_ */