]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
xtables: Call init_extensions{,a,b}() for static builds
authorEtienne Champetier <champetier.etienne@gmail.com>
Mon, 14 Mar 2022 00:09:12 +0000 (20:09 -0400)
committerPhil Sutter <phil@nwl.cc>
Tue, 15 Mar 2022 13:53:52 +0000 (14:53 +0100)
Add calls to arp- and ebtables-specific extension loaders where missing.
Also consistently call init_extensions() for them, as some extensions
(ebtables 'limit' and arptables 'CLASSIFY' and 'MARK') live in libxt_*
files.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
Signed-off-by: Phil Sutter <phil@nwl.cc>
iptables/xtables-arp.c
iptables/xtables-eb.c
iptables/xtables-monitor.c
iptables/xtables-restore.c
iptables/xtables-save.c
iptables/xtables-standalone.c
iptables/xtables-translate.c

index 9c44cfc2e46f7a8fa513b3b700252e189c811ae1..68514297f381f09eeef1df73362234c166a19c57 100644 (file)
@@ -205,6 +205,7 @@ int nft_init_arp(struct nft_handle *h, const char *pname)
                        arptables_globals.program_version);
                exit(1);
        }
+       init_extensions();
        init_extensionsa();
 
        if (nft_init(h, NFPROTO_ARP) < 0)
index dcb707f6a66e21e411c4609c310eb504ec2fd9f2..a7bfb9c5c60b8c68c580f045a735b751de6c7c08 100644 (file)
@@ -668,6 +668,7 @@ int nft_init_eb(struct nft_handle *h, const char *pname)
                        ebtables_globals.program_version);
                exit(1);
        }
+       init_extensions();
        init_extensionsb();
 
        if (nft_init(h, NFPROTO_BRIDGE) < 0)
index 72d5e04bf40bff8e621546368718b97ea5e70f1d..8a04f4d1490c180e10fa32155e58689be95e3b86 100644 (file)
@@ -628,6 +628,8 @@ int xtables_monitor_main(int argc, char *argv[])
        init_extensions();
        init_extensions4();
        init_extensions6();
+       init_extensionsa();
+       init_extensionsb();
 
        if (nft_init(&h, AF_INET)) {
                fprintf(stderr, "%s/%s Failed to initialize nft: %s\n",
index c6a5ffedc5cb0a98cb962f44a9d579623d97e579..0250ed7dd8d66854df87b8cb921010e717e8e014 100644 (file)
@@ -368,7 +368,12 @@ xtables_restore_main(int family, const char *progname, int argc, char *argv[])
                init_extensions6();
                break;
        case NFPROTO_ARP:
+               init_extensions();
+               init_extensionsa();
+               break;
        case NFPROTO_BRIDGE:
+               init_extensions();
+               init_extensionsb();
                break;
        default:
                fprintf(stderr, "Unknown family %d\n", family);
index 9bbe8511e71149439eab993e6deaf81aeeb5c85e..3b6b7e25063fead8bb4eceb2a35bb71e886d9352 100644 (file)
@@ -208,6 +208,8 @@ xtables_save_main(int family, int argc, char *argv[],
                d.commit = true;
                break;
        case NFPROTO_ARP:
+               init_extensions();
+               init_extensionsa();
                break;
        case NFPROTO_BRIDGE: {
                const char *ctr = getenv("EBTABLES_SAVE_COUNTER");
@@ -218,6 +220,8 @@ xtables_save_main(int family, int argc, char *argv[],
                        d.format &= ~FMT_NOCOUNTS;
                        d.format |= FMT_C_COUNTS | FMT_EBT_SAVE;
                }
+               init_extensions();
+               init_extensionsb();
                break;
        }
        default:
index 06fedf261d68b98be1d5a332f4de07adb9d9974a..3faae02d408ccc6fe1f4d7a54a3e0aa8ca43e395 100644 (file)
@@ -75,8 +75,13 @@ xtables_main(int family, const char *progname, int argc, char *argv[])
                init_extensions6();
                break;
        case NFPROTO_ARP:
+               init_extensions();
                init_extensionsa();
                break;
+       case NFPROTO_BRIDGE:
+               init_extensions();
+               init_extensionsb();
+               break;
        }
 
        if (nft_init(&h, family) < 0) {
index c518433463deae416119f833b1663a087660241d..07a9c1bec0bc52097b64d55e655d6f8a9185984d 100644 (file)
@@ -488,12 +488,17 @@ static int xtables_xlate_main_common(struct nft_handle *h,
        switch (family) {
        case NFPROTO_IPV4:
        case NFPROTO_IPV6: /* fallthrough: same table */
-       init_extensions();
-       init_extensions4();
-       init_extensions6();
+               init_extensions();
+               init_extensions4();
+               init_extensions6();
                break;
        case NFPROTO_ARP:
+               init_extensions();
+               init_extensionsa();
+               break;
        case NFPROTO_BRIDGE:
+               init_extensions();
+               init_extensionsb();
                break;
        default:
                fprintf(stderr, "Unknown family %d\n", family);