From 6c689b639cf8e2aeced8685eca2915892d76ad86 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 15 Mar 2022 12:25:21 +0100 Subject: Simplify static build extension loading Instead of guarding all calls to init_extensions*(), define stubs if not used. While at it, also add the missing prototypes for arp- and ebtables extension initializers. Signed-off-by: Phil Sutter --- include/xtables.h | 9 +++++++++ iptables/ip6tables-standalone.c | 3 --- iptables/iptables-restore.c | 4 ---- iptables/iptables-save.c | 4 ---- iptables/iptables-standalone.c | 2 -- iptables/xtables-arp.c | 3 --- iptables/xtables-eb.c | 3 --- iptables/xtables-monitor.c | 2 -- iptables/xtables-restore.c | 2 -- iptables/xtables-save.c | 2 -- iptables/xtables-standalone.c | 2 -- iptables/xtables-translate.c | 2 -- 12 files changed, 9 insertions(+), 29 deletions(-) diff --git a/include/xtables.h b/include/xtables.h index ca674c26..044f191f 100644 --- a/include/xtables.h +++ b/include/xtables.h @@ -595,8 +595,17 @@ static inline void xtables_print_mark_mask(unsigned int mark, extern void init_extensions(void); extern void init_extensions4(void); extern void init_extensions6(void); + extern void init_extensionsa(void); + extern void init_extensionsb(void); #else # define _init __attribute__((constructor)) _INIT +# define EMPTY_FUNC_DEF(x) static inline void x(void) {} + EMPTY_FUNC_DEF(init_extensions) + EMPTY_FUNC_DEF(init_extensions4) + EMPTY_FUNC_DEF(init_extensions6) + EMPTY_FUNC_DEF(init_extensionsa) + EMPTY_FUNC_DEF(init_extensionsb) +# undef EMPTY_FUNC_DEF #endif extern const struct xtables_pprot xtables_chain_protos[]; diff --git a/iptables/ip6tables-standalone.c b/iptables/ip6tables-standalone.c index 105b83ba..7c8bb0c2 100644 --- a/iptables/ip6tables-standalone.c +++ b/iptables/ip6tables-standalone.c @@ -52,11 +52,8 @@ ip6tables_main(int argc, char *argv[]) ip6tables_globals.program_version); exit(1); } - -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions6(); -#endif ret = do_command6(argc, argv, &table, &handle, false); if (ret) { diff --git a/iptables/iptables-restore.c b/iptables/iptables-restore.c index 1917fb23..d8f65ce1 100644 --- a/iptables/iptables-restore.c +++ b/iptables/iptables-restore.c @@ -383,10 +383,8 @@ iptables_restore_main(int argc, char *argv[]) iptables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); -#endif ret = ip46tables_restore_main(&ipt_restore_cb, argc, argv); @@ -417,10 +415,8 @@ ip6tables_restore_main(int argc, char *argv[]) ip6tables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions6(); -#endif ret = ip46tables_restore_main(&ip6t_restore_cb, argc, argv); diff --git a/iptables/iptables-save.c b/iptables/iptables-save.c index a114e98b..a8dded63 100644 --- a/iptables/iptables-save.c +++ b/iptables/iptables-save.c @@ -227,10 +227,8 @@ iptables_save_main(int argc, char *argv[]) iptables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); -#endif ret = do_iptables_save(&ipt_save_cb, argc, argv); @@ -273,10 +271,8 @@ ip6tables_save_main(int argc, char *argv[]) ip6tables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions6(); -#endif ret = do_iptables_save(&ip6t_save_cb, argc, argv); diff --git a/iptables/iptables-standalone.c b/iptables/iptables-standalone.c index 8c67ea4d..0f263f6f 100644 --- a/iptables/iptables-standalone.c +++ b/iptables/iptables-standalone.c @@ -53,10 +53,8 @@ iptables_main(int argc, char *argv[]) iptables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); -#endif ret = do_command4(argc, argv, &table, &handle, false); if (ret) { diff --git a/iptables/xtables-arp.c b/iptables/xtables-arp.c index 805fb19a..9c44cfc2 100644 --- a/iptables/xtables-arp.c +++ b/iptables/xtables-arp.c @@ -205,10 +205,7 @@ int nft_init_arp(struct nft_handle *h, const char *pname) arptables_globals.program_version); exit(1); } - -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensionsa(); -#endif if (nft_init(h, NFPROTO_ARP) < 0) xtables_error(OTHER_PROBLEM, diff --git a/iptables/xtables-eb.c b/iptables/xtables-eb.c index 1e5b50ba..dcb707f6 100644 --- a/iptables/xtables-eb.c +++ b/iptables/xtables-eb.c @@ -668,10 +668,7 @@ int nft_init_eb(struct nft_handle *h, const char *pname) ebtables_globals.program_version); exit(1); } - -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensionsb(); -#endif if (nft_init(h, NFPROTO_BRIDGE) < 0) xtables_error(OTHER_PROBLEM, diff --git a/iptables/xtables-monitor.c b/iptables/xtables-monitor.c index 73dc80c2..72d5e04b 100644 --- a/iptables/xtables-monitor.c +++ b/iptables/xtables-monitor.c @@ -625,11 +625,9 @@ int xtables_monitor_main(int argc, char *argv[]) xtables_globals.program_version); exit(1); } -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); init_extensions6(); -#endif if (nft_init(&h, AF_INET)) { fprintf(stderr, "%s/%s Failed to initialize nft: %s\n", diff --git a/iptables/xtables-restore.c b/iptables/xtables-restore.c index 81b25a43..c6a5ffed 100644 --- a/iptables/xtables-restore.c +++ b/iptables/xtables-restore.c @@ -363,11 +363,9 @@ xtables_restore_main(int family, const char *progname, int argc, char *argv[]) switch (family) { case NFPROTO_IPV4: case NFPROTO_IPV6: /* fallthough, same table */ -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); init_extensions6(); -#endif break; case NFPROTO_ARP: case NFPROTO_BRIDGE: diff --git a/iptables/xtables-save.c b/iptables/xtables-save.c index 03d2b980..9bbe8511 100644 --- a/iptables/xtables-save.c +++ b/iptables/xtables-save.c @@ -202,11 +202,9 @@ xtables_save_main(int family, int argc, char *argv[], switch (family) { case NFPROTO_IPV4: case NFPROTO_IPV6: /* fallthough, same table */ -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); init_extensions6(); -#endif d.commit = true; break; case NFPROTO_ARP: diff --git a/iptables/xtables-standalone.c b/iptables/xtables-standalone.c index 5482a856..06fedf26 100644 --- a/iptables/xtables-standalone.c +++ b/iptables/xtables-standalone.c @@ -67,7 +67,6 @@ xtables_main(int family, const char *progname, int argc, char *argv[]) exit(1); } xt_params->program_name = progname; -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) switch (family) { case NFPROTO_IPV4: case NFPROTO_IPV6: @@ -79,7 +78,6 @@ xtables_main(int family, const char *progname, int argc, char *argv[]) init_extensionsa(); break; } -#endif if (nft_init(&h, family) < 0) { fprintf(stderr, "%s: Failed to initialize nft: %s\n", diff --git a/iptables/xtables-translate.c b/iptables/xtables-translate.c index 6a1cdac1..c5184334 100644 --- a/iptables/xtables-translate.c +++ b/iptables/xtables-translate.c @@ -488,11 +488,9 @@ static int xtables_xlate_main_common(struct nft_handle *h, switch (family) { case NFPROTO_IPV4: case NFPROTO_IPV6: /* fallthrough: same table */ -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS) init_extensions(); init_extensions4(); init_extensions6(); -#endif break; case NFPROTO_ARP: case NFPROTO_BRIDGE: -- cgit v1.2.3