]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
kernel-pfkey: Add additional strings for extensions on different platforms
authorTobias Brunner <tobias@strongswan.org>
Wed, 16 Oct 2019 17:46:09 +0000 (19:46 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 28 Oct 2019 13:26:32 +0000 (14:26 +0100)
Don't define structs for macOS as we don't need them (that's true for
most of the others too, though) and at least one is defined inside an extra
ifdef.

src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c

index 0ae3314248c7eec49432a86e5b79c8cfff67fe7b..a97daf4a997eb394a28c3a889f1ef5e0fa4e89a0 100644 (file)
@@ -692,12 +692,27 @@ struct pfkey_msg_t
                        struct sadb_x_kmprivate *x_kmprivate;   /* SADB_X_EXT_KMPRIVATE */
                        struct sadb_x_policy *x_policy;                 /* SADB_X_EXT_POLICY */
                        struct sadb_x_sa2 *x_sa2;                               /* SADB_X_EXT_SA2 */
+#if defined(__linux__) || defined (__FreeBSD__)
                        struct sadb_x_nat_t_type *x_natt_type;  /* SADB_X_EXT_NAT_T_TYPE */
                        struct sadb_x_nat_t_port *x_natt_sport; /* SADB_X_EXT_NAT_T_SPORT */
                        struct sadb_x_nat_t_port *x_natt_dport; /* SADB_X_EXT_NAT_T_DPORT */
+#ifdef __linux__
                        struct sadb_address *x_natt_oa;                 /* SADB_X_EXT_NAT_T_OA */
                        struct sadb_x_sec_ctx *x_sec_ctx;               /* SADB_X_EXT_SEC_CTX */
                        struct sadb_x_kmaddress *x_kmaddress;   /* SADB_X_EXT_KMADDRESS */
+#else
+                       struct sadb_address *x_natt_oai;                /* SADB_X_EXT_NAT_T_OAI */
+                       struct sadb_address *x_natt_oar;                /* SADB_X_EXT_NAT_T_OAR */
+#ifdef SADB_X_EXT_NAT_T_FRAG
+                       struct sadb_x_nat_t_frag *x_natt_frag;  /* SADB_X_EXT_NAT_T_FRAG */
+#ifdef SADB_X_EXT_SA_REPLAY
+                       struct sadb_x_sa_replay *x_replay;              /* SADB_X_EXT_SA_REPLAY */
+                       struct sadb_address *x_new_addr_src;    /* SADB_X_EXT_NEW_ADDRESS_SRC */
+                       struct sadb_address *x_new_addr_dst;    /* SADB_X_EXT_NEW_ADDRESS_DST */
+#endif
+#endif
+#endif /* __linux__ */
+#endif /* __linux__ || __FreeBSD__ */
                } __attribute__((__packed__));
        };
 };
@@ -723,12 +738,34 @@ ENUM(sadb_ext_type_names, SADB_EXT_RESERVED, SADB_EXT_MAX,
        "SADB_X_EXT_KMPRIVATE",
        "SADB_X_EXT_POLICY",
        "SADB_X_EXT_SA2",
+#ifdef __APPLE__
+       "SADB_EXT_SESSION_ID",
+       "SADB_EXT_SASTAT",
+       "SADB_X_EXT_IPSECIF",
+       "SADB_X_EXT_ADDR_RANGE_SRC_START",
+       "SADB_X_EXT_ADDR_RANGE_SRC_END",
+       "SADB_X_EXT_ADDR_RANGE_DST_START",
+       "SADB_X_EXT_ADDR_RANGE_DST_END",
+       "SADB_EXT_MIGRATE_ADDRESS_SRC",
+       "SADB_EXT_MIGRATE_ADDRESS_DST",
+       "SADB_X_EXT_MIGRATE_IPSECIF",
+#else
        "SADB_X_EXT_NAT_T_TYPE",
        "SADB_X_EXT_NAT_T_SPORT",
        "SADB_X_EXT_NAT_T_DPORT",
+#ifdef __linux__
        "SADB_X_EXT_NAT_T_OA",
        "SADB_X_EXT_SEC_CTX",
-       "SADB_X_EXT_KMADDRESS"
+       "SADB_X_EXT_KMADDRESS",
+#else
+       "SADB_X_EXT_NAT_T_OAI",
+       "SADB_X_EXT_NAT_T_OAR",
+       "SADB_X_EXT_NAT_T_FRAG",
+       "SADB_X_EXT_SA_REPLAY",
+       "SADB_X_EXT_NEW_ADDRESS_SRC",
+       "SADB_X_EXT_NEW_ADDRESS_DST",
+#endif /* __linux__ */
+#endif /* __APPLE__ */
 );
 
 /**